ms2Gallery обновление превью
Доброе время суток!
Импортировал на сайт большое число ресурсов с изображениями.
По ряду ресурсов нужно обновить превью.
Скрипт из документации работает но для всего сайта. Это долго, из браузера не получается (timeout). Из консоли ещё не пробовал, но както жестоко для сервера.
Параметр array('parent' => 0) не помогает, как я понимаю это не id ресурса и для всех равен 0.
Вопрос! Как обновить превью для отдельных веток или шаблонов?
Импортировал на сайт большое число ресурсов с изображениями.
По ряду ресурсов нужно обновить превью.
Скрипт из документации работает но для всего сайта. Это долго, из браузера не получается (timeout). Из консоли ещё не пробовал, но както жестоко для сервера.
Параметр array('parent' => 0) не помогает, как я понимаю это не id ресурса и для всех равен 0.
Вопрос! Как обновить превью для отдельных веток или шаблонов?
$modx->addPackage('ms2gallery', MODX_CORE_PATH . 'components/ms2gallery/model/');
$files = $modx->getIterator('msResourceFile', array('parent' => 0));
foreach ($files as $file) {
$children = $file->getMany('Children');
foreach ($children as $child) {
$child->remove();
}
$file->generateThumbnails();
}
Комментарии: 6
Насколько я помню — он равен 0 для всех оригинальных фотографий.
Не вижу ничего жесткого в обновлении через консоль :)
Вообще, вроде бы, видел кастомные варианты этого скрипта, но не смогу подсказать, где(
Не вижу ничего жесткого в обновлении через консоль :)
Вообще, вроде бы, видел кастомные варианты этого скрипта, но не смогу подсказать, где(
Я использую вот такой скрипт для генерации превьюшек ms2Gallery. Этот код вставляется в Console и запускается прямо из браузера.
Спасибо!
Но как я понял, это тоже самое.
Отдельную ветку обновить не получится.
Решается проблема запуска в браузере.
Вопросик для Console нужно обязательно Ace ставить? У меня проблемка с отображением поля ввода кода, оно зауженное (Firefox Ubuntu).
Но как я понял, это тоже самое.
Отдельную ветку обновить не получится.
Решается проблема запуска в браузере.
Вопросик для Console нужно обязательно Ace ставить? У меня проблемка с отображением поля ввода кода, оно зауженное (Firefox Ubuntu).
Чтобы обновить отдельную ветку, нужно выбрать необходимые ресурсы, к ним приджойнивать картинки по полю resource_id (вроде), и уже эти картинки обновлять. Готового решения нет, надо писать такую выборку самостоятельно.
Ace необязательно, работает и без него, просто выглядит не очень красиво.
Ace необязательно, работает и без него, просто выглядит не очень красиво.
Спасибо за скрипт, как раз искал такой, чтобы задача не блокировалась хостингом на 10 секунде
Возможно не оптимально но работает.
$adocs = $modx->runSnippet ('pdoResources' , array('parents'=>'13','limit'=>'200','templates'=>'23','tpl'=>'export_tpl' ));
$docs=explode(",",trim($adocs,','));
foreach($docs as $d){
$id = intval($d);
if ( $resource = $modx->getObject('modResource', $id)) {
$properties = $resource->getProperties('ms2gallery');
if( $properties['media_source'] != 2 ){
$properties['media_source'] = 2;//для заголовков
$resource->setProperties($properties, 'ms2gallery');
$resource->save();
}
$files = $modx->getIterator('msResourceFile', array('resource_id' => $id,'parent' => 0 ));
foreach ($files as $file) {
$children = $file->getMany('Children');
foreach ($children as $child) {
$child->remove();
}
$file->generateThumbnails();
}
}
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.