А вот так я предварительно обновляю все документы, у которых еще нет сгенерированных превьюшек:
<?php 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()); }

Вернуться к списку комментариев