А вот так я предварительно обновляю все документы,
А вот так я предварительно обновляю все документы, у которых еще нет сгенерированных превьюшек:
ini_set('max_execution_time', 0);
ignore_user_abort(true);
$modx->switchContext('web');
print '<pre>';
$TV_source = 2; // Устанавливаете значения своих TV-шек
$TV_target = 17;
$q = $modx->newQuery('modResource');
$q->innerJoin('modTemplateVarResource', 'tvimage', "tvimage.tmplvarid={$TV_source} and modResource.id = tvimage.contentid and tvimage.value != ''");
$q->leftJoin('modTemplateVarResource', 'tvprev', "tvprev.tmplvarid={$TV_target} and modResource.id = tvprev.contentid");
$q->where(array(
'tvprev.id' => null,
));
print "<br />Всего документов без превьюшек: ". $modx->getCount('modResource', $q);
$q->limit(100);
// Создаем самбнейл превьюшки
foreach($modx->getCollection('modResource', $q) as $resource){
if($photo = $resource->getTVValue($TV_source) AND $thumb = $modx->runSnippet('phpthumbof', array(
'input' => $photo,
'options' => 'w=113&h=113&q=100&zc=1',
))
AND $photo != $thumb
){
$resource->setTVValue( $TV_target, $thumb);
// print $thumb;
}
// print_r($resource->toArray());
}