Дмитрий Кондаков

Дмитрий Кондаков

Был в сети 08 мая 2026, 19:20
Заказы принимаю
Олег
Олег
Проблему помогли решить на Гитхабе данного компонента. Оказывается, переключение контекста в системе должно срабатывать РАНЬШЕ, чем событие, к которому привязан ClientConfig (OnMODXInit). У меня переключение контекста срабатывает самописным плагином для Бабела в событии OnHandleRequest, которое идёт после OnMODXInit. Соответственно, для нормальной работы компонента с контекстами, мне нужно было сделать переключение контекстов на событии OnMODXInit, а для плагина ClientConfig на этом же событии выставить приоритет 1, вместо 0. Надеюсь, никакие косяки после таких манипуляций не вылезут…
Prihod
Prihod
Код плагина который отменяет у товара публикацию если он не попал в файл импорта

<?php
/** @var modX $modx */
switch ($modx->event->name) {
    case 'msieOnCompleteImportProduct':
        // Массив ID   настроек полей для которых нужно использовать данный плагин http://prntscr.com/kkwx4r
        $presets = array();

        if (!in_array($preset, $presets)) return;

        // Получаем id всех товаров которые были импортированы
        if (!$ids = $modx->event->params['data']) return;

        // Снимаем с публикации товары которые не попали в файл импорта
        $sql = "UPDATE {$modx->getTableName('msProduct')} SET published = 0 WHERE context_key = 'msProduct'  AND  id NOT IN ({$ids});";

        // $sql = "UPDATE {$modx->getTableName('msProductData')} SET my_custom_field = 0 WHERE id  NOT IN ({$ids});";
        $modx->exec($sql);

        break;
}
Pavel Zarubin
Pavel Zarubin
P.s. всегда когда подходите к расширеню разметки extjs но не знаете куда добавить те или иные поля в какую — то вкладку, просто распечатайте объект field и уже в консоле разбирайтесь что куда
console.log(this.fields);
Там достаточно все очевидно, для того, чтобы понять человеку который только-только начал постигать js
Алекс Назаренко
Алекс Назаренко
Всем спасибо!
Нашел. Все дело было в таблице ms2_product_categories. В ней хранятся айди товаров, которые были перемещены из одной категории товаров в другую в админке. Если есть хотя бы одна запись в этой таблице, то админка тормозит. Если почистить, то все снова быстро работает.
Василий Наумкин
Василий Наумкин