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

Меню bitrix - изменение способа раскрытия

00 голосов
5
Здравствуйте, есть вопрос по меню. Имеется вот такое меню.

Рисунок

При нажатии на "Автопаркам", открывается новая страница /avtoparkam/ и раскрывается меню.

Рисунок

Подскажите, как сделать так, чтобы из любого раздела на сайте, при нажатии "Автопаркам", меню только раскрывалось, не отображая страницу?

Меню сделано стандартными средствами. Для подменю есть условия, что они отображаются только для папки /avtoparkam/.
спросил 25 Окт, 13 от Tripy (120 баллов)

5 Ответы

00 голосов
Друзья, хотел уточнить. На другом моем сайте, данная функция реализована с помощью параметра "VIRTUAL=Y", указанного в расширенных параметрах меню, принт прилагаю:

Рисунок

Но, здесь это почему-то не работает.
ответил 23 Ноя, 13 от Tripy (120 баллов)
00 голосов
Шаблон меню который раскрывается если у пункта есть подпункты. При этом он остается раскрытым если выбраны подпункты.
Получается модификацией системного шаблона "treе"

Код
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

<?if (!empty($arResult)):?>
<div class="block_header">Каталог товаров</div>
<div class="left_menu">
<?
$lastLevel = 0;
$selected = false;

foreach(array_reverse($arResult) as $arItem){
    if ($arItem["SELECTED"]>0) {
        $lastLevel = $arItem["DEPTH_LEVEL"];
        $selected = true;
    }
    if ($selected and $arItem["DEPTH_LEVEL"] < $lastLevel){
        $arResult[ $arItem["ITEM_INDEX"] ]["SELECTED"] = true;
        $lastLevel--;
    }
}
?>

<div class="menu-sitemap-tree">
<ul>
<?$previousLevel = 0;foreach($arResult as $arItem):?>
 
   <?if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?>
      <?=str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?>
   <?endif?>

   <?if ($arItem["IS_PARENT"]):?>
         <li style="padding-top:5px;" <?if (!$arItem["SELECTED"]):?>class="close"<?endif?>>
            <a class="folder" href="#" onClick="OpenMenuNode(this); return false;"><?=$arItem["TEXT"]?></a>            
            <ul>

   <?else:?>

      <?if ($arItem["PERMISSION"] > "D"):?>
            <li>

               <div class="item-text"  style="<?if ($arItem["SELECTED"]):?>font-weight:bold;<?endif?>"><a style="<?=$arItem["PARAMS"]["select"]?>" href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></div>
            </li>
      <?endif?>

   <?endif?>

   <?$previousLevel = $arItem["DEPTH_LEVEL"];?>

<?endforeach?>

<?if ($previousLevel > 1)://close last item tags?>
   <?=str_repeat("</ul></li>", ($previousLevel-1) );?>
<?endif?>

</ul>
</div>
</div>
<?endif?>
ответил 04 Март, 14 от Oggi (520 баллов)
00 голосов
Хм, спасибо!
ответил 24 Июнь, 14 от Tripy (120 баллов)
00 голосов
Клевая вещь, спасибо огромное
ответил 24 Окт, 14 от PhoenX (290 баллов)
00 голосов
Помогите с кодом, пожалуйста, если пункты меню - это разделы, а подпункты - элементы
ответил 22 Фев, 15 от Dayredo (180 баллов)

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

0 голосов
6 ответов
спросил 27 Сен, 13 от Rier (340 баллов)
0 голосов
2 ответов
спросил 23 Апр, 14 от Ukurka (120 баллов)
0 голосов
3 ответов
спросил 27 Март, 14 от kakashka1 (340 баллов)
0 голосов
0 ответов
0 голосов
4 ответов
спросил 18 Ноя, 13 от BAPKAH (100 баллов)