При работе с Битрикс часто приходится сталкиваться с задачей создания меню из разделов инфоблока. Для примера разберем создание древовидное меню.
Для того, чтобы создать меню из разделов инфоблока:
-
В административном разделе сайта на странице Настройки > Настройки продукта > Настройки модулей > Управление структурой добавить новый тип меню.
-
В разделе, где будет отображаться меню создать файл формата .тип_меню.menu_ext.php.
-
Файл типа .тип_меню.menu_ext.php содержит следующий код:
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
$aMenuLinksExt = $APPLICATION->IncludeComponent(
"bitrix:menu.sections",
"tree",
Array(
"CACHE_TIME" => "36000000",
"CACHE_TYPE" => "A",
"COMPOSITE_FRAME_MODE" => "A",
"COMPOSITE_FRAME_TYPE" => "AUTO",
"DETAIL_PAGE_URL" => "#SECTION_CODE#/#ELEMENT_CODE#",
"DEPTH_LEVEL" => "3",
"IBLOCK_ID" => "ID_инфоблока",
"IBLOCK_TYPE" => "тип_инфоблока",
"ID" => $_REQUEST["ID"],
"IS_SEF" => "N",
"SECTION_URL" => "",
"SECTION_PAGE_URL" => "#SECTION_CODE#/"
)
);
$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);
Где ID_инфоблока – ID инфоблока, из разделов которого будет состоять меню (инфоблок должен содержать разделы и подразделы) и тип_инфоблока заменены на ваши значения.
-
В визуальном редакторе поместить на страницу index.php нужного раздела компонент меню.
Выбрать шаблон компонента меню (на примере древовидное меню), выбрать тип меню для первого уровня «Другое» и указать тип созданного меню латиницей.
Выбрать уровень вложенности меню больше 1, который соответствует уровню вложенности разделов вашего инфоблока. Далее выбрать тип меню для остальных уровней «Другое» и указать тип созданного меню латиницей.
Отметить чекбокс «Подключать файлы с именами вида .тип_меню.menu_ext.php».
Таким образом можно реализовать вывод на страницу древовидного меню из разделов инфоблока.