msgallery водяной знак и кеш
Потребовалось добавить водянку на изображения. тут проблема возникла. Старые изображения не хотят перегенерироваться. даже если удаляю из папки assets/images/products В этом случае вообще изображение не создается также заново. Товаров очень много, изображений еще больше. Помогите решить проблему.
Водянку добавил через источник файлов:
Водянку добавил через источник файлов:
[
{"w":120,"h":90,"q":90,"zc":"0","bg":"ffffff"},
{"w":640,"h":480,"q":90,"zc":"0","bg":"ffffff"},
{"w":800,"h":600,"q":90,"zc":"0","bg":"ffffff","fltr":"wmt|www.site.com|3|T|FFFFFF||100|20|0||0|"},
{"w":100,"h":100,"q":90,"zc":"1","bg":"ffffff","fltr":"wmt|www.site.com|3|T|FFFFFF||100|20|0||0|"}
]
Комментарии: 6
Первым делом нужно разобраться с генерацией превьюшек, скорее всего это решит проблему.
Есть что-нибудь в логах?
Есть что-нибудь в логах?
Чтобы перегенерировать превьюшки надо зайти в товар нажать правой кнопкой мыши на картинку и нажать «Обновить превью», если нужно обновить все превью разом то нужно запустить консольный скрипт который обновит всё. Не нужно удалять папку — assets/images/products
А что за скрипт? Товаров тысячи, в каждом товаре по 5-6 изображений.
сохраняем файл update_minishop2_previews.php в корне сайта и запускаем его из консоли SSH и ждем. (советую сделать полный бэкап прежде чем запускать скрипт)
php /var/www/......../update_minishop2_previews.php
php /var/www/......../update_minishop2_previews.php
<?php
// >> Подключаем
define('MODX_API_MODE', true);
if(file_exists('index.php'))
{
require_once 'index.php';
}
else if(file_exists(dirname(dirname(dirname(dirname(__FILE__)))) . '/index.php'))
{
require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/index.php';
}
else if(file_exists(dirname(dirname(dirname(dirname(dirname(__FILE__))))) . '/index.php'))
{
require_once dirname(dirname(dirname(dirname(dirname(__FILE__))))) . '/index.php';
}
else {
print "Не удалось подгрузить MODX";
die;
}
// << Подключаем
// >> Включаем обработку ошибок
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
// << Включаем обработку ошибок
if(!isset($parents)) { $parents = 0; } // Можно указать список категорий для поиска товаров
if(!isset($resources)) { $resources = ''; } // Можно указать конкретный список товаров
$pdo = $modx->getService('pdoFetch');
$condition = array('parents' => $parents);
$files = $pdo->getCollection('msProduct',
array(
'msProduct.class_key' => 'msProduct',
),
array(
'class' => 'msProduct',
'parents' => $parents,
'resources' => $resources,
'innerJoin' => array(
'msProductFile' => array(
'alias' => 'msProductFile',
'on' => array(
'msProduct.id = msProductFile.product_id',
'msProductFile.parent' => 0,
'msProductFile.type' => 'image',
)
)
),
'select' => array(
'msProductFile' => 'all'
),
'sortby' => 'msProduct.id'
)
);
print $pdo->getTime();
foreach($files as $row)
{
$file = $modx->newObject('msProductFile');
$file->fromArray($row, '', true, true);
$children = $file->getMany('Children');
foreach($children as $child)
{
$child->remove();
}
$file->generateThumbnails();
// Обновляем thumb и image товара
if($product = $file->getOne('Product'))
{
$product->updateProductImage();
}
}
print microtime(true) - $modx->startTime;
Обязательно нужно из консоли запускать?
в каждом товаре по 5-6 изображений.В вашем случае да
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.