Как программно менять порядок картинок в ms2Images?
Добрый день!
Подскажите начинающему как реализовать изменение порядка изображений в галерее товара minishop2. Положим у нас есть товар с несколькими картинками в галерее. joxi.ru/ZrJ5ExNhQ9RQpA Заказчик хочет, чтобы, если в выгрузке картинки поменялись местами, чтобы в ресурсе это тоже отражалось. Можно это как-то сделать через процессор gallery/upload? Сейчас загрузка сделана вот так:
Заранее спасибо за ваши светы
Подскажите начинающему как реализовать изменение порядка изображений в галерее товара minishop2. Положим у нас есть товар с несколькими картинками в галерее. joxi.ru/ZrJ5ExNhQ9RQpA Заказчик хочет, чтобы, если в выгрузке картинки поменялись местами, чтобы в ресурсе это тоже отражалось. Можно это как-то сделать через процессор gallery/upload? Сейчас загрузка сделана вот так:
$response = $this->modx->runProcessor('gallery/upload', [
'file' => $image['image'],
'id' => $resourceId,
'ctx' => 'mgr'
], ['processors_path' => MODX_CORE_PATH . 'components/ms2gallery/processors/mgr/']);
Это работает, если в товаре нет картинок, но не удалять же каждый раз все картинки и не заливать заново.Заранее спасибо за ваши светы
Комментарии: 3
Возможно оптимальнее будет «средний» вариант:
Сравниваем изменения между картинками в выгрузке и у товара, если изменений нет — пропускаем, а если есть изменения — проще удалить все картинки и загрузить заново, чем пытаться а)удалить удаленные б) добавить новые в) изменить порядок файлов.
Сравниваем изменения между картинками в выгрузке и у товара, если изменений нет — пропускаем, а если есть изменения — проще удалить все картинки и загрузить заново, чем пытаться а)удалить удаленные б) добавить новые в) изменить порядок файлов.
В таблице ms2_product_files можно поменять для каждого файла значение rank, от которого зависит сортировка
foreach ($gallery as $rank => $v) {
$sql = "UPDATE {$modx->getTableName('msProductFile')} SET rank=".$rank." WHERE product_id=".$resource_id." AND file = '{$v}'";
$modx->exec($sql);
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.