[Bitrix] Многоуровневое меню в Bitrix
Стандартный модуль вывода меню в Битриксе поддерживает максимальный уровень вложенности — 4. А что делать, если клиента такой уровень вложенности не устраивает. Из данной ситуации есть 2 выхода: Первое — доработать стандартный модуль вывода меню, да это можно сделать, но если групп и подгрупп очень много, будет выглядеть не как меню, а как «солянка» Второй метод — перед списком товара будут выводиться подгруппы они будут исполнять навигационное меню. данный метод мы сегодня с вами и разберем.
Для создания многоуровневого меню, нам необходимо отредактировать шаблон Каталога товаров под названием Элементы раздела (bitrix:catalog.section)
<?php
$OUT="";
// выводим разделы
$IBLOCK_ID = $arParams['IBLOCK_ID'];
$ID = $arParams["SECTION_ID"];
if(CModule::IncludeModule("iblock")){
// выборка только активных разделов из инфоблока $IBLOCK_ID, $ID - раздел-родителя
$arFilter = Array('IBLOCK_ID'=>$IBLOCK_ID, 'GLOBAL_ACTIVE'=>'Y', 'SECTION_ID'=>$ID);
$db_list = CIBlockSection::GetList(Array("NAME"=>"ASC"), $arFilter, true,$arSelect = array( "UF_*"));
while($ar_result = $db_list->GetNext())
{
$OUT.="<li><a href=\"/catalog/goods/$ar_result[ID]/\">$ar_result[NAME] ($ar_result[ELEMENT_CNT])</a></li>";
}
}
?>
В результате переменная $OUT будет содержать список разделов.
P.S. Скрины криво загрузились. Изображения широкие и кликабельные, можно посмотреть как будет выглядеть меню.
Постовой: Не успеваете посмотреть Дом 2 по телевизору? Смотрите его в интернете дом2 смотреть новые серии.




Авторегер Narod.ru
[FAQ] Как грамотно писать скрипты под Human Emulator.
Автоматическая аддурилка Yandex
Test Maker v 1.0 — бесплатная CMS для создания online тестов
Здравствуйте! Меня зовут Михаил.Раньше я называл себя Новороссийским бомжем, но решил немного отойти от этого. Теперь мой блог - это Блог PHP программиста. Я уже 3 года занимаюсь PHP программированием. С недавнего времени создаю и продвигаю web сайты. Среди собственных разработок — самописная CMS, работающая на файлах, CMS для создания online тестов и т.д.
Имхо, для этих целей компонент «меню» не подходит в принципе, а компонент «catalog.section» возвращает кучу лишнего, лучше строить меню с помощью компонента «список разделов каталога»(catalog.section.list), он поддерживает произвольный уровень вложенности.
Да, и небольшое замечание — ваше решение лучше вынести в файл result_modifier.php.
[Ответить]