pdoResources - Как вывести сначала все соседние ресурсы из одного контейнера, а затем все остальные ресурсы ?
Главный контейнер «2» имеет несколько контейнеров с ресурсами. Необходимо вывести сначала все соседние ресурсы текущего ресурса в одном контейнере, а затем все остальные ресурсы главного контейнера. Можно ли как-то организовать такую сортировку вывода? Всем добра
{'!pdoResources' | snippet: [
'parents' => 2,
'resources'=> '-' ~ $_modx->resource.id,
'limit' => '10',
'hideContainers' => 1
]}
{'!pdoResources' | snippet: [
'parents' => 2,
'resources'=> '-' ~ $_modx->resource.id,
'limit' => '10',
'hideContainers' => 1
]}
Комментарии: 7
Почти понятно что хотите но не до конца.
Если вы хотите вложенность получить, то используйте pdoMenu.
Если вы хотите вывести сначала непосредственные контейнеры родителем которого явл. ресурс 2, а потом отдельно все ресурсы вложенных (подчиненных) этих контейнеров, то нужно написать 2 вызова.
ну или уточните вопрос детальнее.
вывести сначала все соседние ресурсы текущего ресурсане понятно о каких соседях идет речь.
а затем все остальные ресурсы главного контейнераДля меня что соседи что остальные ресурсы главного — одинаково.
Если вы хотите вложенность получить, то используйте pdoMenu.
Если вы хотите вывести сначала непосредственные контейнеры родителем которого явл. ресурс 2, а потом отдельно все ресурсы вложенных (подчиненных) этих контейнеров, то нужно написать 2 вызова.
ну или уточните вопрос детальнее.
Спасибо за отклик.
Есть родитель-контейнер «2», в котором лежат дочерние контейнеры с ресурсами. При выводе ресурса необходимо сначала вывести 10 соседних ресурсов с одного дочернего контейнера. Но если этих соседних ресурсов меньше 10, тогда нужно выводить все подряд ресурсы с других дочерних контейнеров, чтобы заполнить количество до 10.
Есть родитель-контейнер «2», в котором лежат дочерние контейнеры с ресурсами. При выводе ресурса необходимо сначала вывести 10 соседних ресурсов с одного дочернего контейнера. Но если этих соседних ресурсов меньше 10, тогда нужно выводить все подряд ресурсы с других дочерних контейнеров, чтобы заполнить количество до 10.
ВЫ не поняли. Вопрос в том, что вы понимаете под СОСЕДНИМИ ресурсами? Это родители или это дочерние или иные из другого ресурса. я просто не понимаю что такое сосед. тк соседи и с верху есть и с низу и побокам… МОжет если опишите структуру подробнее станет понятнее. Например деревовидная обычно используется:
Индекс (0)
— Ресурс (2)
— — вложенный (100)
— — — вложенный глубже (1500)
— — вложенный (200)
— Еще ресурс (15)
— Ресурсо (18)
Индекс (0)
— Ресурс (2)
— — вложенный (100)
— — — вложенный глубже (1500)
— — вложенный (200)
— Еще ресурс (15)
— Ресурсо (18)
--Ресурс(Контейнер)(2)
— — Ресурс(Контейнер)(3)
— — — Ресурс(31)
— — — Ресурс(32)
— — — Ресурс(33)
— — — Ресурс(34)
— — — Ресурс(35)
— — Ресурс(Контейнер)(4)
— — — Ресурс(41)
— — — Ресурс(42)
— — — Ресурс(43)
— — Ресурс(Контейнер)(5)
— — Ресурс(Контейнер)(6)
… т.д.
Вот такая структура, а соседей я считаю только по бокам, пример с 31 по 35 находящихся в одном контейнере(3). Вот их надо выводить в первую очередь, исключая текущий. А затем уже остальные ресурсы-контнейры 4, 5 и т.д.
— — Ресурс(Контейнер)(3)
— — — Ресурс(31)
— — — Ресурс(32)
— — — Ресурс(33)
— — — Ресурс(34)
— — — Ресурс(35)
— — Ресурс(Контейнер)(4)
— — — Ресурс(41)
— — — Ресурс(42)
— — — Ресурс(43)
— — Ресурс(Контейнер)(5)
— — Ресурс(Контейнер)(6)
… т.д.
Вот такая структура, а соседей я считаю только по бокам, пример с 31 по 35 находящихся в одном контейнере(3). Вот их надо выводить в первую очередь, исключая текущий. А затем уже остальные ресурсы-контнейры 4, 5 и т.д.
Чем ресуры 31-35 отличаются от 3,4,5,6? (Шаблон? класс?)
Если ничем, то возможно если 31-35 это не контейнеры, то вывод можно организовать сосздав условие isfolder = 0, а контейнеры можно выводить с условием isfolder = 1.
НО если у ресов есть отличие в Шаблоне, то Параметр template в помощь.
Надеюсь путь понятен.
Если ничем, то возможно если 31-35 это не контейнеры, то вывод можно организовать сосздав условие isfolder = 0, а контейнеры можно выводить с условием isfolder = 1.
НО если у ресов есть отличие в Шаблоне, то Параметр template в помощь.
Надеюсь путь понятен.
Путь понятен, но он не туда
{'!pdoResources' | snippet: [
'parents' => 2,
'resources'=> '-' ~ $_modx->resource.id,
'limit' => '10',
'hideContainers' => 1
]}
Сейчас в моем снипете уже указано условие не выводить Контейнеры вообще и не выводить текущий ресурс. Мне нужны все остальные ресурсы, которые находятся в главном ресурсе-контейнере(2), но сначала надо выводить имеющиеся ресурсы соседние по бокам текущего ресурса.
т.е. если я вывожу ресурс 42 — Сначала должны вывестись ресурсы 41,43, а затем уже 31,32 и т.д. но не больше 10 штук
{'!pdoResources' | snippet: [
'parents' => 2,
'resources'=> '-' ~ $_modx->resource.id,
'limit' => '10',
'hideContainers' => 1
]}
Сейчас в моем снипете уже указано условие не выводить Контейнеры вообще и не выводить текущий ресурс. Мне нужны все остальные ресурсы, которые находятся в главном ресурсе-контейнере(2), но сначала надо выводить имеющиеся ресурсы соседние по бокам текущего ресурса.
т.е. если я вывожу ресурс 42 — Сначала должны вывестись ресурсы 41,43, а затем уже 31,32 и т.д. но не больше 10 штук
Может кому будет полезно, надо добавить сортировку
'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 ~ ')'
]}
'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 ~ ')'
]}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.