Как вручную добавить подпункт в меню Битрикс
В этой статье (заметке) речь пойдет о ручном добавлении подпунктов в меню Битрикс и позволит открыть глаза на формирование массива $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(), "" ) )
Таким образом, передавая дополнительные параметры мы можем создавать неограниченное количество подпунктов и организовать любую структуру меню, не обязательно даже копирующую реальные директории на сервере.
Не забывайте выставить параметр уровня вложенности в настройках компонента.