Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Меню в виде дерева

00 голосов
7
На основании разделов инфоблока каталога надо сделать меню в виде дерева.

1. В корне создал файлик .left.menu_ext.php вот с таким содержимым:
Код
<?
if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
global $APPLICATION;
$aMenuLinksExt=$APPLICATION->IncludeComponent("bit­rix:menu.sections", "", Array(
   "ID"   =>   $_REQUEST["SECTION_ID"],
   "IBLOCK_TYPE"   =>   "catalog",
   "IBLOCK_ID"   =>   "5",
   "SECTION_URL"   =>   "/catalog/index.php?SECTION_ID=#ID#",
   "DEPTH_LEVEL"   =>   "4",
   "CACHE_TYPE"   =>   "A",
   "CACHE_TIME"   =>   "3600"
   )
);
$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);
?>


2. В шаблоне в нужное место вставил меню:

Код
<?$APPLICATION->IncludeComponent(
   "bitrix:menu",
   ".default",
   Array(
      "ROOT_MENU_TYPE" => "left",
      "MAX_LEVEL" => "3",
      "CHILD_MENU_TYPE" => "left",
      "USE_EXT" => "Y"
   )
);?>


При попытке зайти на страницу каталога выводится пустая страница. Может кто-нибудь подскажет в чем хитрость:)
спросил 22 Июнь, 13 от Aleksis (200 баллов)

7 Ответы

00 голосов
Пошаманил тут немного. Приведенный код вроде рабочий. Строит меню на основании пунктов инфоблока. Однако теперь загвоздка в том что данное меню не показывает подпункты, при нажатии на ссылки.
ответил 22 Июнь, 13 от Aleksis (200 баллов)
00 голосов
А это меня вроде бы изначально одноуровневое, чтобы выводить больше уровней нужно шаблон переписывать. Примеры есть. Если понадобятся, дам, пишите лично.
ответил 13 Июль, 13 от Tetis (500 баллов)
00 голосов
А в комплекте еще есть меню tree. Да оно совсем не tree. Много я тут всякой всячины с форума перепробовал. Чего то не пашет. :evil:
ответил 16 Окт, 13 от Aleksis (200 баллов)
00 голосов
Андрей,

А нажимать на иконку папочки в данном меню не пробовали?
Локально все работает отлично.

Цитата
<?$APPLICATION->IncludeComponent(
"bitrix:menu",
".default",
Array(
"ROOT_MENU_TYPE" => "left",
"MAX_LEVEL" => "3",
"CHILD_MENU_TYPE" => "left",
"USE_EXT" => "Y"
)
);?>

Да и настройки бы сменить стоит, а то у Вас получается корневое меню Лефт, и потомки тоже Лефт

Цитата
<?$APPLICATION->IncludeComponent(
"bitrix:menu",
".default",
Array(
"ROOT_MENU_TYPE" => "top",
"MAX_LEVEL" => "3",
"CHILD_MENU_TYPE" => "left",
"USE_EXT" => "Y"
)
);?>

Более правильно.
ответил 18 Янв, 14 от druid (580 баллов)
00 голосов
Кстати ваш пример на демонстрационном сайте подействовал. Если у меню стоит root и child стоит left, то папочка не открывается, а если поменять на top и left то все работает. Спасибо за подсказочку. ;)
ответил 07 Май, 14 от Aleksis (200 баллов)
00 голосов
Немного не так работает все таки меню tree
ответил 02 Сен, 14 от Aleksis (200 баллов)
00 голосов
выслал Вам на указанную почту шаблон измененный, возможно он Вам подойдет.Пробуйте.
ответил 08 Янв, 15 от Tetis (500 баллов)

Похожие вопросы

0 голосов
2 ответов
спросил 13 Янв, 13 от Gloriy (120 баллов)
0 голосов
1 ответ
спросил 10 Май, 14 от Feluna (120 баллов)
0 голосов
1 ответ
спросил 01 Апр, 14 от LoLiTKa (620 баллов)
0 голосов
3 ответов
спросил 19 Фев, 14 от Klyaks (180 баллов)