Нет мини изображений в галерее на странице товара.
У части товаров изображения показываются. Код img src="[[+360x]]" Если изменить на img src="[[+360x270]]" то показываются картинки у другой части товаров. Как сделать что бы у всех товаров были картинки?
В настройках MS2 Images «w»:360,«q»:90,«iar»:1,«bg»:«fff»
В настройках MS2 Images «w»:360,«q»:90,«iar»:1,«bg»:«fff»
Комментарии: 6
Скорее всего картинки генерировались после части залитых товаров. Всмысле, часть товаров заливались с одними настройками в медиаресурсе, другая часть — с другими настройками.
надо:
2ая возможная проблема если совет выше непоможет:
надо:
а) или перегенерировать все картинки скриптом через консоль
б) перегенерировать картинки в тех товарах, в которых непоказываются
2ая возможная проблема если совет выше непоможет:
Скорее всего непоказываются те, у которых пропорции несоответсвуют параметрам.
В настройках укажите еще и ширину:
{«w»: ширина,«h»: высота,«q»:70,«zc»:«1»,«bg»:«ffffff»}
при zc (zoomcrop) картинка будет обрезаться до нужной
После изменения настроек — также перегенерировать превью
Думаю мне поможет этот вариант:
а) или перегенерировать все картинки скриптом через консоль
Как это сделать?
а) или перегенерировать все картинки скриптом через консоль
Как это сделать?
документацию прочитать…
Или вы можете обновить сразу все картинки специальным скриптом:
<?php define('MODX_API_MODE', true); require 'index.php'; // Этот файл лежит в корне сайта $modx->getService('error','error.modError'); $modx->setLogLevel(modX::LOG_LEVEL_ERROR); $modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML'); // Проходимся по всем товарам $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(); } } } echo microtime(true) - $modx->startTime;
Стыдно признаться, не знаю как его запустить…
Cамый простой вариант:
— ставите дополнение Console.
— открываете его вкладку
— в появившуюся форму вставляете желаемый код
— запускаете
С таким способом данные строчки можно не писать:
— ставите дополнение Console.
— открываете его вкладку
— в появившуюся форму вставляете желаемый код
— запускаете
С таким способом данные строчки можно не писать:
define('MODX_API_MODE', true);
require 'index.php'; // Этот файл лежит в корне сайта
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
Спасибо! Проблема решилась.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.