Sergey Perepechin

Sergey Perepechin

Был в сети 20 октября 2021, 17:48
Заказы не принимаю
Подписаться на автора
Вы правы говоря об источниках. НО я немного о другом, представьте что вы сделали товар, загрузили в него картинки, они легли в ms2gallery например. Юзер идёт писать новость про этот товар и знает что его картинки там. Выбрал он товар в вашем плагине как источник картинок и не надо его знать что они в таком-то источнике, с таким то айди и тд и тп и все снова запутались… а тут выбрал товар(ресурс) как «источник»))) я вот что имел ввиду.
В планах поддержка Gallery, msGallery(который в минишопе) и ms2Gallery. — это будет очень правильно.

Было бы удобно выбиать фотки не только из ресурса который редактируешь, а любой другой «источник» (документ) с фотками.
Насколько я помню, там после создания товара/продукта не обновляется parent (родитель) документа, напишите плагин на обновление товаров, там есть такое событие чтоб parent тоже обновлялся.
Просто учтите что оно вам всё дерево перестроит, ну или следите за группами товаров :)
Если в кратце, то не зря же сделали serialize($this->options), помимо желания получить файл вида:
один «filename_80x40.jpg», второй соответственно «filename_200x100.jpg»
Может существовать куча доп опций. так вот чтоб ваши картинки случайно не перетёрли в кэше друг друга и делается имя файла из всех опций в md5.

Но если уверены что такого на Вашем сайте никогда не случится, то можно:
1. напрямую внеспи изменения в компонент — все изменения потеряются при обновлении
2. написать собственную обёртку для него (вижу этот вариант более правильным)
Спасибо, Володь.
Да, я уже посмотрел, смущает тип самого поля key в базе varchar. по сути добавив "_" в началу ключа проблема становится исчерпана. Непонятна первопричинность такой конкретики с цифрами вначале. есть сомнения что они что-то ломают :) т.к. не зря же мы type указываем.
Проверил — полностью рабочий вариант из cvs.php
$product = $this->modx->runProcessor('gallery/upload', array('id' => $doc_id, 'name' => $title , 'file' => $image),array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/'));
 if ($product->isError()) {
 $this->modx->log(modX::LOG_LEVEL_ERROR, "Error on upload \"$v\": \n". print_r($product->getAllErrors(), 1)." -id:".$doc_id.",img:".$image);
 }