MS2: Как добавить товару картинку с другого сайта?
        Делаю импорт товаров. У каждого товара есть одна большая картинка на старом сайте.
Я добавляю товар:
Мне к товару надо взять большую картинку с старого сайта, сделать все уменьшенные копии и т.п.
Я правильно понимаю?:
— сначала я скачиваю картинку на сервер в папку /assets/images/products/4/kartinka.jpg где 4 — это id товара
— затем запускаю какие-то процессоры из /core/components/minishop2/processors/mgr/gallery/ чтобы из большой картинки сделались маленькие, и процессор наверное должен вернуть адреса превью и картинки
— затем я обновляю свойства товара image и thumb
Не подскажете,
1) что я должен передать процессорам (путь на сервере, удаленный урл и т.п.), чтоб они сгенерили все нужные картинки?
2) Какие именно процессоры запустить для генерации всего нужного из одной большой картинки?
Заранее благодарю за помощь!
    
    
                                                                                
            Я добавляю товар:
$addProduct = $modx->newObject('msProduct');
$addProduct->fromArray($datas);
$addProduct->save();Мне к товару надо взять большую картинку с старого сайта, сделать все уменьшенные копии и т.п.
Я правильно понимаю?:
— сначала я скачиваю картинку на сервер в папку /assets/images/products/4/kartinka.jpg где 4 — это id товара
— затем запускаю какие-то процессоры из /core/components/minishop2/processors/mgr/gallery/ чтобы из большой картинки сделались маленькие, и процессор наверное должен вернуть адреса превью и картинки
— затем я обновляю свойства товара image и thumb
Не подскажете,
1) что я должен передать процессорам (путь на сервере, удаленный урл и т.п.), чтоб они сгенерили все нужные картинки?
2) Какие именно процессоры запустить для генерации всего нужного из одной большой картинки?
Заранее благодарю за помощь!
Комментарии: 10
                Разобрался вроде.
Положил свой тестовый файл файл в папку /assets/images/petja777.jpg
id продукта, которому добавить картинку с загрузкой и созданием всех иконок = 4 ('id' => 4)
                    Положил свой тестовый файл файл в папку /assets/images/petja777.jpg
id продукта, которому добавить картинку с загрузкой и созданием всех иконок = 4 ('id' => 4)
$processorPath = MODX_CORE_PATH . 'components/minishop2/convert/ms1/processors/';
$file = array(
    'id' => 4,
    'name' => 'petja777.jpg',
    'file' => MODX_ASSETS_PATH. 'images/petja777.jpg',
);
require $processorPath . '/config.inc.php';
$response = $modx->runProcessor('gallery/upload', $file, array('processors_path' => $processorPath));            
                Молодец, всё верно!            
                    
                Сделал аналогичным способом
Генерируется только в одном ресурсе. Во всех ресурсах подхватывает по умолчанию источник файлов «Filesystem».
В одном в котором руками заменял источник файлов на MS2 Images срабатывает, в остальных нет.
В чем может быть причина?


            
                    $processorPath = MODX_CORE_PATH . 'components/minishop2/convert/ms1/processors/';
        //return $modx->error->success($foto);
            $file = array(
                'id' => $id_product,
                'name' => $id_product.'-' . translit($article).'.' . getFileType($img),
                'file' => $img,
            );
            require $processorPath . '/config.inc.php';
            $response = $modx->runProcessor('gallery/upload', $file, array('processors_path' => $processorPath));
            if ($response->isError()) {
              return $modx->error->success($response->getMessage());
            }Ошибок не возвращает, но не генерирует изображения.Генерируется только в одном ресурсе. Во всех ресурсах подхватывает по умолчанию источник файлов «Filesystem».
В одном в котором руками заменял источник файлов на MS2 Images срабатывает, в остальных нет.
В чем может быть причина?


                У Товаров в базе есть поле source, в которое пишется ид источника товаров. По Умолчанию туда заносится 1. нужно руками при добавлении товаров указывать ему это свойство с ид нужного источника.            
                    
                Не помогло, видно дело не в этом.            
                    
                Спасибо, помогло. Единственное почему то через сохранение объекта msProduct не заносит в базу пришлось прямой запрос делать.            
                    
                Объект msProductData.
Или нет… Позже посмотрю.
                    Или нет… Позже посмотрю.
                У меня такой код создает ресурс и выставляет необходимый источник файлов:
                    $productData = array_merge(array('template'     => $this->modx->getOption('ms2_template_product_default')
                                 ,'source'       => $this->modx->getOption('ms2_product_source_default')
                           )
                           ,$productData
                           );
$addProduct = $this->modx->newObject($classKey,$productData);
$response = $this->modx->runProcessor('resource/create', $addProduct->toArray());            
                У вас через процессор работает, так конечно намного лучше, но медленее, мне пришлось через запросы писать там очень много в прайсах позиций, слишком долго выходит, может в этом и дело. 
            
                    $this->modx->getOption('ms2_product_source_default') по идее должен число возвращать, так?
                Да, возвращает число.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.