Добрый день. Подскажите, пожалуйста, можно ли вывести через &docid больше одного ресурса?
Пример: Хочу выводить список сотрудников на главную
<div class="team-carousel text-center">
[[getImageList?
&tvname=`team`
&tpl=`teamElementIndex`
&limit=`0`
&docid=`[[*teampageid]]`
]]
</div>
Проблема в том, что есть несколько ресурсов с сотрудниками. Погуглил, нашел вариант такой:
— Получить json данные нужных TV
— Декодировать все эти данные через json_decode($tv,true)
— Объединить полученные массивы с помощью array_merge
— Закодировать полученный объединенный массив используя json_encode
— Передать его в getImageList с помощью параметра &value
Пример сниппета json_merge:
<?php
$json = array();
$tvid = (int)$tvid;
$tmp = explode(',',$input);
foreach ($tmp as $tvs) {
if ((int)$tvs > 0) {
if ($tv = $modx->getObject('modTemplateVarResource', array('contentid' => (int)$tvs, 'tmplvarid' => $tvid))) {
$tvj = json_decode($tv->get('value'),true);
$json = array_merge($json,$tvj);
}
}
}
for($i=0; $i<count($json); $i++) {
$json[$i]['MIGX_id']=($i+1);
}
return json_encode($json);
Вывожу так:
<div class="team-carousel text-center">
[[getImageList?
&tpl=`teamElementIndex`
&value=`[[json_merge? &input=`[[*teampageid]]` &tvid=`34`]]`
]]
</div>
Проблема в том, что вывод "склеивает" всё в один раздел. Т.е. например 5 сотрудников из одного раздела выводятся корректно, а остальные "добавляются" к этому же разделу и не перекидывают на верный.
teamElementIndex:
<div class="item">
<div class="element">
<div class="img-wrapper">
<a href="[[~[[*teampageid]]]]#block[[+MIGX_id]]"><img src="[[+team-img:phpthumbon=`w=170&h=180&zc=1&q=90`]]" /></a>
</div>
<div class="push15"></div>
<div class="title f15 bold white">
<a href="[[~[[*teampageid]]]]#block[[+MIGX_id]]">[[+team-name]]</a>
</div>
<div class="text f13">[[+team-post]]</div>
</div>
</div>