Баг при программной заливке изображений в msGallery

Добрый вечер.
При выполнении следующего кода валятся ошибки «Array ( [0] => Такое изображение уже есть в галерее товара. )»
$products = $modx->getCollection('msProduct');
foreach ($products as $product) {
     $path = MODX_BASE_PATH.'products/'.$product->get('id').'.jpg';
     if(file_exists($path)) {
         $data = [
             'id' => $product->get('id'),
             'file' => $path,
         ];
         $response = $modx->runProcessor('gallery/upload', $data, array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/'));
        if ($response->isError()) {
            print_r($response->getAllErrors());
        }
     }
}
Изображения товаров лежат в корне сайта в папке products и имеют вид кодТовара.jpg В галерею загружается только изображение для первого в списке товара, создаются превьюшки, всё как положено. Остальные игнорируются, как будто это изображение где-то в кеше висит.
Артём
11 декабря 2018, 03:06
modx.pro
971
0

Комментарии: 4

Денис
11 декабря 2018, 08:49
0
Попробуйте в конце цикла написать $modx->error->reset();
    Артём
    11 декабря 2018, 09:13
    0
    Не помогает :(
    Василий Наумкин
    11 декабря 2018, 09:32
    0
    Проверку на дубликаты можно отключить.

    Для её работы берутся первые несколько байт, и если грузятся однотипные картинки на белом фоне, то у всех у них первые байты и будут этим белым фоном — отсюда сообщение о дубликате.
      Артём
      11 декабря 2018, 12:52
      +1
      Спасибо за подсказки, но всё оказалось проще. После удаления файлов из галереи самописным сниппетом (хотел полностью удалить изображения и перезалить их заново) в таблице ms2_product_files остались адреса этих изображений. Сделал truncate и всё заработало.
      Мораль — в 2 часа ночи нужно спать.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4