Иногда возникает необходимость перегенерировать все фото товаров на сайте minishop2. В этом вам помогут приведенные ниже скрипты. Запускать в консоли.
$step = 5; $offset = isset($_SESSION['galgenoffset']) && $_SESSION['galgenoffset'] ? $_SESSION['galgenoffset'] : 0; $miniShop2 = $modx->getService('minishop2'); $modx->setLogLevel(MODX_LOG_LEVEL_ERROR); $q = $modx->newQuery('msProductFile', array('parent' => 0)); $total = $modx->getCount('msProductFile', $q); $q->sortby('product_id', 'ASC'); $q->sortby('rank', 'DESC'); $q->limit($step,$offset); $resources = $modx->getCollection('msProductFile', $q); foreach ($resources as $resource) { $modx->runProcessor('mgr/gallery/generate', array('id' => $resource->id), array('processors_path' => $modx->getOption('core_path').'components/minishop2/processors/')); } $_SESSION['galgenoffset'] = $offset + $step; if ($_SESSION['galgenoffset'] >= $total) { $sucsess = 100; $_SESSION['Console']['completed'] = true; unset($_SESSION['galgenoffset']); } else { $sucsess = round($_SESSION['galgenoffset'] / $total, 2) * 100; $_SESSION['Console']['completed'] = false; } for ($i=0; $i<=100; $i++) { if ($i <= $sucsess) { print '='; } else { print '_'; } } $current = $_SESSION['galgenoffset'] ? $_SESSION['galgenoffset'] : ($sucsess == 100 ? $total : 0); print "\n"; print $sucsess.'% ('.$current.')'."\n\n";
$step = 5; $offset = isset($_SESSION['galgenoffset']) && $_SESSION['galgenoffset'] ? $_SESSION['galgenoffset'] : 0; $ms2Gallery = $modx->getService('ms2gallery', 'ms2Gallery', MODX_CORE_PATH . 'components/ms2gallery/model/ms2gallery/'); $modx->setLogLevel(MODX_LOG_LEVEL_ERROR); $q = $modx->newQuery('msResourceFile', array('parent' => 0)); $total = $modx->getCount('msResourceFile', $q); $q->sortby('resource_id', 'ASC'); $q->sortby('rank', 'DESC'); $q->limit($step,$offset); $resources = $modx->getCollection('msResourceFile', $q); foreach ($resources as $resource) { $modx->runProcessor('mgr/gallery/generate', array('id' => $resource->id), array('processors_path' => $modx->getOption('core_path').'components/ms2gallery/processors/')); } $_SESSION['galgenoffset'] = $offset + $step; if ($_SESSION['galgenoffset'] >= $total) { $sucsess = 100; $_SESSION['Console']['completed'] = true; unset($_SESSION['galgenoffset']); } else { $sucsess = round($_SESSION['galgenoffset'] / $total, 2) * 100; $_SESSION['Console']['completed'] = false; } for ($i=0; $i<=100; $i++) { if ($i <= $sucsess) { print '='; } else { print '_'; } } $current = $_SESSION['galgenoffset'] ? $_SESSION['galgenoffset'] : ($sucsess == 100 ? $total : 0); print "\n"; print $sucsess.'% ('.$current.')'."\n\n";