Вывести ресурсы по несколько раз
Требуется вывести ресурсы по несколько раз
есть перечень ID в каком порядке выводить ресурсы
на пример 1,2,1,3,4,5,1,2,4,5,1,5
если вывести при помощи pdoResources или getResources, указав в параметрах &resources=`1,2,1,3,4,5,1,2,4,5,1,5`,
то ресурсы выведутся только пять раз 1,2,3,4,5 и всё,
как сделать вывод ресурсов по своему списку?
есть перечень ID в каком порядке выводить ресурсы
на пример 1,2,1,3,4,5,1,2,4,5,1,5
если вывести при помощи pdoResources или getResources, указав в параметрах &resources=`1,2,1,3,4,5,1,2,4,5,1,5`,
то ресурсы выведутся только пять раз 1,2,3,4,5 и всё,
как сделать вывод ресурсов по своему списку?
Комментарии: 11
Несколько раз вызвать pdoResources с разными параметрами… хотя там что-то адовое получится, поэтому проще будет попробовать пошаманить с сниппетом getSelections из Collection, но не факт, что получится нормально… как вариант писать свой сниппет на циклический вызов pdoResources с подстановкой id документа по одному из (к примеру) ТВ-шки.
P.S.: Вообще, как-то это странно звучит, может больше поясните по задаче? Не исключено, что есть некие специализированные для этого компоненты.
P.S.: Вообще, как-то это странно звучит, может больше поясните по задаче? Не исключено, что есть некие специализированные для этого компоненты.
Мне кажется проще всего будет написать свой сниппет для этого.
Вот на fenom
{var $resources = '1,20,19,20,19,1,1,1,19,20,20,19' | split}
{if $resources | iterable}
{foreach $resources as $value}
{$value | resource : 'pagetitle'}
{/foreach}
{/if}
//Сниппет getRes
if ($resources) {
$output = '';
$resources = explode(',', $resources);
foreach($resources as $id) {
if ($resource = $modx->getObject('modResource', $id)) {
$output .= $modx->getChunk($tpl, $resource->toArray());
}
}
return $output;
}
//Вызов
[[getRes?
&resources=`1,2,1,3,4,5,1,2,4,5,1,5`
&tpl=`имя_чанка`
]]
//чанк
<div>[[+pagetitle]]</div>
Многим лучше вызывать не getObject на каждый ресурс, а один раз getCollection, после чего сформировать результат циклом по ключу полученного массива.
Спасибо, а getPage сможет разделить на страницы результаты сниппета getRes?
Спасибо, отличный ответ
По умолчанию сниппет выше — не сможет. Чтобы смог, нужно расширить его так, как описано в статье по ссылке.
Конечно, это понятно, там все толково описано
еще раз спасибо
еще раз спасибо
Спасибо огроменное еще раз, все получилось!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.