Нужно в компоненте bitrix:catalog.section.list в одном дереве вывести разделы с элементами. Сделал так
Но есть недостаток - когда передается ={$_REQUEST["SECTION_ID"]} в разделах, в которых нет вложенных разделов, элементы не выводятся.
Подскажите, пожалуйста, как сделать так, чтобы элементы выводились на любом уровне дерева, в том числе на последнем (когда в разделе есть только элементы)?
Код |
---|
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?> <div class="catalog-section-list"> <ul> <? $CURRENT_DEPTH=$arResult["SECTION"]["DEPTH_LEVEL"]+1; 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"]) echo "<ul>"; elseif($CURRENT_DEPTH>$arSection["DEPTH_LEVEL"]) echo str_repeat("</ul>", $CURRENT_DEPTH - $arSection["DEPTH_LEVEL"]); $CURRENT_DEPTH = $arSection["DEPTH_LEVEL"]; ?> <li id="<?=$this->GetEditAreaId($arSection['ID']);?>"><a href="<?=$arSection["SECTION_PAGE_URL"]?>"><strong><?=$arSection["NAME"]?> <?if($arParams["COUNT_ELEMENTS"]):?> (<?=$arSection["ELEMENT_CNT"]?>)<?endif;?></strong></a></li> <? echo "<ul>"; if(CModule::IncludeModule("iblock")) { $items = GetIBlockElementList(16, $arSection["ID"], Array("SORT"=>"date"), 100); while($arItem = $items->GetNext()) { echo '<li><a href="'.$arItem["DETAIL_PAGE_URL"].'">'.$arItem["NAME"].'</li>'; } } echo "</ul>"; ?> <?endforeach?> </ul> </div> |
Но есть недостаток - когда передается ={$_REQUEST["SECTION_ID"]} в разделах, в которых нет вложенных разделов, элементы не выводятся.
Подскажите, пожалуйста, как сделать так, чтобы элементы выводились на любом уровне дерева, в том числе на последнем (когда в разделе есть только элементы)?