Вывести ресурсы по несколько раз

Требуется вывести ресурсы по несколько раз
есть перечень 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 и всё,
как сделать вывод ресурсов по своему списку?
Greza
25 января 2017, 13:37
modx.pro
1
2 523
0

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

Алексей Федоров
25 января 2017, 17:42
0
Несколько раз вызвать pdoResources с разными параметрами… хотя там что-то адовое получится, поэтому проще будет попробовать пошаманить с сниппетом getSelections из Collection, но не факт, что получится нормально… как вариант писать свой сниппет на циклический вызов pdoResources с подстановкой id документа по одному из (к примеру) ТВ-шки.
P.S.: Вообще, как-то это странно звучит, может больше поясните по задаче? Не исключено, что есть некие специализированные для этого компоненты.
    Олег
    25 января 2017, 18:30
    +1
    Мне кажется проще всего будет написать свой сниппет для этого.
      Алексей Ерохин
      26 января 2017, 12:56
      1
      +5
      Вот на 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}
        Андрей
        26 января 2017, 13:21
        1
        +1
        //Сниппет 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>
          Максим Кузнецов
          26 января 2017, 13:37
          +2
          Многим лучше вызывать не getObject на каждый ресурс, а один раз getCollection, после чего сформировать результат циклом по ключу полученного массива.
            Greza
            26 января 2017, 14:29
            0
            Спасибо, а getPage сможет разделить на страницы результаты сниппета getRes?
            Greza
            26 января 2017, 16:58
            0
            Спасибо огроменное еще раз, все получилось!
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              11