MODX. Создание меню при помощи pdoMenu
Отредактировано: 10 Февраля 2023
Для создания меню в MODX написано множество компонентов, но pdoMenu удобен тем, что поставляется в комплекте pdoTools, и обладает хорошей гибкостью для настройки.
Для создания меню необходимо:
- Иметь пару опубликованных, отображаемых в меню ресурсов, и установленный компонент pdoTools;
- В шаблоне, в месте где должно отображаться меню вставить следующий код:
[[pdoMenu?
&parents=`0`
&level=`1`
]]
Выше приведен стандартный вызов меню, который подойдет для простейших сайтов.
-
&parents — id самого верхнего ресурса с которого надо начинать строить меню. Если меню не должно иметь ограничений, стоит проставить 0;
-
&level — количество уровней вложенности которые должны отображаться в меню.
По умолчанию меню выведется заключенное в теги «ul,li», но шаблон можно изменить. Для этого достаточно использовать параметры относящиеся к группе «Параметры шаблонов» из документации, приведенной ниже.
К примеру, для того чтобы теги «li» оборачивались в «menu» стоит добавить параметр &tplOuter = `tpl.menuOuter` и создать одноименный чанк, с кодом
<menu[[+classes]]>[[+wrapper]]</menu>
Иногда для коротких записей нет смысла создавать отдельные чанки с шаблонами, поэтому можно прописать тот же шаблон инлайново:
&tplOuter = `@INLINE <menu[[+classes]]>[[+wrapper]]</menu>`
Вариант использования pdoMenu с Fenom и одним шаблоном, от Сергея Шлокова:
Документация сниппета pdoMenu
pdoMenu
Меню с дополнительным пунктом в чанке, без ссылки на страницу:
// Вызов меню
[[!pdoMenu?
&parents=`0`
&level=`1`
&tplLast=`call.feedback`
]]
// Код чанка
<li[[+classes]]><a href="[[+link]]" [[+link_attributes]]>
[[+menutitle]]
</a>[[+wrapper]]</li>
[[*id:ne=`1`:then=`<li><div class="trigger-superposition">Обратная связь</div></li>`]]