Меню Битрикс

Оригинальное название: Bitrix menu

Коротко

Навигация публичной части 1С-Битрикс, пункты которой хранятся в файлах разделов, а выводятся компонентом bitrix:menu с нужным шаблоном.

Что такое «Меню Битрикс»

Устройство меню в Битриксе непривычно тем, кто пришёл из других систем: пункты хранятся не в базе данных, а в небольших PHP-файлах прямо в папках разделов. Имя файла определяет тип меню: .top.menu.php — верхнее, .left.menu.php — левое. Типы можно заводить свои, например «bottom» для подвала, в настройках модуля «Управление структурой».

Выводит меню компонент bitrix:menu: ему указывают тип, глубину вложенности и шаблон. Компонент ищет файл нужного типа в текущем разделе, а если не находит — поднимается к родительскому. Благодаря этому левое меню, заданное в корне каталога, работает во всех подразделах, пока у какого-то из них не появится своё.

Пример файла меню

<?php
$aMenuLinks = [
    ['О компании', '/about/', [], [], ''],
    ['Каталог', '/catalog/', [], [], ''],
    ['Доставка', '/delivery/', [], [], ''],
    ['Контакты', '/contacts/', [], [], ''],
];

В каждом пункте: название, ссылка, дополнительные адреса, при которых пункт считается активным, параметры и условие показа. Править такой файл можно и без кода — через режим правки на публичной странице.

Динамические пункты

Разделы каталога вручную в меню не вписывают: они меняются. Для этого рядом с файлом меню создают одноимённый файл с суффиксом _ext, например .left.menu_ext.php. В нём код добавляет пункты из инфоблока, а компонент меню подключает его, если включён параметр использования расширений. Как это устроено, описано в статье о функции меню Битрикс.

Типичные ошибки

  • Меню неожиданно пропадает в одном разделе: там появился свой пустой файл меню того же типа и перекрыл родительский.
  • Динамическое меню каталога без кэша замедляет каждую страницу.
  • Меню сайта путают с административным меню и ищут пункты навигации в настройках админки.

Обновлено:

Все термины раздела «1С-Битрикс»

Что будем искать? Например,Продвижение