меню Битрикс
23.01.2012

[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 смотреть новые серии.

Понравилась статья?

Подписка на обновления блога через RSS ленту или по электронной почте, а так же следуй за мной .

RotaPost - Эффективная реклама в блогах

Ваш комментарий

  1. Имхо, для этих целей компонент «меню» не подходит в принципе, а компонент «catalog.section» возвращает кучу лишнего, лучше строить меню с помощью компонента «список разделов каталога»(catalog.section.list), он поддерживает произвольный уровень вложенности.

    Да, и небольшое замечание — ваше решение лучше вынести в файл result_modifier.php.

    [Ответить]

О блоге

Здравствуйте! Меня зовут Михаил.Раньше я называл себя Новороссийским бомжем, но решил немного отойти от этого. Теперь мой блог - это Блог PHP программиста. Я уже 3 года занимаюсь PHP программированием. С недавнего времени создаю и продвигаю web сайты. Среди собственных разработок — самописная CMS, работающая на файлах, CMS для создания online тестов и т.д.

Подробнее о блоге

Связаться со мной