Блог
Двухуровневое меню в Битрикс
К моему удивлению в битриксе не оказалось встроенных инструментов для построения двухуровневого меню. Пришлось сочинять свое в шаблоне.
Не уверен, что я все сделал правильно, но, погуглив, никаких готовых решений не нашел, потому сделал свое.
По порядку для создания двухуровневого меню:
- Создать меню, пусть будет "Нижнее"(bottom), и заполнить его пунктами.
- В подразделах(в папках подразделов сайта) также заполнить подменю пунктами.
- В нужном месте макета вызываем компонент меню
IncludeComponent( "bitrix:menu", "bottom", // Имя шаблона Array( "COMPONENT_TEMPLATE" => ".default", "ROOT_MENU_TYPE" => "bottom", "MENU_CACHE_TYPE" => "N", "MENU_CACHE_TIME" => "3600", "MENU_CACHE_USE_GROUPS" => "Y", "MENU_CACHE_GET_VARS" => array(""), "MAX_LEVEL" => "2", // Уровень вложенности "CHILD_MENU_TYPE" => "bottom", // Имя дочернего меню "USE_EXT" => "Y", "DELAY" => "N", "ALLOW_MULTI_SELECT" => "N" ) );?>
- Чтобы в $arResult добавились подпункты нужно установить параметр MAX_LEVEL=2 для двух уровней и CHILD_MENU_TYPE="bottom"
- Далее нужно создать папку с шаблоном меню bottom. У меня эта папка получилась по адресу \bitrix\templates\main\components\bitrix\menu\bottom
- В папке создаем template.php и помещаем в него код файла template.php
Ну а дальше остается скорректировать шаблон под свои нужды.
UPD 9.09.15: Выяснил, что я изобрел велосипед. Шаблон для многоуровневого меню хранится в файле bitrix\components\bitrix\menu\templates\tree\template.php . Логика кода примерно соответствует моей, только встроенный шаблон более универсален и поддерживает более 2 уровней.