При работе с Битрикс часто приходится сталкиваться с задачей создания меню из разделов инфоблока. Для примера разберем создание древовидное меню.

Для того, чтобы создать меню из разделов инфоблока:

  1. В административном разделе сайта на странице Настройки > Настройки продукта > Настройки модулей > Управление структурой добавить новый тип меню.

  2. В разделе, где будет отображаться меню создать файл формата .тип_меню.menu_ext.php.

  3. Файл типа .тип_меню.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 инфоблока, из разделов которого будет состоять меню (инфоблок должен содержать разделы и подразделы) и тип_инфоблока заменены на ваши значения.

  4. В визуальном редакторе поместить на страницу index.php нужного раздела компонент меню.

    Выбрать шаблон компонента меню (на примере древовидное меню), выбрать тип меню для первого уровня «Другое» и указать тип созданного меню латиницей.

    Выбрать уровень вложенности меню больше 1, который соответствует уровню вложенности разделов вашего инфоблока. Далее выбрать тип меню для остальных уровней «Другое» и указать тип созданного меню латиницей.

    Отметить чекбокс «Подключать файлы с именами вида .тип_меню.menu_ext.php».

    Таким образом можно реализовать вывод на страницу древовидного меню из разделов инфоблока.