pdoMenu
Последнее обновление not available | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn moreСниппет-генератор меню. Может заменить Wayfinder и даёт больше гибкости в параметрах.
Например, строит меню из нескольких родителей, показывая их вместе или отдельными ветками.
Даёт заметный прирост скорости, хотя только при первом просмотре страницы, если меню Wayfinder закэшировано.
Если вы не пользовались Wayfinder, прочитайте его документацию: pdoMenu переиспользует многие концепции и настройки Wayfinder. Документация здесь, или скачайте ebook Wayfinder на 184 страницы в этой теме.
Свойства¶
| Name | Default | Description |
|---|---|---|
| &parents | Current resource | Список родителей для поиска результатов через запятую. 0 использует все ресурсы верхнего уровня. Если id родителя начинается с минуса, он и его потомки исключаются из результата. |
| &level | 0 (no limit) | Уровень (глубина) генерируемого меню. |
| &resources | Список ресурсов для добавления в результаты через запятую. Если id начинается с минуса, ресурс исключается. | |
| &templates | Список шаблонов для фильтрации через запятую. Если id шаблона начинается с минуса, ресурсы с ним исключаются. | |
| &where | Дополнительный массив параметров в JSON. | |
| &displayStart | 0 | Показывать родительский узел. Полезно при нескольких «parents». |
| &context | Контекст ресурсов для построения меню. | |
| &showHidden | 0 | Показывать ресурсы, скрытые в меню. |
| &showUnpublished | 0 | Показывать неопубликованные ресурсы всем. |
| &previewUnpublished | 0 | Показывать неопубликованные только авторизованным в менеджере с правом просмотра неопубликованных. |
| &hideSubMenus | 0 | Скрывать неактивные ветки подменю. |
| &select | Список полей через запятую. Можно JSON-массив, например {"modResource":"id,pagetitle,content"}. По умолчанию выбираются все поля modResource. Не нужен, если используете [[+introtext]] и т. п., они уже доступны. Используйте, если нужны не все поля. |
|
| &sortby | menuindex | Любое поле ресурса для сортировки, включая TV из &includeTVs. Можно JSON с несколькими полями, например {"tvname":"ASC", "pagetitle":"DESC"}. Для случайной сортировки «RAND()». |
| &sortdir | ASC | Направление сортировки. Если &sortby и &sortdir пусты, порядок как в &resources. |
| &limit | 0 | Ограничение числа результатов. «0» без ограничений. |
| &offset | 0 | Пропуск результатов с начала. Используйте с &limit |
| &checkPermissions | Какие права пользователя проверять при выводе ресурсов. Без указания права не проверяются. Например &checkPermissions=list |
|
| &countChildren | 0 | Считает число дочерних ресурсов каждого родителя и выводит в [[+children]]. Дополнительные запросы к БД, по умолчанию 0. |
| &toPlaceholder | Если не пусто, сохраняет вывод в плейсхолдер с тем же именем вместо возврата меню. | |
| &plPrefix | wf. | Префикс плейсхолдеров в чанках шаблонов |
| &showLog | 0 | Отладочная информация о работе сниппета. Только для авторизованных в менеджере. |
| &fastMode | 0 | Быстрый режим обработки чанков. Все «сырые» теги (output modifiers, сниппеты и т. д.) удаляются. |
| &cache | 0 | Кэширование результатов сниппета. |
| &cacheTime | 3600 | Время жизни кэша в секундах. |
| &scheme | -1 (relative to site_url) | Как генерируется URL, значения как в API modX::makeUrl(). |
| &useWeblinkUrl | 1 | При 1 в «[[+link]]» выводится URL из weblink-ресурса, а не ссылка на сам weblink. |
| &rowIdPrefix | Если задан, создаёт уникальный id для каждого пункта: rowIdPrefix + docId. | |
| &hereId | Текущий id для сниппета. Используйте [[*id]], если шаблон &tplHere и &tplParentRowActive не применяется к пункту меню. |
|
| &includeTVs | Список TV через запятую. Например «action,time» даст [[+action]] и [[+time]] |
|
| &tvPrefix | Префикс TV. |
Свойства шаблонов¶
Эти параметры задают чанки с шаблонами частей генерируемого меню.
Как сказано выше, если вы не пользовались Wayfinder, хотя бы просмотрите его документацию перед своими чанками, хотя у pdoMenu чуть другая иерархия чанков.
Даже без документации обязательно включите [[+wrapper]] в чанки. Несмотря на имя, это плейсхолдер для содержимого обёртки (как [[*content]] в ресурсах). Он заменится содержимым подменю нижнего уровня. Без него часть меню или всё меню исчезнет без сообщения об ошибке.
| Name | Description |
|---|---|
| &tplOuter | Чанк для всего блока меню. По умолчанию: @INLINE <ul[[+classes]]>[[+wrapper]]</ul> |
| &tpl | Чанк для каждого ресурса. Если не указано, на экран выводятся поля ресурса. По умолчанию: @INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a>[[+wrapper]]</li> |
| &tplParentRow | Чанк для контейнера с дочерними элементами. |
| &tplParentRowHere | Чанк для текущего контейнера. |
| &tplHere | Чанк для текущего ресурса |
| &tplInner | Чанк-обёртка для секций подменю. Если пусто, используется &tplOuter |
| &tplInnerRow | Чанк для строк подменю. |
| &tplInnerHere | Чанк для текущего пункта подменю. |
| &tplParentRowActive | Чанк для активной категории. |
| &tplCategoryFolder | Специальный чанк для категорий. Категории: isfolder = 1 и пустой шаблон или атрибут «rel = category». Для пунктов верхнего уровня без активной ссылки. |
| &tplStart | Чанк для родительского ресурса при &displayStart. По умолчанию: @INLINE <h2[[+classes]]>[[+menutitle]]</h2>[[+wrapper]] |
Свойства CSS-классов¶
Эти параметры задают значения плейсхолдеров [[+classes]] и [[+classnames]] для частей меню.
| Name | Description |
|---|---|
| &firstClass | Класс первого пункта меню. По умолчанию: first |
| &lastClass | Класс последнего пункта. По умолчанию: last |
| &hereClass | Класс активного пункта и его родителей. По умолчанию: active |
| &parentClass | Класс родительских пунктов. |
| &rowClass | Класс каждой строки меню. |
| &outerClass | Класс внешней обёртки. |
| &innerClass | Класс внутренних обёрток подменю. |
| &levelClass | Класс каждого уровня меню. Например «level» даст «level1», «level2» и т. д. |
| &selfClass | Класс текущего документа в меню. |
| &webLinkClass | Класс для weblink-ресурсов. |
Примеры¶
Простое меню верхнего уровня:
[[pdoMenu?
&parents=`0`
&level=`1`
]]
Двухуровневое меню с исключением родителей:
[[pdoMenu?
&parents=`-10,-15`
&level=`2`
&checkPermissions=`load,list,view`
]]
Меню из двух родителей с показом родителей:
[[pdoMenu?
&parents=`10,15`
&displayStart=`1`
]]
Список всех ресурсов за один проход:
[[pdoMenu?
&parents=`0`
&level=`2`
&tplInner=`@INLINE [[+wrapper]]`
&tplParentRow=`@INLINE <li[[+classes]]><a href="[[+link]]" [[+attributes]]>[[+menutitle]]</a> ([[+children]])</li>[[+wrapper]]`
&countChildren=`1`
]]
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$204 per month—let's make that $500!
Learn more










