Меню Битрикс
Оригинальное название: 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. В нём код добавляет пункты из инфоблока, а компонент меню подключает его, если включён параметр использования расширений. Как это устроено, описано в статье о функции меню Битрикс.
Типичные ошибки
- Меню неожиданно пропадает в одном разделе: там появился свой пустой файл меню того же типа и перекрыл родительский.
- Динамическое меню каталога без кэша замедляет каждую страницу.
- Меню сайта путают с административным меню и ищут пункты навигации в настройках админки.

