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|"}
]
aligan
18 января 2017, 20:57
modx.pro
1 637
0

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

Олег
19 января 2017, 01:15
0
Первым делом нужно разобраться с генерацией превьюшек, скорее всего это решит проблему.
Есть что-нибудь в логах?
    Николай Загумённов
    19 января 2017, 15:06
    0
    Чтобы перегенерировать превьюшки надо зайти в товар нажать правой кнопкой мыши на картинку и нажать «Обновить превью», если нужно обновить все превью разом то нужно запустить консольный скрипт который обновит всё. Не нужно удалять папку — assets/images/products
      aligan
      19 января 2017, 15:07
      0
      А что за скрипт? Товаров тысячи, в каждом товаре по 5-6 изображений.
        Николай Загумённов
        19 января 2017, 15:12
        0
        сохраняем файл update_minishop2_previews.php в корне сайта и запускаем его из консоли SSH и ждем. (советую сделать полный бэкап прежде чем запускать скрипт)

        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;
          aligan
          19 января 2017, 15:14
          0
          Обязательно нужно из консоли запускать?
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    6