была задача создать древовидное меню, только чтобы выводились поддеревья выбранной категории, глубина макс 2
(для большей глубины надо будет чуть поправить)
здесь на форуме не нашел, хотя долго и не искал...
поправил в шаблоне чуть и все норм работает...
это лишь пример, попрошу строго не судить, изучаю эту CMS всего лишь несколько дней.
(для большей глубины надо будет чуть поправить)
здесь на форуме не нашел, хотя долго и не искал...
поправил в шаблоне чуть и все норм работает...
это лишь пример, попрошу строго не судить, изучаю эту CMS всего лишь несколько дней.
| Код |
|---|
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?if (!empty($arResult)):?>
<ul id="vertical-multilevel-menu">
<?
$previousLevel = 0;
///////////////////////////////////////////
$sl=false;//является ли родитель выбранным
foreach($arResult as $arItem):?>
<?if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel && $sl==true)://также не выводим лишних тэгов?>
<?=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"]):?>root-item-selected<?else:?>root-item<?endif?>"><?=$arItem["TEXT"]?></a>
<ul class="root-item">
<?if ($arItem["SELECTED"])$sl=true; else $sl=false;//если парент и глубина первая то значит идущие следом подменю будут выводится... иначе небудет... ?>
<?elseif($arItem["SELECTED"]):?>
<li><a href="<?=$arItem["LINK"]?>" class="parent<?if ($arItem["SELECTED"]):?> item-selected<?endif?>"><?=$arItem["TEXT"]?></a>
<ul>
<?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>
<?elseif($sl==true)://если разрешено и глубина не равна 1 то проверяем можно ли выводить?>
<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:?>root-item<?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?>
</ul>
<?endif?>
|