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

Как ограничить уровень вложенности меню каталога

00 голосов
0
Здравствуйте.
Имеется каталог где уровень вложенности разделов до 8.
Вывожу так:

Код
// Файл .catalog.menu_ext.php

if (!function_exists("GetTreeRecursive")) 
{
$aMenuLinksExt=$APPLICATION->IncludeComponent("bitrix:store.menu.sections", "", array(
   "IBLOCK_TYPE_ID" => "xmlcatalog",
   "CACHE_TYPE" => "A",
   "CACHE_TIME" => "36000000",
   "MAX_LEVEL" => "3"
   ),
   false,
   Array('HIDE_ICONS' => 'Y')
);
$aMenuLinks = array_merge($aMenuLinks, $aMenuLinksExt);
}

 
Можно как-то ограничить вывод уровня вложенности каталога до 3 ? Пробывал добавлять  "MAX_LEVEL" но результата нет.
В шаблоне сайта:

Код
<?$APPLICATION->IncludeComponent("bitrix:menu", "catalog_multi", array(
   "ROOT_MENU_TYPE" => "catalog",
   "MENU_CACHE_TYPE" => "N",
   "MENU_CACHE_TIME" => "3600",
   "MENU_CACHE_USE_GROUPS" => "Y",
   "MENU_CACHE_GET_VARS" => array(
   ),
   "MAX_LEVEL" => "3",
   "CHILD_MENU_TYPE" => "",
   "USE_EXT" => "Y",
   "DELAY" => "N",
   "ALLOW_MULTI_SELECT" => "N"
   ),
   false
);?>
 

Шаблон меню:

Код
<ul class="menu1">

<?if (!empty($arResult)):?>


<?
$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"]):?>

      <?if ($arItem["DEPTH_LEVEL"] == 1):?>
         <li><a href="<?=$arItem["LINK"]?>" class="<?if ($arItem["SELECTED"]):?>xxx-selected<?else:?>xxx<?endif?>"><?=$arItem["TEXT"]?></a>
            <ul class="fly2">
      <?else:?>
         <li><a href="<?=$arItem["LINK"]?>" class="parent<?if ($arItem["SELECTED"]):?> item-selected<?endif?>"><?=$arItem["TEXT"]?></a>
            <ul class="fly3">
      <?endif?>

   <?else:?>

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

         <?if ($arItem["DEPTH_LEVEL"] == 1):?>
            <li><a href="<?=$arItem["LINK"]?>" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>root-item<?endif?>"><?=$arItem["TEXT"]?></a></li>
         <?else:?>
            <li><a href="<?=$arItem["LINK"]?>" <?if ($arItem["SELECTED"]):?> class="item-selected"<?endif?>><?=$arItem["TEXT"]?></a></li>
         <?endif?>

      <?else:?>

         <?if ($arItem["DEPTH_LEVEL"] == 1):?>
            <li><a href="" class="<?if ($arItem["SELECTED"]):?>root-item-selected<?else:?>fly2<?endif?>" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li>
         <?else:?>
            <li><a href="" class="denied" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li>
         <?endif?>

      <?endif?>

   <?endif?>

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


<?endforeach?>

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


<?endif?>

</ul>
 
спросил 12 Фев, 14 от Cawka (200 баллов)

Ваш ответ

Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

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

0 голосов
5 ответов
0 голосов
3 ответов
спросил 12 Ноя, 13 от Snezhka (2,240 баллов)
0 голосов
6 ответов
0 голосов
2 ответов
спросил 30 Апр, 14 от DARK (220 баллов)
0 голосов
4 ответов
спросил 26 Март, 14 от Merkof (160 баллов)