Добрый день, уважаемые коллеги. Я относительно недавно учусь работать c Bitrix, и столкнулся с весьма неприятной проблемой. Мне было необходимо настроить вывод подразделов модуля catalog, я сделал шаблон, который генерировал ячейки с описание подраздела, картинками, даже прикрутил к этому плагин, позволяющий развернуть и свернуть описание, сделал вывод в три колонки (стилями), и жизнь моя была прекрасна. Но в один менее прекрасный момент я заметил, что, когда я выбираю в главном меню любой раздел, выводятся не только его разделы, но и весь-весь остальной каталог, на этой же странице. Тогда я вернулся к стандартному шаблону:
Проблема сохранилась, но стала выглядеть, как список, что логично. Как вы можете заметить, глубина элементов, отображаемых в списке, контролируется переменной $CURRENT_DEPTH=$arResult["SECTION"]["DEPTH_LEVEL"], которая в моем случае везде равняется нулю. Чтобы понять, почему это происходит, я так же добавил строчку с print_r $arResult "SECTION", которая вывела закономерное :
П.С. Почему-то скобочки кода в предпросмотре ужимают текст до одной строчки, как ни колдуй над этим. Надеюсь, это будет все же читаемо.
П.П.С. Шаблон взять за основу стандартный мебельный, кроме этого изменения особых изменений не было.
Код |
---|
<div class="catalog-section-list"> <ul> <?echo '<pre>'.print_r($arResult["SECTION"]).'</pre>'; $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"]?>"> <?=$arSection["NAME"]?> <?if($arParams["COUNT_ELEMENTS"]):?> (<?=$arSection["ELEMENT_CNT"]?>) <?endif;?> </a></li> <?endforeach?> </ul> <?=($strTitle?'<br/><h2>'.$strTitle.'</h2>':'')?> |
Код |
---|
Array ( [ID] => 0 [DEPTH_LEVEL] => 0 ) /n 1 |
П.С. Почему-то скобочки кода в предпросмотре ужимают текст до одной строчки, как ни колдуй над этим. Надеюсь, это будет все же читаемо.
П.П.С. Шаблон взять за основу стандартный мебельный, кроме этого изменения особых изменений не было.