Наумов Алексей

Наумов Алексей

С нами с 31 марта 2013; Место в рейтинге пользователей: #13
Наумов Алексей
21 мая 2019, 14:57
0
ну проблема в Wayfinder, сами говорите…
Во-первых, он некешируется… каждый раз меню строится с нуля.
Попробуйте заменить на pdoMenu, он быстрее работает.
Вы к тому же 3 уровня меню строите… как много пунктов в меню то?
Наумов Алексей
20 мая 2019, 11:42
0
Видимо со времени взлома остались страницы еще в результатах поиска у ПС.
Такие ссылки не открываются? 404?
Наумов Алексей
16 мая 2019, 16:28
0
Изначальный вопрос был: «передача значения var выше». Я так понимаю, что у вас есть некий чанк, в процессе обработки которого формируется некая переменная, которую нужно получить в «следующем» чанке. Так?

Вот чтобы это сделать, в первом чанке вы устанавливаете плейсхолдер через метод setPlaceholder, а во втором чанке — получаете через getPlaceholder.

Если что-то не так, значит вопрос составлен не совсем ясно.
Наумов Алексей
16 мая 2019, 14:34
0
Вы знаете что такое плейсхолдер?
Наумов Алексей
16 мая 2019, 14:06
0
Раз записываете переменную так:
{$_modx->setPlaceholder('test', 5)}
То далее получать ее значение нужно так:
{set $test = $_modx->getPlaceholder('test')}
Наумов Алексей
16 мая 2019, 13:55
0
{$_modx->setPlaceholder('test', 4)}
Только смотрите, чтобы test был уникальным, а не $id).
Наумов Алексей
15 мая 2019, 15:56
0
А так не сработает?
"on": "`tv.articleCat` = `Category`.`id`"
Поле выбирается с точкой «tv.articleCat», она воспринимается разделителем, выглядит как таблица tv, поле articleCat.
Наумов Алексей
15 мая 2019, 15:32
0
Итак, жмем на этой странице Ctrl + F и ищем:
1. сначала articleCat
2. потом articleСat

Далее исправляем косяки.
Наумов Алексей
15 мая 2019, 15:29
0
Точно в файле ничего лишнего не появилось?
Стоит сравнить побайтово!
Наумов Алексей
15 мая 2019, 14:08
+1
Готового наверное нет…

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

var resourceTabs = Ext.getCmp("modx-resource-tabs");
if(resourceTabs) {
    resourceTabs.setActiveTab(resourceTabs.findById("modx-resource-tvs-div"));
}
ну а чтобы ссылку сделать, достаточно в ней передать хеш #tab-tvs, и скриптом проверять этот хеш.
Наумов Алексей
15 мая 2019, 13:59
0
showLog что показывает?
Наумов Алексей
08 мая 2019, 14:28
0
Есть категория
/category
в ней товары 1,2,3
/category/1
/category/2
/category/3

У этих товаров параметр «Тип»: «3D-Торт», «торт без мастики», «многоярусный торт»

На выходе получим виртуальные (т.е. в админке их нет) страницы:
/category/3d
/category/bez-mastiki
/category/mnogoyarusniy

Товары не дублируются.
Наумов Алексей
08 мая 2019, 11:25
0
Выглядит как товары, лежащие в родительской категории, у которых есть параметры «3D-Торты», «торты без мастики», «многоярусные торты», а по ним строится сео-фильтр.
Дочерних категорий соответственно нет, они виртуальные, генерируются фильтром.
Наумов Алексей
29 апреля 2019, 17:14
+1
Компонент считает рейтинг по 2-м алгоритмам: по Вильсону и среднее арифметическое.
По-умолчанию вильсон, отсюда и такой средний бал.
Чтобы было среднее арифметическое — в используемых чанках поменяйте постфикс "_wilson" на "_simple".
Наумов Алексей
23 апреля 2019, 09:03
1
0
&parents=`Блог новостей сервиса`
такого здесь еще никто не видел)))

Здесь нужно указать id родительского ресурса, в виде числа.
Наумов Алексей
29 марта 2019, 09:13
0
Нужно включить лог (&showLog=`1` ) и посмотреть, какой запрос формируется.
Наумов Алексей
28 марта 2019, 09:53
+1
Берем нужный нам сниппет (pdoResources, msProducts).
К выборке присоединяем цепочку и выбираем кол-во отзывов:
&leftJoin=`{
        "ecThread": {
    		"class": "ecThread",
    		"on": " CONCAT('resource-', modResource.id) = ecThread.name"
    	}
    }`
    &select=`{
    	"modResource": "*",
    	"ecThread": "ecThreadRating.count AS reviews_count",
    }`
После сортируем по полю reviews_count
Наумов Алексей
26 марта 2019, 15:16
1
0
Не совсем. OnEcMessagePublish сработает когда в админке будет выбран пункт меню «Опубликовать». Но если просто отредактировать сообщение, проставив галочку «Опубликован», то будет событие OnEcMessageSave.

Если нужно отслеживать, что поменялся список отзывов, то надо ловить все события: OnEcMessageSave, OnEcMessagePublish, OnEcMessageUnpublish, OnEcMessageDelete, OnEcMessageUndelete, OnEcMessageRemove.

плагин один, код один, события несколько. Уже в плагине смотрите, что произошло.
Получить id вроде как, если не путаюсь:
$id = $object->get('id');
Наумов Алексей
26 марта 2019, 14:43
1
0
По событиям документации нет.

Список:
// ecThread events
OnBeforeEcThreadRemove
OnEcThreadRemove
// ecMessage events
OnBeforeEcMessageSave
OnEcMessageSave
OnBeforeEcMessagePublish
OnEcMessagePublish
OnBeforeEcMessageUnpublish
OnEcMessageUnpublish
OnBeforeEcMessageDelete
OnEcMessageDelete
OnBeforeEcMessageUndelete
OnEcMessageUndelete
OnBeforeEcMessageRemove
OnEcMessageRemove

В событии как правило доступен $object (ecMessage или ecThread).
Наумов Алексей
20 марта 2019, 09:33
0
Попробуйте посмотреть в событиях OnDocFormSave и OnBeforeDocFormSave на поля publishedon.
Возможно (но не точно) для ресурса, который не был опубликован, а сейчас галочку поставили, эта дата будет пустая.