Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 093 комментария

Артур Шевченко
Артур Шевченко
Через процессоры как раз наоборот дольше, но есть события, что важно, так как на них может быть навешена какая-то кастомная логика. Кстати, как в пакете дела с событиями, они есть?
Mishiko
Mishiko
Нет. Сейчас категории и товары создаются напрямую через xPDO-модели:
— категории: newObject(msCategory::class)save();
— товары: newObject(msProduct::class)save();
— данные товара: msProductDatasave().

Через процессоры это быстрее для массового импорта, но часть процессорной валидации, событий и сторонних обработчиков может не сработать.

В планах сделать и синхронизацию через REST API там можно будет предусмотреть два режима direct и processor
Wassi Wassinen
Wassi Wassinen
И ещё такие ошибки:

[2026-06-20 23:58:37] (ERROR @ /var/www/.../data/www/.../core/cache/includes/elements/modplugin/12.include.cache.php : 12) PHP warning: Undefined array key "siSession"
[2026-06-20 23:58:37] (ERROR @ /var/www/.../data/www/.../core/cache/includes/elements/modplugin/12.include.cache.php : 12) PHP warning: Undefined array key "siSession"
По обоим случаям нейросеть пишет, что есть фиксы с правкой исходников. Но не хочется править, чтобы потом не поломать что-то и не затиралось при обновлении.
Если у вас есть возможность — дополните код.

Заранее благодарен.
Wassi Wassinen
Wassi Wassinen
@Артур Шевченко добрый вечер, Артур.

При использовании SendIT через сниппет получаю вот такую ошибку:

[2026-06-20 23:44:06] (ERROR @ /var/www/.../data/www/.../core/components/sendit/services/sendit.class.php : 333) PHP warning: Undefined array key "onestepform"
[2026-06-20 23:44:06] (ERROR @ /var/www/.../data/www/.../core/components/sendit/services/sendit.class.php : 333) PHP warning: Undefined array key "onestepform"
[2026-06-20 23:44:06] (ERROR @ /var/www/.../data/www/.../core/components/sendit/services/sendit.class.php : 333) PHP warning: Undefined array key "onestepform"
Вызов сниппета:

{'!RenderForm' | snippet: [
                        'tpl' => 'Footer_Form.tpl',
                        'formName' => 'footerForm',
                        'presetName' => 'footer_form',
                        'hooks' => 'email,FormItSaveForm',
                        'emailTo' => '...',
                        'emailFrom' => '..',
                        'emailTpl' => 'lead_formit_email.tpl',
                        'emailSubject' => 'Заявка с сайта ',
                        'clearFieldsOnSuccess' => 1,
                        'fieldNames' => 'callback_phone==Телефон',
                        'successMessage' => 'Форма отправлена!',
                        'validationErrorMessage' => 'Исправьте ошибки!'
                    ]}

Для сайта пробовал включать php 8.0 и 8.1
Алексей Шумаев
Алексей Шумаев
Только что столкнулся с таким на modx3, ранее 1 раз видел на modx 2.8 — не было времени и мотивации разбираться.
Но проблема есть и она старая.

Клиническая картина такова: в обычном режиме плагин работает нормально, в статическом — реагирует на событие pdoToolsOnFenomInit (хотя оно не отслеживается данным плагином), код плагина игнорируется.
В кэше лежит правильный код плагина.

Пока предположение одно — причиной бага может быть pdoTools исходя из несанкционированной реакции на pdoToolsOnFenomInit. Попробую позже покопать.
Кто встречался — отпишите, будет полезно.
Mishiko
Mishiko
Обновление компонента

История изменений MaxNotify 3

1.2.0-pl
  • добавлен канал max в Центр уведомлений miniShop3;
  • добавлена отправка из Центра для нового заказа и смены статуса;
  • поддержаны шаблоны и настройки получателей из Центра уведомлений;
  • добавлены защита от дублей и запись результата отправки в журнал MODX;
  • ключи лексикона miniShop3 для статусов, доставки и оплаты заменяются переводами;
  • чанки перенесены в категорию MaxNotify3, исправлены их UTF-8 описания;
  • при обновлении содержимое изменённых пользователем чанков сохраняется.
Николай Савин
Николай Савин
Я так понимаю API для центра уведомлений не стал использовать или не знал? У нас в минишопе есть центр уведомлений с подключаемыми каналами. Вот было бы логично создать MAX канал и подключить его к центру. Разумеется автоматизировано
SDivine
SDivine
Благодарю за ответ, но это, к сожалению, не срабатывает. Все-равно выходит предупреждение «Не выбран способ оплаты».

input.dispatchEvent(new Event('input', { bubbles: true }));
input.dispatchEvent(new Event('change', { bubbles: true }));
input.dispatchEvent(new Event('blur', { bubbles: true }));

Пробовал еще такой вариант ранее, но он тоже не решил задачу.