как вывести изображения дочерних ресурсов

добрый день,
Ребят, всю голову сломал уже — просто, видать, не понимаю многого.
После парсинга старого сайта пришлось все фотографии со старых страниц сайта вывести как массив из путей к картинкам в TV параметр (с разделителем зпт) в новом сайте.
сейчас пытаюсь вытащить все эти картинки путем использования pdotools, но никак не могу придумать, как их вытащить все и разбить, чтобы pdotools обернул их в код.

не знаю — правильно ли я описал, то, в чем не могу разобраться, по этому сделаю скриншотом:
joxi.ru/vAWYjK0U45vamW
слева ресурсы у которых тв с картинками, вот из них всех хочу вытянуть все эти пути, обернутыми в хотябы <img src=

Прошу прощения, если вопрос глуп, но я пытался писать обработчик на php (в силу скудности знаний php вышло тупо и тяжело и пропускает пустые и не сжимает изображения)
Заранее спасибо за совет.
pr-light
06 января 2017, 13:02
modx.pro
1 075
0

Комментарии: 3

Павел Романов
06 января 2017, 16:16
+1
Сниппет getImages:
<?php
$imgs = explode(',', $input);
foreach($imgs as $path){
    $out .= $modx->getChunk($tpl, array('path'=>$path, 'alt'=>$alt));
}
return $out;

Вызов на странице самого ресурса:
[[getImages? 
&input=`[[*tv_album]]` 
&tpl=`image-tpl`
&alt=`[[*pagetitle]]`
]]

Вызов в чанке pdoResources (естественно, должен стоять параметр &includeTVs=`tv_album`):
[[getImages? 
&input=`[[+tv.tv_album]]` 
&tpl=`image-tpl`
&alt=`[[+pagetitle]]`
]]

Чанк image-tpl:
<img src="[[+path]]" alt="[[+alt]]" />

Для сжатия поставьте pThumb и тогда так:
<img src="[[+path:pthumb=`&w=150&h=100`]]" alt="[[+alt]]" />
    pr-light
    06 января 2017, 16:46
    0
    Огромное спасибо) Я битый день велосипед изобретал)
    От себя добавлю, чтоб не пропускало пустые (мб и тяжело, но тем не менее)
    вызов в чанке pdoResources сделать можно таким:
    [[+tv_album:is=``:then=``:else=`
    	[[getImages? 
    		&input=`[[+tv_album]]` 
    		&tpl=`kolhoz_image-tpl`
    		&alt=`[[+pagetitle]]`
    	]]
    `]]
      Павел Романов
      06 января 2017, 16:51
      +1
      Лучше уж тогда в сниппете ):

      <?php
      if(empty($input)) return '';
      $imgs = explode(',', $input);
      foreach($imgs as $path){
          if(!empty($path)) $out .= $modx->getChunk($tpl, array('path'=>$path, 'alt'=>$alt));
      }
      return $out;
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3