Если вы хотите дописать это (получение галереи тов
Если вы хотите дописать это (получение галереи товара) в исходный процессор получения товаров, то вы все это объединяете в одном цикле, то есть получится так:
public function afterIteration(array $list){
$list = parent::afterIteration($list);
switch($this->getProperty('image_url_schema')){
case 'base':
$images_base_url = $this->modx->runSnippet('getSourcePath');
break;
case 'full':
$images_base_url = $this->modx->getOption('site_url');
$images_base_url .= preg_replace("/^\//", "", $this->modx->runSnippet('getSourcePath'));
break;
default: $images_base_url = '';
}
foreach($list as & $l){
// Базовая картинка
$l['image'] = '';
if(!empty($l['tvs']['image']['value'])){
$l['image'] = $images_base_url . $l['tvs']['image']['value'];
}
else{
$l['imageDefault'] = $images_base_url . 'products/No-Photo.jpg';
}
/*
Картинки
*/
$l['images'] = array();
if(!empty($l['tvs']['images']['value'])){
$images = json_decode($l['tvs']['images']['value'], true);
foreach($images as $image){
$image['image'] = $images_base_url.$image['image'];
$l['images'][] = $image;
}
}
}
return $list;
}
А если вы расширяете процессор, то за это не паритесь, потому что там все равно вызывается родительский метод, так что картинка будет учтена и базовая.
public function afterIteration(array $list){
$list = parent::afterIteration($list);
В общем, здесь конечно же хорошо бы ООП понимать.