Skip to content

pbMenu

Дерево ресурсов для навигации.

[[!pbMenu? &parent=`0` &level=`3` &tpl=`chunk:menuItem`]]

Параметры

ПараметрПо умолчаниюОписание
parent0Корень дерева. 0 — корень сайта.
level3На сколько уровней вглубь идти.

Плюс общие параметры вывода из Введения.

Каждая строка несёт своих детей

В отличие от плоского списка, у каждого пункта есть коллекция 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}

© PageBlocks 2019-present