Как вручную добавить подпункт в меню Битрикс
В этой статье (заметке) речь пойдет о ручном добавлении подпунктов в меню Битрикс и позволит открыть глаза на формирование массива $aMenuLinks для тех, кто еще испытывает в этом трудности.
Основные настройки
Допустим у нас есть раздел с названием "Услуги", в этом разделе мы хотим создать два подраздела и сделать соответственно два подпункта. Для этого необходимо создать файл .тип_меню.menu.php, в нашем случае это будет файл .left.menu.php, в данном файле за формирование меню отвечает массив $aMenuLinks, вот массив для нашего примера:
$aMenuLinks = array(
Array(
"Создание сайтов",
"/services/create-sites/",
Array(),
Array(),
""
),
Array(
"Виды услуг",
"/services/optimization/",
Array(),
Array(),
""
)
)
Добавление типов меню в административной интерфейсе и прочие стандартные моменты дублировать не имеет смысла, так как об этом подробно рассказывается в учебном курсе Битрикса.
И вот встает задача добавить в раздел "Создание сайтов" раздел "Создание Landing Page" и соответственно вывести этот подпункт у раздела родителя.
Структура массива $aMenuLinks с подпунктами
Подпункты в массиве должны идти строго по порядку после родительского пункта меню
$aMenuLinks = array(
// Родительский пункт меню
Array(
"Создание сайтов",
"/services/create-sites/",
Array("/services/create-sites/"),
Array(
"FROM_IBLOCK" => 1,
// Пункт является родительским
"IS_PARENT" => 1,
// Уровень вложенности 1
"DEPTH_LEVEL" => 1
),
""
),
// Дочерний подпункт
Array(
"Создание Landing Page",
"/services/create-sites/landing-page/",
Array("/services/create-sites/landing-page/"),
Array(
"FROM_IBLOCK" => 1,
// Пункт не является родительским
"IS_PARENT" => 0,
// Уровень вложенности 2
"DEPTH_LEVEL" => 2
),
""
),
Array(
"Виды услуг",
"/services/optimization/",
Array(),
Array(),
""
)
)
Таким образом, передавая дополнительные параметры мы можем создавать неограниченное количество подпунктов и организовать любую структуру меню, не обязательно даже копирующую реальные директории на сервере.
Не забывайте выставить параметр уровня вложенности в настройках компонента.