Eugene Generalov

Eugene Generalov

С нами с 28 февраля 2015; Место в рейтинге пользователей: #303

Экскурс как можно использовать vuejs в место extjs и не запариться.

Это не статься в стиле «я написал торт/тудушку/ещечтото на rea extjs и vue и вот что у меня получилось». Это просто инструкция как можно без особых усилий писать на чем-то стороннем (в моем случае vue).
(внимание) Так как на этом ресурсе сидят довольно опытные ребята, я не буду рассказывать все в подробностях, как поставить ноду + сопутствующее окружение, что такое modExtra, почему vue а не react/angular/свойвариант и т.д…
В общем погнали.
srs
srs
31 декабря 2018, 12:09
modx.pro
12
3 771
+19

Поругайте код, мне будет полезно

Господа, буду рад любым предложениям по улучшению этого написанного мною кода.
Поскольку я дилетант, то наверняка делаю это топорно и не изящно.
Поставил себе цель написать сниппет, который будет выводить на экран значения MIGX TV для всех ресурсов, которые будут дочерними к ресурсу родителю, чей id будет задаваться как параметр сниппета.
<?php
// получаем id родительского каталога как параметр
$p=$parent;
// выборка всех ресурсов, у кого родитель имеет переданный id 
// и формируем массив с id ресурсов-детей.
$g=$modx->getCollection('modResource',array('parent'=>$p));
foreach ($g as $g1){
    $where[]=$g1->get('id');
}
// проходим по всем элементам нашего массива, делая выборку одного объекта
// значение contentid которого совпадает с id из массива
// поскольку я задался целью получить только MIGX то прописываю id этого объекта
foreach ($where as $nowhere){
    $result=$modx->getObject('modTemplateVarResource',array('contentid'=>$nowhere,'tmplvarid'=>1));
// добавил сюда проверку на существование $result поскольку не все ресурсы могут иметь заполненные
// MIGX поля
    if ($result){
// $res становится строкой, в которой лежит JSON
    $res=$result->get('value');
//$r становится массивом
    $r=$modx->fromJSON($res);
// перебираем все елементы массива, чтобы добраться до содержимого. 
// У меня поле имеет название text
// в результате получаем вывод на экран перечня значений всех MIGX для всех ресурсов
// дочерних к тому, чей id мы передали в сниппет
    foreach ($r as $r1){ echo $r1['text']."
";}
 } //end if
} // end foreach
Спасибо.
Александр Мельник
25 февраля 2017, 10:25
modx.pro
2
1 894
0

MIGX getImageList и Fenom

Есть такой вызов
{$_modx->runSnippet('!getImageList', [
	'tvname' => 'tv_product_main_gallery',
	'tpl' => '@CODE: <some_chunk>'
])}


По поводу @CODE и fenom, — работает феном в чанке относительно самого ресурса. То есть, когда я делаю так
'tpl' => '@CODE: [[+image]]'
Работает.

Когда я пишу
'tpl' => '@CODE: {$image}'
То не работает.

Когда я пишу
'tpl' => '@CODE: {$_modx->resource.myMIGXtv}'

То работает, получаю содержимое переменной. Весь массив значений.

Вопрос, как использовать феном, чтобы не писать свой парсер переменной и не использовать классический вызов через квадратные скобки, а воспользоваться {$image}?
Paul B.
07 июня 2016, 13:54
modx.pro
18
12 308
0

POST запросы на сторонний API из REVO, как?

Всем привет!

Нужно получить при визите на сайт неавторизованного пользователя (просто при заходе на фронт-энд любого) данные со стороннего сайта через его API POST-запросом и потом эти полученные данные отобразить на фронт-энде этому же пользователю.

Проблема — нельзя светить в HTML коде ключ этого API, иначе можно было бы javascript'om их дернуть и показать.
То есть запрос должен делаться на сервере и потом эти данные (принимаются в JSON) уже обработать и отдать на фронт-энд.

Как принято такую задачу решать в стиле modx way?

Я так понимаю надо делать плагин запроса и вешать его на событие OnHandleRequest?
Но мне не понятно как принять ответ от стороннего сайта и что с ним делать дальше.
В плэйсходер, в чанк его завернуть?

Извиняюсь, если вопрос тупой, но не могу даже что-то схематично прикинуть как это может выглядеть.

Заранее спасибо за помощь!
P.S. Буду признателен за кусок кода
Михаил
06 января 2016, 22:33
modx.pro
6
5 560
0

Создание мультисайта на MODX REVO

Лучше поздно, чем никогда. Как и обещал https://modx.pro/help/5194/ пишу про создание мультисайта на MODX REVO. Выкладываю в блог Готовые решения, т.к. в статье есть чуть-чуть кода.

Смысл всей затеи — упростить поддержку сайтов.

Под поддержкой понимаются любые действия связанные с работой сайта:
— размещение контента
— технические доработки сайта (программирование, верстка)
— консультирование модераторов, сеошников и т.д.
— бэкапы и восстановление информации

Кроме того, для упрощения работы необходимо внедрить стандарты, чтобы упростить рутину. Звучит громко, но на самом деле все просто — по «узким» моментам единожды принимаем какое-то решение и дальше просто поступаем по образцу, чтобы не тратить время на изобретение велосипедов. По принятому решению пишем короткую заметку в Евернот, чтобы потом когда понадобится можно было быстро найти, на чем основывалось решение.

В таких «стандартах» у меня:
— ресайз картинок с примерами кода
— настройки галереи fancybox с примерами кода
— создание файловых архивов
— названия чанков, например почти везде у меня есть чанки HEADER.site1, FOOTER.site1, ASIDE.site1 (в названии используем название контекста).
— и т.д. и т.п.

Т.е. единожды продумываем тонкости и решаем, что будем делать именно так и никак иначе. В дальнейшем это позволит избежать бардака и существенно ускорит процесс переноса существующих сайтов в мультисайт или разработку новых сайтов.

Иван Чуваев
06 июля 2015, 02:48
modx.pro
41
21 519
+9