Добрый день!
А иерархическая структура при переходе к конкретному разделу или элементу у Вас не закрывается?
Я столкнулась с такой проблемой.Использую тип меню tree. Отражается иерархическая структура разделов информационного блока, но, к сожалению при переходе в подраздел иерахическая структура возвращается в исходное состояние, а необходимо, чтобы ветки оставались открытыми, а не закрывались при переходе к конкретному элементу.
Для первого уровня сделали следующие изменения:
class="close"
на
<? if (!$arItem["SELECTED"]): echo 'class="close"'; endif; ?>
Получился следующий шаблон меню:
Код |
---|
<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?if (!empty($arResult)):?>
<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 <? if (!$arItem["SELECTED"]): echo 'class="close"'; endif; ?>>
<div class="folder" onClick="OpenMenuNode(this)"></div>
<div class="item-text"><a href="<?=$arItem["LINK"]?>"><?=$arItem["TEXT"]?></a></div>
<ul>
<?else:?>
<?if ($arItem["PERMISSION"] > "D"):?>
<li>
<div class="page"></div>
<div class="item-text"><a 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>
<?endif?> |
Проблема в том, что при переходе на второй и последующий уровни иерархия закрывается, т.е. необходимо в шаблоне получать дополнительно для каждого пункту меню, соответсвующего группе инфоблока, его родительские группы.
Предполагается, что необходимо использовать CIBlockSection::GetNavChain():.
Но как ее разместить в данном шаблоне, я к сожалению, никак не разберусь.
Подскажите, пожалуйста, кто сталкивался, как это реализовать. Может есть другие способы?
Заранее спасибо!