Полезные статьи по разработке сайта на системе управления 1С-Битрикс. Программирование. Верстка.

Меню из элементов инфоблока в системе управления 1С-Битрикс

Меню из элементов инфоблока в системе управления 1С-Битрикс

  97
Часто на сайте требуется реализовать меню, состоящее из элементов инфоблока. Для этого необходимо, в директории, в которой лежит меню, создать php файл с таким же названием и суффиксом _ext.php, например, .catalog.menu_ext.php. В коде созданного файла .catalog.menu_ext.php необходимо разместить следующий код:

 <?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
 
global $APPLICATION;
 
if(CModule::IncludeModule("iblock")) {
 
    $IBLOCK_ID = 6; // указываем инфоблок с элементами
 
    $arOrder = Array("SORT"=>"ASC");
    $arSelect = Array("ID", "NAME", "IBLOCK_ID", "DETAIL_PAGE_URL");
    $arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE"=>"Y");
    $res = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
 
    while($ob = $res->GetNextElement()) // наполняем массив меню пунктами меню
    {
        $arFields = $ob->GetFields();
        $aMenuLinksExt[] = Array(
            $arFields['NAME'],
            $arFields['DETAIL_PAGE_URL'],
            Array(),
            Array(),
            ""
        );
    }   
}
 
$aMenuLinks = array_merge($aMenuLinksExt, $aMenuLinks); // меню сформировано
?>
Также проверьте включена ли в компоненте нужного меню опция: «Подключать файлы с именами вида .тип_меню.menu_ext.php». Если опция отмечена, то при вызове меню из шаблона в каждом разделе будет происходить проверка на наличие в данном разделе файла с именем .тип_меню.menu_ext.php. В противном случае, массив ссылок не будет сформирован.