pdoResources - Как вывести сначала все соседние ресурсы из одного контейнера, а затем все остальные ресурсы ?

Главный контейнер «2» имеет несколько контейнеров с ресурсами. Необходимо вывести сначала все соседние ресурсы текущего ресурса в одном контейнере, а затем все остальные ресурсы главного контейнера. Можно ли как-то организовать такую сортировку вывода? Всем добра

{'!pdoResources' | snippet: [
'parents' => 2,
'resources'=> '-' ~ $_modx->resource.id,
'limit' => '10',
'hideContainers' => 1
]}
Алексей
28 ноября 2022, 19:09
modx.pro
709
0

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

Алексей Смирнов
28 ноября 2022, 22:02
0
Почти понятно что хотите но не до конца.

вывести сначала все соседние ресурсы текущего ресурса
не понятно о каких соседях идет речь.

а затем все остальные ресурсы главного контейнера
Для меня что соседи что остальные ресурсы главного — одинаково.

Если вы хотите вложенность получить, то используйте pdoMenu.
Если вы хотите вывести сначала непосредственные контейнеры родителем которого явл. ресурс 2, а потом отдельно все ресурсы вложенных (подчиненных) этих контейнеров, то нужно написать 2 вызова.
ну или уточните вопрос детальнее.
    Алексей
    29 ноября 2022, 08:20
    0
    Спасибо за отклик.
    Есть родитель-контейнер «2», в котором лежат дочерние контейнеры с ресурсами. При выводе ресурса необходимо сначала вывести 10 соседних ресурсов с одного дочернего контейнера. Но если этих соседних ресурсов меньше 10, тогда нужно выводить все подряд ресурсы с других дочерних контейнеров, чтобы заполнить количество до 10.
      Алексей Смирнов
      29 ноября 2022, 10:05
      0
      ВЫ не поняли. Вопрос в том, что вы понимаете под СОСЕДНИМИ ресурсами? Это родители или это дочерние или иные из другого ресурса. я просто не понимаю что такое сосед. тк соседи и с верху есть и с низу и побокам… МОжет если опишите структуру подробнее станет понятнее. Например деревовидная обычно используется:
      Индекс (0)
      — Ресурс (2)
      — — вложенный (100)
      — — — вложенный глубже (1500)
      — — вложенный (200)
      — Еще ресурс (15)
      — Ресурсо (18)
        Алексей
        29 ноября 2022, 18:38
        0
        --Ресурс(Контейнер)(2)
        — — Ресурс(Контейнер)(3)
        — — — Ресурс(31)
        — — — Ресурс(32)
        — — — Ресурс(33)
        — — — Ресурс(34)
        — — — Ресурс(35)
        — — Ресурс(Контейнер)(4)
        — — — Ресурс(41)
        — — — Ресурс(42)
        — — — Ресурс(43)
        — — Ресурс(Контейнер)(5)
        — — Ресурс(Контейнер)(6)
        … т.д.

        Вот такая структура, а соседей я считаю только по бокам, пример с 31 по 35 находящихся в одном контейнере(3). Вот их надо выводить в первую очередь, исключая текущий. А затем уже остальные ресурсы-контнейры 4, 5 и т.д.
          Алексей Смирнов
          29 ноября 2022, 18:49
          0
          Чем ресуры 31-35 отличаются от 3,4,5,6? (Шаблон? класс?)
          Если ничем, то возможно если 31-35 это не контейнеры, то вывод можно организовать сосздав условие isfolder = 0, а контейнеры можно выводить с условием isfolder = 1.
          НО если у ресов есть отличие в Шаблоне, то Параметр template в помощь.
          Надеюсь путь понятен.
            Алексей
            29 ноября 2022, 18:58
            0
            Путь понятен, но он не туда
            {'!pdoResources' | snippet: [
            'parents' => 2,
            'resources'=> '-' ~ $_modx->resource.id,
            'limit' => '10',
            'hideContainers' => 1
            ]}
            Сейчас в моем снипете уже указано условие не выводить Контейнеры вообще и не выводить текущий ресурс. Мне нужны все остальные ресурсы, которые находятся в главном ресурсе-контейнере(2), но сначала надо выводить имеющиеся ресурсы соседние по бокам текущего ресурса.
            т.е. если я вывожу ресурс 42 — Сначала должны вывестись ресурсы 41,43, а затем уже 31,32 и т.д. но не больше 10 штук
              Алексей
              30 ноября 2022, 08:39
              0
              Может кому будет полезно, надо добавить сортировку
              'sortby' => 'FIELD(modResource.parent, '~ $_modx->resource.parent ~ ')'

              В итоге получаем
              {'!pdoResources' | snippet: [
              'parents' => 2,
              'resources'=> '-' ~ $_modx->resource.id,
              'limit' => '10',
              'hideContainers' => 1,
              'sortby' => 'FIELD(modResource.parent, '~ $_modx->resource.parent ~ ')'
              ]}
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    7