Добрый день!
Подскажите, пожалуйста, как мне сворачивать и разворачивать меню когда заходишь к какой-то внутренний раздел (то есть отображать внутренние <ul>) с помощью компонента catalog.section.list, а остальные разделы, чтобы оставались свернутыми?
Вызываю сам компонент
А в шаблоне сравниваю текущий раздел с выбранным и соотсветственно отображаю ul,но показывается только второй уровень вложености, а 3 - ну никак
Должно быть такhttp://joxi.ru/krDDZDZS0M6VEr , а получается http://joxi.ru/a2XQdQdty0djWA - то есть 3 уровень не показывается
Подскажите, пожалуйста, как мне сворачивать и разворачивать меню когда заходишь к какой-то внутренний раздел (то есть отображать внутренние <ul>) с помощью компонента catalog.section.list, а остальные разделы, чтобы оставались свернутыми?
Вызываю сам компонент
Код |
---|
<?$APPLICATION->IncludeComponent("bitrix:catalog.section.list", "catalog_menu", Array( "ADD_SECTIONS_CHAIN" => "N", // Включать раздел в цепочку навигации "CACHE_GROUPS" => "Y", // Учитывать права доступа "CACHE_TIME" => "36000000", // Время кеширования (сек.) "CACHE_TYPE" => "A", // Тип кеширования "COMPONENT_TEMPLATE" => "tree", "COUNT_ELEMENTS" => "N", // Показывать количество элементов в разделе "IBLOCK_ID" => "2", // Инфоблок "IBLOCK_TYPE" => "catalog", // Тип инфоблока "SECTION_CODE" => "", // Код раздела "SECTION_FIELDS" => array( // Поля разделов 0 => "", 1 => "", ), "SECTION_ID" => $_REQUEST["SECTION_ID"], // ID раздела "SECTION_URL" => "", // URL, ведущий на страницу с содержимым раздела "SECTION_USER_FIELDS" => array( // Свойства разделов 0 => "", 1 => "", ), "SHOW_PARENT_NAME" => "Y", "TOP_DEPTH" => "3", // Максимальная отображаемая глубина разделов "VIEW_MODE" => "LINE" ), false );?> |
А в шаблоне сравниваю текущий раздел с выбранным и соотсветственно отображаю ul,но показывается только второй уровень вложености, а 3 - ну никак
Код |
---|
<div class="catalog-section-list"> $TOP_DEPTH = $arResult["SECTION"]["DEPTH_LEVEL"]; $CURRENT_DEPTH = $TOP_DEPTH; var_dump($arResult["SECTIONS"]); foreach($arResult["SECTIONS"] as $arSection) { $this->AddEditAction($arSection['ID'], $arSection['EDIT_LINK'], CIBlock::GetArrayByID($arSection["IBLOCK_ID"], "SECTION_EDIT")); $this->AddDeleteAction($arSection['ID'], $arSection['DELETE_LINK'], CIBlock::GetArrayByID($arSection["IBLOCK_ID"], "SECTION_DELETE"), array("CONFIRM" => GetMessage('CT_BCSL_ELEMENT_DELETE_CONFIRM'))); if($CURRENT_DEPTH < $arSection["DEPTH_LEVEL"]) { if ($_REQUEST["SECTION_ID"] == $arSection["ID"]) { echo "\n",str_repeat("\t", $arSection["DEPTH_LEVEL"]-$TOP_DEPTH),"<ul style='display: block;'>"; } else { echo "\n",str_repeat("\t", $arSection["DEPTH_LEVEL"]-$TOP_DEPTH),"<ul>"; } } elseif($CURRENT_DEPTH == $arSection["DEPTH_LEVEL"]) { echo "</li>"; } else { while($CURRENT_DEPTH > $arSection["DEPTH_LEVEL"]) { echo "</li>"; echo "\n",str_repeat("\t", $CURRENT_DEPTH-$TOP_DEPTH),"</ul>","\n",str_repeat("\t", $CURRENT_DEPTH-$TOP_DEPTH-1); $CURRENT_DEPTH--; } echo "\n",str_repeat("\t", $CURRENT_DEPTH-$TOP_DEPTH),"</li>"; } $count = $arParams["COUNT_ELEMENTS"] && $arSection["ELEMENT_CNT"] ? " (".$arSection["ELEMENT_CNT"].")" : ""; if ($_REQUEST['SECTION_ID']==$arSection['ID']) { $link = '<b>'.$arSection["NAME"].$count.'</b>'; $strTitle = $arSection["NAME"]; } else { $link = '<a href="'.$arSection["SECTION_PAGE_URL"].'">'.$arSection["NAME"].$count.'</a>'; } echo "\n",str_repeat("\t", $arSection["DEPTH_LEVEL"]-$TOP_DEPTH); ?><li id="<?=$this->GetEditAreaId($arSection['ID']);?>"><?=$link?><? $CURRENT_DEPTH = $arSection["DEPTH_LEVEL"]; } while($CURRENT_DEPTH > $TOP_DEPTH) { echo "</li>"; echo "\n",str_repeat("\t", $CURRENT_DEPTH-$TOP_DEPTH),"</ul>","\n",str_repeat("\t", $CURRENT_DEPTH-$TOP_DEPTH-1); $CURRENT_DEPTH--; } ?> </div> <?=($strTitle?'<br/><h2>'.$strTitle.'</h2>':'')?> |
Должно быть так