Меню в 1С-Битрикс — это не единый объект, а совокупность файлов с пунктами и шаблона, который их выводит. Чтобы уверенно им управлять, нужно понимать три вещи: тип меню, уровни вложенности и то, где физически хранятся пункты.
Как устроено меню в 1С-Битрикс
В отличие от многих CMS, где меню — это отдельная сущность в базе данных, в 1С-Битрикс меню хранится в файлах внутри структуры сайта. В каждом разделе может лежать один или несколько файлов меню, имя которых строится по шаблону .тип.menu.php — например, .top.menu.php или .left.menu.php.
Ключевых понятий три:
- Тип меню — идентификатор (например,
top,left,bottom), который определяет, какой файл искать и какое меню выводить в конкретном месте шаблона. - Файл меню — физический файл
.тип.menu.phpв разделе; содержит массив пунктов данного раздела. - Компонент вывода —
bitrix:menuв шаблоне сайта, который собирает пункты из файлов и рисует HTML.
Такой подход даёт гибкость: в разных разделах сайта одно и то же по типу меню (например, левое) может содержать разные пункты.
Типы меню и где они задаются
Тип меню — это строковый код, по которому система понимает, из каких файлов брать пункты. Стандартный дистрибутив обычно содержит три типа: верхнее (top), левое (left) и нижнее (bottom). Список типов не жёсткий — вы можете добавить свои.
Чтобы посмотреть или изменить список типов:
- Откройте Настройки → Настройки продукта → Типы меню.
- Выберите нужный сайт в выпадающем списке (если сайтов несколько).
- В таблице задайте пары идентификатор и название. Идентификатор латиницей — именно он подставляется в имя файла
.идентификатор.menu.php. - Сохраните изменения.
Названия типов используются в интерфейсе редактирования — например, когда контент-менеджер выбирает, какое именно меню он правит в разделе. Идентификатор же связывает тип меню с вызовом компонента в шаблоне.
| Идентификатор | Имя файла в разделе | Типичное расположение |
|---|---|---|
top | .top.menu.php | Горизонтальное меню в шапке |
left | .left.menu.php | Вертикальное меню в колонке |
bottom | .bottom.menu.php | Меню в подвале |
Связь типа меню с шаблоном сайта
Само по себе наличие файла .top.menu.php ничего не выводит — меню появляется на странице только там, где в шаблоне сайта вызван компонент bitrix:menu с указанием нужного типа. В параметрах компонента есть поле Тип меню для первого уровня, куда и вписывается идентификатор (top, left и т.д.).
Отсюда следуют два практических вывода:
- Если добавить новый тип меню в настройках, но не вызвать его в шаблоне — на сайте он не отобразится.
- Один и тот же тип меню можно выводить в нескольких местах шаблона; и наоборот, разные шаблоны разделов могут выводить разные наборы меню.
Редактировать вызовы компонентов удобно из публичной части в режиме правки, либо напрямую в файлах шаблона через Настройки → Настройки продукта → Сайты → Шаблоны сайтов.
Уровни вложенности: как работает многоуровневое меню
Меню в 1С-Битрикс может быть многоуровневым. Уровни складываются из двух источников:
- Пункты внутри одного файла меню — у каждого пункта можно указать дополнительные ссылки-подпункты (доп. ссылки), формируя вложенность в пределах раздела.
- Файлы меню в подразделах — если компонент настроен на сбор меню из вложенных папок, пункты из
.тип.menu.phpподразделов достраиваются как следующие уровни.
За глубину отвечают параметры компонента bitrix:menu:
- Уровень вложенности меню — сколько уровней выводить (1 — только верхний, 2 и более — с подпунктами).
- Тип меню для остальных уровней — можно задать отдельный тип для вложенных уровней (например, верхнее меню строит выпадающие подпункты из
left). - Использовать вложенность (папки) — учитывать ли файлы меню из подразделов.
Важно: чтобы у пункта появился второй уровень, недостаточно создать файл в подразделе — нужно, чтобы значение параметра «Уровень вложенности» было не меньше 2.
Редактирование пунктов меню
Править пункты можно двумя способами.
Через админку
- Откройте Контент → Структура сайта → Файлы и папки.
- Перейдите в нужный раздел и найдите файл
.тип.menu.php(скрытые служебные файлы отображаются, если включён показ). - Откройте его на редактирование через встроенный визуальный редактор меню — добавляйте пункты, задавайте название, ссылку и дополнительные условия.
Через публичную часть
- Войдите на сайт под администратором и включите режим правки.
- Наведите курсор на область меню — появится кнопка управления с пунктом Изменить меню.
- В открывшемся окне добавьте или переставьте пункты, сохраните.
Для каждого пункта доступны: название, ссылка, сортировка, дополнительные ссылки (для подсветки активного пункта на нескольких URL) и произвольные параметры. Именно через параметры реализуются условия показа и передача данных в шаблон меню.
Частые ошибки
Наиболее распространённые проблемы при настройке меню:
- Меню не выводится, хотя файл создан. Проверьте, что в шаблоне вызван компонент
bitrix:menuс нужным идентификатором типа, а сам тип объявлен в настройках продукта. - Не появляется второй уровень. Частая причина — параметр «Уровень вложенности меню» равен 1. Увеличьте значение и, при необходимости, включите учёт папок.
- Пункт не подсвечивается как активный. Добавьте фактический URL страницы в поле дополнительных ссылок пункта, чтобы он подсвечивался на всех нужных адресах.
- Правки в файле меню не видны. Виноват кэш компонента. Сбросьте кэш через Настройки → Настройки продукта → Автокэширование или очистите кэш компонента.
- Разное меню в разных разделах вместо единого. Помните: пункты берутся из файла меню текущего раздела. Чтобы меню было общим, оно должно лежать в корне и не переопределяться файлами в подразделах, либо компонент должен искать файл вверх по дереву.
Итог
Меню в 1С-Битрикс работает по связке из трёх элементов: тип меню (идентификатор в настройках продукта), файлы .тип.menu.php с пунктами в разделах структуры и компонент bitrix:menu в шаблоне, который отвечает за вывод и глубину уровней.
Чтобы уверенно настраивать меню, действуйте по порядку: убедитесь, что тип объявлен, создайте или отредактируйте файл меню в нужном разделе, проверьте параметры вывода в шаблоне (тип и уровень вложенности) и не забудьте про кэш. Такой подход избавляет от большинства ситуаций, когда «меню не появляется» или «не строятся подпункты».