Создание и вывод меню

Сначала надо создать тип меню. Это можно сделать в Настройки → Настройки продукта → Настройки модулей → Управление структурой в параметре Типы меню.

Создание типа меню

Теперь можно создать файл .custom.menu.php, внутри которого будут указаны пункты меню.

Файл меню создаётся в той директории, в которой надо выводить меню. Если меню надо показывать на всех страницах, то файл создаётся в корневой директории сайта.

Например, посетитель находится в разделе /ru/company/about/. Для показа меню типа «custom», файл меню будет искаться в следующей последовательности:

  • /ru/company/about/.custom.menu.php
  • /ru/company/.custom.menu.php
  • /.custom.menu.php

Если в одном из каталогов будет найдено меню, то поиск останавливается и в последующих каталогах уже не ищется.

Вывод пунктов меню

Вывести меню можно через следующий код:

$APPLICATION->IncludeComponent("bitrix:menu",
    "horizontal_multilevel", // шаблон меню
    array(
        "ROOT_MENU_TYPE" => "custom",  // имя меню
        "MENU_CACHE_TYPE" => "A",      // Тип кэширования
        "MENU_CACHE_TIME" => "3600",   // Время кэширования (сек.)
        "CACHE_SELECTED_ITEMS" => "N", // не кэшировать меню для каждой страницы
    )
);

Стоит обратить внимание на параметр CACHE_SELECTED_ITEMS, который включает кэширование меню на каждой странице, из-за чего размер кэша может достигать больших размеров. Рекомендуется отключать данный параметр, как указано на примере выше. При этом подсветка активных пунктов меню останется.

Добавление пунктов меню

Добавляются пункты меню через следующий код:

# .custom.menu.php
$aMenuLinks = Array(
    Array(
        "Пункт меню 1",
        "link_1/",
        Array(), 
        Array(), 
        '' 
    ),
    Array(
        "Пункт меню 2",
        "link_2/",
        Array(), 
        Array(), 
        '' 
    ),
);

Также управлять пунктами меню можно через админ панель. Если нужное меню, как на картинке ниже, не показывается, надо убедиться, что само меню подключено на текущей странице.

Меню

После чего откроется модальное окно редактирования меню.