Организация меню с помощью дочерних документов
Здравствуйте,
Структура такая
Документ 1
-Документ 2
--Документ 2.1
--Документ 2.2
--Документ 2.3
В Документе 2 организовано боковое меню через Шаблон, которое выводит дочерние документы текущего документа:
Когда мы заходим на страницу Документа 2.1, то боковое меню не работает (понятное дело). Как можно организовать боковое меню, чтобы оно работало в Документе 2 и ее дочерних, при условии, что подобных как Документ 2 может быть множество и они работают через один Шаблон.
Структура такая
Документ 1
-Документ 2
--Документ 2.1
--Документ 2.2
--Документ 2.3
В Документе 2 организовано боковое меню через Шаблон, которое выводит дочерние документы текущего документа:
[[pdoMenu?
&parents=`[[*id]]`
&level=`0`
]]
Документ 2 и Документ 2.1 и т.д имеют один шаблон.Когда мы заходим на страницу Документа 2.1, то боковое меню не работает (понятное дело). Как можно организовать боковое меню, чтобы оно работало в Документе 2 и ее дочерних, при условии, что подобных как Документ 2 может быть множество и они работают через один Шаблон.
Комментарии: 6
docs.modx.pro/components/pdotools/snippets/pdofield
см. параметры &top и &topLevel,
подставляем вызов: &parents=`[[!pdoField? ....]]`
см. параметры &top и &topLevel,
подставляем вызов: &parents=`[[!pdoField? ....]]`
[[pdoMenu?
&parents=`[[pdoField? &id=`[[*id]]` &field=`id` &topLevel=`2`]]`
]]
Таким способом у меня заработало меню в дочерних Документах в Документе 2, но в самом Документе 2 выводятся все документы Ресурса.
Покрути параметр topLevel, может 1 нужно указать?, должно работать :)
Не работает в Документ 2 :)
Вот так тоже работает в дочерних Документа 2:
Вот так тоже работает в дочерних Документа 2:
&parents=`[[pdoField? &id=`[[*id]]` &field=`id` &top=`1`]]`
Вряд ли получится универсальный вызов состряпать. Нужно делать проверку, если у ресурса есть дочерние документы (или просто смотреть, установлено ли isfolder), то &parents=`[[*id]]`, если нет, то &parents=`[[*parent]]`.
Т.е. можно просто в вызове pdoMenu проверить модификатором isfolder и подставить нужного родителя:
[[pdoMenu?
&parents=`[[*isfolder:notempty=`[[*id]]:esle=`[[*parent]]`]]`
&level=`0`
]]
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.