pbMenu
Дерево ресурсов для навигации.
[[!pbMenu? &parent=`0` &level=`3` &tpl=`chunk:menuItem`]]Параметры
| Параметр | По умолчанию | Описание |
|---|---|---|
parent | 0 | Корень дерева. 0 — корень сайта. |
level | 3 | На сколько уровней вглубь идти. |
Плюс общие параметры вывода из Введения.
Каждая строка несёт своих детей
В отличие от плоского списка, у каждого пункта есть коллекция children, поэтому один чанк выводит всё дерево, вызывая сам себя:
php
<li>
<a href="{$item->uri}">{$item->pagetitle}</a>
{if $item->children}
<ul>
{foreach $item->children as $item}
{include 'chunk:menuItem'}
{/foreach}
</ul>
{/if}
</li>{insert} и {include} делят область видимости
Переменная цикла видна внутри вставленного чанка — именно это и заставляет рекурсию выше работать. Но это же значит, что переменная из родителя может протечь внутрь и удивить. Называйте переменные цикла осознанно.
Примеры
Верхнее меню, один уровень
[[!pbMenu? &level=`1` &tpl=`chunk:menuItem`]]Подменю раздела
[[!pbMenu? &parent=`[[*id]]` &level=`2` &tpl=`chunk:menuItem`]]Из Fenom
php
{foreach menu(0, 2) as $item}
<a href="{$item->uri}">{$item->pagetitle}</a>
{/foreach}