зарефакторил скрипт в шаблоне левого меню

parent 9553b57b
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?if (!empty($arResult)):?> <?if (!empty($arResult)):?>
<ul id="side_menu_multilevel"> <ul id="side_menu_multilevel">
<? <?
$previousLevel = 0; $previousLevel = 0;
foreach($arResult as $arItem):?> foreach($arResult as $arItem):?>
<?if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?> <?if ($previousLevel && $arItem["DEPTH_LEVEL"] < $previousLevel):?>
<?=str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?> <?=str_repeat("</ul></li>", ($previousLevel - $arItem["DEPTH_LEVEL"]));?>
<?endif?> <?endif?>
<?if ($arItem["IS_PARENT"]):?> <?if ($arItem["IS_PARENT"]):?>
<?if ($arItem["DEPTH_LEVEL"] == 1):?> <?if ($arItem["DEPTH_LEVEL"] == 1):?>
<li class="parent <?if ($arItem["SELECTED"]):?>root-item-selected opened<?else:?>root-item<?endif?>"> <li class="parent <?if ($arItem["SELECTED"]):?>root-item-selected opened<?else:?>root-item<?endif?>">
<a rel="nofollow" href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?><span class="roll-out"> </span></a> <a rel="nofollow" href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?><span class="roll-out"> </span></a>
<ul class="root-item"> <ul class="root-item">
<?else:?> <?else:?>
<li class="parent<?if ($arItem["SELECTED"]):?> item-selected<?endif?>"><a rel="nofollow" href="<?=$arItem["LINK"]?>" ><?=$arItem["TEXT"]?></a> <li class="parent<?if ($arItem["SELECTED"]):?> item-selected<?endif?>"><a rel="nofollow" href="<?=$arItem["LINK"]?>" ><?=$arItem["TEXT"]?></a>
<ul> <ul>
<?endif?> <?endif?>
<?else:?> <?else:?>
<?if ($arItem["PERMISSION"] > "D"):?> <?if ($arItem["PERMISSION"] > "D"):?>
<?if ($arItem["DEPTH_LEVEL"] == 1):?> <?if ($arItem["DEPTH_LEVEL"] == 1):?>
<li class="<?if ($arItem["SELECTED"]):?>root-item-selected opened<?else:?>root-item<?endif?>"><a rel="nofollow" href="<?=$arItem["LINK"]?>" ><?=$arItem["TEXT"]?></a></li> <li class="<?if ($arItem["SELECTED"]):?>root-item-selected opened<?else:?>root-item<?endif?>"><a rel="nofollow" href="<?=$arItem["LINK"]?>" ><?=$arItem["TEXT"]?></a></li>
<?else:?> <?else:?>
<li <?if ($arItem["SELECTED"]):?> class="item-selected"<?endif?>><a rel="nofollow" href="<?=$arItem["LINK"]?>" ><?=$arItem["TEXT"]?></a></li> <li <?if ($arItem["SELECTED"]):?> class="item-selected"<?endif?>><a rel="nofollow" href="<?=$arItem["LINK"]?>" ><?=$arItem["TEXT"]?></a></li>
<?endif?> <?endif?>
<?else:?> <?else:?>
<?if ($arItem["DEPTH_LEVEL"] == 1):?> <?if ($arItem["DEPTH_LEVEL"] == 1):?>
<li class="<?if ($arItem["SELECTED"]):?>root-item-selected opened<?else:?>root-item<?endif?>"><a rel="nofollow" href="" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li> <li class="<?if ($arItem["SELECTED"]):?>root-item-selected opened<?else:?>root-item<?endif?>"><a rel="nofollow" href="" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li>
<?else:?> <?else:?>
<li><a rel="nofollow" href="" class="denied" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li> <li><a rel="nofollow" href="" class="denied" title="<?=GetMessage("MENU_ITEM_ACCESS_DENIED")?>"><?=$arItem["TEXT"]?></a></li>
<?endif?> <?endif?>
<?endif?> <?endif?>
<?endif?> <?endif?>
<?$previousLevel = $arItem["DEPTH_LEVEL"];?> <?$previousLevel = $arItem["DEPTH_LEVEL"];?>
<?endforeach?> <?endforeach?>
<?if ($previousLevel > 1)://close last item tags?> <?if ($previousLevel > 1)://close last item tags?>
<?=str_repeat("</ul></li>", ($previousLevel-1) );?> <?=str_repeat("</ul></li>", ($previousLevel-1) );?>
<?endif?> <?endif?>
</ul> </ul>
<?endif?> <?endif?>
<script> <script>
$(document).ready(function() { $(document).ready(function() {
if ($("#side_menu_multilevel li").is(".item-selected")) {$("#side_menu_multilevel li.root-item-selected").addClass("hide_selection")} const $menu = $("#side_menu_multilevel");
//$("#side_menu_multilevel li.item-selected").parent('#side_menu_multilevel').find("li.root-item-selected").addClass("hide_selection"); if ($("li", $menu).is(".item-selected")) {$("li.root-item-selected", $menu).addClass("hide_selection")}
//console.log("!!!!!!!!!!111234!!!!!!!!!!!!!"+$("#side_menu_multilevel li.item-selected").parent('#side_menu_multilevel'));
const clickHandler = function(){
$('#side_menu_multilevel li.root-item a span.roll-out').click( const $a = $(this).parent('a');
function(){ if($a.next('ul').is('.root-item'))
if($(this).parent('a').next('ul').is('.root-item')) {
{ $a.parent().toggleClass("opened");
$(this).parent('a').parent().toggleClass("opened"); $a.next("ul.root-item").toggle(150);
$(this).parent('a').next("ul.root-item").toggle(150); return false;
return false; }
} };
}
); $('li.root-item a span.roll-out', $menu).click( clickHandler );
$('#side_menu_multilevel li.root-item-selected a span.roll-out').click( $('li.root-item-selected a span.roll-out', $menu).click( clickHandler );
function(){ });
if($(this).parent('a').next('ul').is('.root-item'))
{
$(this).parent('a').parent().toggleClass("opened");
$(this).parent('a').next("ul.root-item").toggle(150);
return false;
}
}
);
});
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment