Как вывести ресурсы определенного уровня?
getResources: Как вывести ресурсы определенного уровня?
Пример:
Page1
|
SubPage1 — SubPage2 — SubPage3
|
SubSubPage1 — SubSubPage2
— выводить страницы SubSubPage1, SubSubPage2 и все другие, которые когда-либо будут добавлены к SubPage1 или SubPage2 или SubPage3
В Evolution есть extenter, так что получается типа такого: [!Ditto? &parents=`1` &extenders=`level` &level=`3` &tpl=`DittoTpl`!]. А как в Revolution и с getResources? Или не getResources?
Пример:
Page1
|
SubPage1 — SubPage2 — SubPage3
|
SubSubPage1 — SubSubPage2
— выводить страницы SubSubPage1, SubSubPage2 и все другие, которые когда-либо будут добавлены к SubPage1 или SubPage2 или SubPage3
В Evolution есть extenter, так что получается типа такого: [!Ditto? &parents=`1` &extenders=`level` &level=`3` &tpl=`DittoTpl`!]. А как в Revolution и с getResources? Или не getResources?
Комментарии: 13
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
forums.modx.com/thread/95675/getresources-listing-resources-of-a-certain-level#dis-post-517925
А в pdoResources какой параметр позволит выбирать страницы определенного уровня?
Думаю, основной параметр для данной задачи — where +было бы на порядок проще, если бы нужные для вывода документы, помимо глубины, имели еще общие или справедливые только для них шаблоны — тогда весь вызов можно было бы ограничить только условием на соответствие этих шаблонов.
Вторым выбираете id нужных уровней, и подсовываете в первый сниппет в параметр resources
Хотя не, не вник в задачу, сорри, но оставлю на всякий случай, авось зацепитесь чем-то
можно попробовать запихнуть в parents это всё
&resources=`[[!pdoField? &field=`id` &top=`2`]]`
]]
Конструкция вызывается на конкретной странице. А страница может быть разного уровня. Соотвественно, как и в случае с использованием UltimateParent, результаты будут разные.
В Evolution и Ditto дело делает экстендер level. В Revolution и getResources — предложили костыль по ссылке: forums.modx.com/thread/95675/getresources-listing-resources-of-a-certain-level#dis-post-517925
>>Хотя не, не вник в задачу, сорри
— В сайдбаре, который на всех страницах (любого уровня) должны выводится анонсы страниц строго определенного уровня.
SubSubPage2 = ресурс
Если так то можно просто исключить контейнеры из вывода
Вышеозначенные ссылки ничего не прояснили, как применить сниппет getParentsAtLevel не вполне ясно.
Вариант с проверкой на контейнеры работает бессмысленно, вызов в шаблоне:
То есть для случая 3-х уровневого (Рубрика/Подрубрика/Документ) выводится как надо pagetitle родителя и pagetitle документа, но ведь и для 2-х уровневого случая (Рубрика/Документ) то же самое получается. А тут как раз нужен один pagetitle. Не знаю, нужно ли пояснять, для чего это нужно и почему так, но я готов при необходимости, авось попроще решение найдется.
Может как-то из шаблона можно проверить есть ли у родителя родитель-контейнер? Если нет, то опять же выводить `пустоту` на месте pagetitle родителя? Кажется это решило бы вопрос, хоть и криво все это выглядит.
вывод в шаблоне выглядит так:
вычурно, но авось кому пригодится.
таким образом, видимо, можно сравнивать документ на совпадение родителей и исключать лишнее из вывода для любых уровней, используя pdoField и параметр «top».
Суть в чем. Стояла задача чтоб когда находишься на странице которая находится в контейнере например «Продукция», подставлялся в параметр класса «active» делая в меню ссылку «Продукция» другого цвета. И даже перейдя на страницу самой продукции, в меню она тоже оставалась активной. В общем порядок получился такой:
Установил инструмент pdoTools (отсюда)
Потом в чанке, например в коде меню
когда элемент меню должен становиться другим цветом, появляется параметр «active»
И вот, при переходе например к странице «Природа»([[~12]]) являющейся дочерней «Фото и видео»([[~3]]). Надо что-бы меню автоматически оставалось активным. Получился костыль своеобразный, но зато не плодить шаблоны:
Логика: Если id родителя страницы = id «3» или 10 или 12 (например у страницы Природа, которая является дочкой Фото и видео есть своя дочерняя страница и вы перешли на нее), то написать " active"
[[*id:is=`3`:then=` active`]] — если id страницы = 3, то сделать активным меню «Фото и видео»