Для вывода данных элементов через pdoMenu в MODX сначала необходимо создать пункты меню и присвоить им нужные свойства, а затем использовать pdoMenu для их вывода.
1. Создание пунктов меню:
В административной панели MODX перейдите в раздел "Элементы" и выберите категорию, в которой нужно создать пункты меню. Нажмите на кнопку "Создать новый элемент".
В появившейся форме заполните необходимые поля, такие как заголовок пункта меню, ссылка, изображение и др. Отметьте также поле "Показывать в меню".
2. Настройка pdoMenu:
Для использования pdoMenu необходимо добавить пакет pdoTools в MODX. Если пакет уже установлен, пропустите этот шаг.
В административной панели перейдите в раздел "Пакеты", найдите "pdoTools" и установите его.
3. Создание pdoMenu:
В шаблоне MODX добавьте следующий код для создания pdoMenu и вывода данных элементов меню:
<!-- pdoMenu опции --> [[!pdoMenu? &parents=`0` &level=`1` &tpl=`menuTpl` &sortby=`menuindex ASC` &includeDocs=`1` &showHidden=`0` ]] <!-- Собственный чанк шаблона для отображения меню --> [[*pdoMenu]]
В этом примере опция &parents
указывает на ID родительского элемента меню, в данном случае 0 означает корневой уровень.
Опция &level
указывает на глубину, до которой нужно выводить пункты меню.
Опция &tpl
ссылается на чанк-шаблон, содержащий разметку для отображения меню.
Опция &sortby
позволяет упорядочить пункты меню.
Опция &includeDocs
указывает, что нужно включить в меню только элементы с типом "Документ".
Опция &showHidden
указывает, что нужно скрыть скрытые элементы меню.
4. Создание чанка-шаблона:
Создайте чанк с именем "menuTpl" и добавьте в него следующий код:
<ul> [[!+parents:ne=`0`:then=`<li class="folder">[[+title]]<ul>[[+subpages]]</ul></li>`:else=`<li class="page">[[+title]]</li>`]] </ul>
В этом примере используется условное выражение для проверки, является ли пункт меню папкой или страницей. Если пункт меню является папкой, создается вложенный список для вывода подстраниц.
Через pdoMenu в MODX можно выводить данные элементов меню с помощью опций и настроек, достаточно гибких и мощных для управления контентом и дизайном.