Bitrix menu multilevel nic
Материал из GutenWeb Wiki
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?if (!empty($arResult)):?><div class="menu-sitemap-tree">
<?foreach($arResult as $i => $arItem):
if ($arItem["IS_PARENT"]): //non deepest?
$Testing = $i; //next parent testing...
if ($arItem["SELECTED"] == "1"): //non deepest selected found
$arSelected[$Testing] = TRUE;
endif;
else: //deepest
if ($arItem["PERMISSION"] > "D"):
if ($arItem["SELECTED"] == "1"): //deepest selected found
$arSelected[$Testing] = TRUE;
endif;
endif;
endif;
endforeach;?>
<?//print_r($arSelected);?>
<ul>
<?$previousLevel = 0;
foreach($arResult as $i => $arItem):?>
<?if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?>
<?=str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?>
<?endif?>
<?if ($arItem["IS_PARENT"]): //non deepest? ?>
<li class="<?if (!$arSelected[$i]):?>closeSubmenu<?endif?>">
<div class="<?if ($arItem["SELECTED"]):?>item-text-selected<?else:?>item-text<?endif?>">
<a href="<?=$arItem["LINK"]?>" title="<?=$arItem["TEXT"]?>"><?=$arItem["TEXT"]?></a>
</div>
<ul>
<?else: //deepest ?>
<?if ($arItem["PERMISSION"] > "D"):?>
<li>
<div class="<?if ($arItem["SELECTED"]):?>item-text-selected-deepest
<?else:?>item-text-deepest<?endif?>">
<a href="<?=$arItem["LINK"]?>" title="<?=$arItem["TEXT"]?>"><?=$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>
<?endif?>
<pre><?php print_r($arSelected) ?>
</pre>
</pre>