Виджет навигации позволяет выводить на сайте меню, созданные в административной части приложения. Чтобы начать работу с навигационным виджетом необходимо в административной части сайта перейти в раздел Навигация. Там уже имеется пункт-категория Main menu. В настояще время все остальные меню должны быть созданы внутри этой категории. Создание блока меню, как и его пунктов происходит одинаково. С той лишь разницей, что все пункты создаются внутри родителя, а у блока меню нет необходимости указывать поле URL.
Итак, чтобы создать новое меню необходимо нажать Добавить. Далее заполнить следующие поля в формах: Обязательное поле:
Кнопка Добавить свойство позволяет добавлять пункту меню дополнительные свойства, например атрибуты типа data. Для добавления свойства требуется заполнить 2 поля:
Создание пунктов меню происходит так же, только создавать их нужно внутри созданного блока меню.
После того, как меню в административной части готово, требуется вызвать виджет навигации в нужной части шаблона темы.
<?= \app\widgets\navigation\NavigationWidget::widget(['rootId' => ID]) ?>
Где ID - идентификатор блока меню, который мы создавали в административной части приложения. Данный вызов выведет на сайте меню следующего вида:
<ul class="navigation-widget">
<li ><a href="/item">Item</a></li>
<li ><a href="/item2">Item2</a>
<ul>
<li><a href="/item2/subitem">Subitem</a></li>
</ul>
</li>
</ul>
Можно расшить вызов виджета, добавив в него собственный файл отображения:
<?= \app\widgets\navigation\NavigationWidget::widget([
'rootId' => ID,
'viewFile' => 'путь/до/файла'
])?>
При этом в указанном фале будет доступен массив $items
, следующей структуры:
Array (
[0] => Array (
[label] => Item
[url] => /item
[options] => Array (
[class] =>
)
[items] => Array ( )
)
)
Его можно обработать и вывести так, как трубуется.
Дополнительные параметры можно передать следующим образом ,в массиве options:
<?= \app\widgets\navigation\NavigationWidget::widget([
'rootId' => 9,
'options'=>[
'name' => 'value'
]
]) ?>