Сергей Карпович

Сергей Карпович

Был в сети 10 июля 2026, 12:56
Заказы принимаю
Отправить деньги
Есть предложение по развитию компонента — подружить его с FileAttach/FileMan
Потому что последние также можно использовать как галереи.
И тут уже разворачиваются интересные функции вставки в контент не только изображений и галерей, но и файлов.
Обрати внимание на компонент mSync
modstore.pro/packages/import-and-export/msync

Компонент позволяет импортировать товары и торговые предложения из 1С, Класс365 и МойСклад по протоколу CommerceML в интернет-магазин на основе miniShop2.
Всем привет, пытаюсь в этот отбор добавить второе условие на проверку заполненности поля players_settings
Но что не получается, так ничего не выводит:
'where' => [ 
        0 => "0 < FIND_IN_SET(" ~ $itzx ~ ", replace(`TVplayers_game`.`value`, '||', ','))" ,
        1 => '{"players_settings:!=":null}',
    ],
Подскажите как правильно прописать условие 1 => '{«players_settings:!=»:null}'?
Ребята, помогите решить проблему.
Если morpher.ru не отвечает, то у меня падает вся станица (все что после вызова идет)

Вызываю так:
{caseChanger' | snippet : ['w' => $players_country_title, 'm' => 1, 'p' => 3,]}
С параметром debug, также ни каких изменений, в логах ничего не появляется.
У меня такой плагин работает на событие «mSyncOnProductImport»

<?php
/*
    https://docs.modx.pro/components/msync/events-and-plugins
    mSyncOnProductImport:
    $mode: Строка "category" для категорий или "create" для новых товаров или "update" для обновления товара. 
    $resource: Объект msCategory или msProduct. Объект минишопа, созданный или обновленный в данный момент
    $properties: array Массив свойств товара, извлеченных из XML, пустой для категории.
    $data: Объект mSyncCategoryData или mSyncProductData. Объект привязки категории или товара 1С к объектам минишопа
*/

if ($modx->event->name != 'mSyncOnProductImport') return;

/*
    Проверим, что свойство "Исключить из публикации на веб-сайтах" передано в выгрузке из 1С 
    (может и не быть). Если его нет значит данное свойство не поддерживается в базе 1С и 
    ничего не делаем. Если есть и это товар тогда делаем что надо.
*/
if ( is_a($resource, 'msProduct') ) {
    if ( array_key_exists('Исключить из публикации на веб-сайтах', $properties) ) {
        $hide = mb_strtoupper($properties['Исключить из публикации на веб-сайтах']) === mb_strtoupper('Да');
        if ( !isset($mSync) ) {
            $mSync = $modx->getService('msync', 'mSync', $modx->getOption('msync_core_path', null, $modx->getOption('core_path') . 'components/msync/') . 'model/msync/', array());
        }
        if ($hide) {
            // Если параметр передан и имеет значение Да, скрываем номенклатуру:
            $resource->set('deleted', 1);
            $resource->set('deletedby', $mSync->config['user_id_import']);
            $resource->set('deletedon', time());
            $resource->save();
            $mSync->log('Товар с идентификатором ' . $resource->get('id') . ' помечен удаленным.', 1);
        } else {
            // Если параметр передан и имеет другое значение, восстанавливаем номенклатуру:
            if ($resource->get('deleted') == 1) {
                $resource->set('deleted', 0);
                $resource->save();
                $mSync->log('Товар с идентификатором ' . $resource->get('id') . ' восстановлен из корзины.', 1);    
            }
        }
    }
}
Если убрать хотя бы сортировку по остаткам, то в 10 раз быстрее грузятся категории.
Причем замечено, чем больше товаров категории, тем затуп сильнее.
От 50 товаров уже становится заметно.

Все вызовы по инструкциям компонентов, ни каких велосипедов.

Если интересно посмотреть на это, могу в теле доступ дать