Конфликт resource/update и gallery/upload
На основе скрипта csv.php, идущего в комплекте miniShop 2, написал собственный скрипт импорта. В общем и целом все работает, но есть какой-то конфликт между процессорами 'resource/update' и 'gallery/upload'.
Процессор 'gallery/upload' даже при удачной загрузке создает вывод типа:
Если же все картинки товара были удачно загружены при прошлом прогоне импорта, скрипт это отслеживает и не запускает 'gallery/upload' и тогда 'resource/update' срабатывает успешно.
Структура кода такова:
Процессор 'gallery/upload' даже при удачной загрузке создает вывод типа:
Array([0] => /assets/images/products/2494/3769.png)
И, похоже, каким-то образом мешает удачному запуску процессора 'resource/update'.Если же все картинки товара были удачно загружены при прошлом прогоне импорта, скрипт это отслеживает и не запускает 'gallery/upload' и тогда 'resource/update' срабатывает успешно.
Структура кода такова:
foreach ($res as $v) {
...
#Обновляем данные товара
$response = $modx->runProcessor('resource/update', $dataProductUpdate);
if ($response->isError()) {
...
}
else {
...
}
...
#Загружаем несколько картинок
foreach ($responseArr["media"] as $media) {
...
$response2 = $modx->runProcessor('gallery/upload',
array('id' => $dataProductUpdate['id'], 'name' => $fileName, 'file' => $tmpImages.$fileName),
array('processors_path' => MODX_CORE_PATH.'components/minishop2/processors/mgr/')
);
...
}
...
}
Подскажите, что я не учел? Комментарии: 3
Подозреваю, что Вы забыли
$modx->error->reset();
Большое спасибо за ответ!
Не изучил еще систему ошибок в MODX.
Возьму на заметку, но уже переписал скрипт таким образом, что все запуски 'gallery/upload' происходят после всех запусков 'resource/update'. Проблема решена.
Не изучил еще систему ошибок в MODX.
Возьму на заметку, но уже переписал скрипт таким образом, что все запуски 'gallery/upload' происходят после всех запусков 'resource/update'. Проблема решена.
Действительно, $modx->error->reset(); — очень нужная вещь)
Еще раз спасибо!
Еще раз спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.