В базу сохраняется 1 или 2. Но можно ли как-нибудь в поле сохранять Да или Нет? А то после сохранения вот что появляется: В базу сохраняется как раз то, что нужно. Просто на колонку надо навешать renderer, типа так: renderer: function(value){ return value == 1 ? "Да" : "Нет"; }

Спасибо за положительную оценку :) Но добавлю еще немного повода для радости: на днях выйдет импортер 1С->ShopModxBox :) А вообще в процессе будет разработан полноценный модуль синхронизации с 1С.

ShopModxBox это вещь! Да пробовал и на хостинги ставиться отлично. Спасибо.

Через php vapor/import.php package=core/packages/core.transport.zip — ошибки. Кстати, а вот этого вообще не следовало делать. core.transport.zip — это ядро MODX-а, а не наша сборка.

А сборку ShopModxBox пробовали ставить? Она ставится? Там в принципе тоже самое почти, только компонентов чуть больше, плюс магазин. Удалите раздел каталога да пару расширений отключите и получите тоже самое. И да, судя по всему modxcloud убрали фришный план, оставив только триал.

по ссылке архив поврежден или имеет неизвестный формат. На modxcloud.com бесплатного аккаунта не нашел. Предлагает регистрироваться только с триал версией в 21 день. Ранее архив скачивал — попробовал все таки поставить на modxcloud по видео. Снапшот импортируется, пишет что облако с ним создается — ок. Захожу в админку — чистая англо MODX Revolution. В папке core/packages/ создается архив core.transport.zip и соответствующая папка. Через php vapor/import.php package=core/packages/core.transport.zip — ошибки.

Добрый день! Пока нет. Это вещь чисто индивидуальная, настраиваемая на отдельных проектах. Но не исключено появление какой-то более массовой вариации.

Добрый день! А можно ли где-то скачать данный импортер?

Если вы хотите дописать это (получение галереи товара) в исходный процессор получения товаров, то вы все это объединяете в одном цикле, то есть получится так: public function afterIteration(array $list){ $list = parent::afterIteration($list);

    switch($this->getProperty('image_url_schema')){
        case 'base':
            $images_base_url = $this->modx->runSnippet('getSourcePath');
            break;
            
        case 'full':
            $images_base_url = $this->modx->getOption('site_url');
            $images_base_url .= preg_replace("/^\//", "", $this->modx->runSnippet('getSourcePath'));
            break;
            
        default: $images_base_url = '';
    } 
    
    foreach($list as & $l){
        // Базовая картинка
        $l['image'] = '';
        if(!empty($l['tvs']['image']['value'])){
            $l['image'] = $images_base_url . $l['tvs']['image']['value'];
        }
        else{
            $l['imageDefault'] = $images_base_url . 'products/No-Photo.jpg';
        }
        
        /*
            Картинки
        */
        $l['images'] = array();
        
        if(!empty($l['tvs']['images']['value'])){
            $images = json_decode($l['tvs']['images']['value'], true);
            foreach($images as $image){
                $image['image'] = $images_base_url.$image['image'];
                $l['images'][] = $image;
            }
        }
    }
    return $list;
} А если вы расширяете процессор, то за это не паритесь, потому что там все равно вызывается родительский метод, так что картинка будет учтена и базовая. public function afterIteration(array $list){
    $list = parent::afterIteration($list); В общем, здесь конечно же хорошо бы ООП понимать.

а это уже дела вкуса. тут просто проверяется, задана ли картинка, и если нет — вставляется дефолтовое изображение. но это можно и в smarty сделать.