находит код для перегенерации изображений минишопа, никогда не подводило, но и товаров было немного, порядка 100.
Вчера пытался запустить для товаров более 500, по 6 изображений генерится, товаров 100 прошло нормально, а потом видимо сервак не дает, блочит и все. (Код ниже) Как сюда поставить счетчик, например по 50-100 товаров, или ограничение по id, по начальному id
<?php
// Проходимся по всем товарам
$products = $modx->getIterator('msProduct', array('class_key' => 'msProduct'));
foreach ($products as $product) {
// Получаем оригиналы их картинок
$files = $product->getMany('Files', array('parent' => 0));
foreach ($files as $file) {
// Затем получаем их преью
$children = $file->getMany('Children');
foreach ($children as $child) {
// Удаляем эти превью, вместе с файлами
$child->remove();
}
// И генерируем новые
$file->generateThumbnails();
// Если это первый файл в галерее - обновляем ссылку на превью товара
/** @var msProductData $data */
if ($file->get('rank') == 0 && $data = $product->getOne('Data')) {
$thumb = $file->getFirstThumbnail();
$data->set('thumb', $thumb['url']);
$data->save();
}
}
}
Может поможет https://ilyaut.ru/cheats/step-by-step-the-script-in-console/
Обсуждают сегодня