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

И снова про меню...

00 голосов
9
Имеется меню, которое выводится таким образом:
Код
<?
   $APPLICATION->IncludeComponent("bitrix:menu", "left_menu", array(
   "ROOT_MENU_TYPE" => "top",
   "MENU_CACHE_TYPE" => "N",
   "MENU_CACHE_TIME" => "3600",
   "MENU_CACHE_USE_GROUPS" => "Y",
   "MENU_CACHE_GET_VARS" => array(
   ),
   "MAX_LEVEL" => "2",
   "CHILD_MENU_TYPE" => "left",
   "USE_EXT" => "Y",
   "ALLOW_MULTI_SELECT" => "N"
   ),
   false
);?>

В некоторых разделах сайта есть подменю, типа left. Хочется, что бы 2й уровень меню появлялся толкьо тогда, когда мы находимся в нужном разделе, а сейчас 2й уровень выводится даже когда мы находимся на главной странице..
спросил 21 Март, 13 от Snezhka (2,240 баллов)

9 Ответы

00 голосов
MAX_LEVEL=1. Но в этом случае исчезнет основное меню при заходе в раздел, где есть свое. Если это не устраивает - либо через шаблон, либо через .left.menu_ext.php
ответил 21 Март, 13 от Pomnep (13,960 баллов)
00 голосов
Понял, а подскажите, как должен выглядеть тогда .left.menu_ext.php? В мануале описан только метод, когда через него выводится инфоблок...
ответил 21 Март, 13 от Snezhka (2,240 баллов)
00 голосов
он генерируем массив определенной структуры и сливает с основным, а в Вашем случае лучше доработать шаблон меню.
ответил 05 Июнь, 13 от H9kA (480 баллов)
00 голосов
в смыле шаблон меню доработать? что бы подменюшки только в зависимости от раздела показывались?
ответил 06 Сен, 13 от Snezhka (2,240 баллов)
00 голосов
да, вывести только у нужного-активного
ответил 05 Дек, 13 от H9kA (480 баллов)
00 голосов
Понятно, а теперь вопрос на засыпку, каким образом это сделать? логика я так понимаю такая:
у каждой подменюшки должен быть параметр - подкатегория, потом в меню смотрим запрос пользователя и если категории совпадают, то открываем подменю?
ответил 18 Март, 14 от Snezhka (2,240 баллов)
00 голосов
Нет. Получаете текущую директорию, при выводе меню сравниваете с ней пункты меню. Если DEPTH_LEVEL = 1 или папка совпадает с Вашей - выводите.
ответил 10 Июль, 14 от Pomnep (13,960 баллов)
00 голосов
Понятно, спасибо, попробую :)
ответил 09 Ноя, 14 от Snezhka (2,240 баллов)
00 голосов
Не факт, что будет работать при включенном кешировании. Если не будет - придется кастомизировать компонент.
ответил 08 Март, 15 от Pomnep (13,960 баллов)

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

0 голосов
3 ответов
спросил 25 Март, 14 от Botinok (220 баллов)
0 голосов
2 ответов
спросил 24 Авг, 13 от crowdcont (120 баллов)
0 голосов
1 ответ
спросил 09 Март, 13 от Tirkan (400 баллов)
0 голосов
9 ответов
спросил 30 Апр, 13 от VannY (200 баллов)