Шаблон компонента bitrix:catalog.section.list

Исторический материал из архива сайта. Указанные услуги и контакты относятся ко времени публикации и не являются действующим предложением.

Создание сайтов

Создание сайтов - отличный способ поддержать бренд уже известной компании, а также заявить о себе на стадии Start-Up. Доверьте создание сайта профессионалам и Ваш сайт станет источником увеличения прибыли компании.
Подробнее

Продвижение сайтов

Интернет-агентство ТОП10 предлагает воспользоваться услугами оптимизации сайтов, а именно продвижением сайтов в поисковых системах и контекстной рекламой, так как благодаря этому Ваш сайт найдут.
Подробнее

Тех. поддержка

Информация о вашей деятельности всегда должна быть актуальной. Именно поэтому обновление контента на сайте необходимо осуществлять своевременно, вслед за изменениями, в вашей организации.
Подробнее

Шаблон компонента bitrix:catalog.section.list

Шаблон компонента bitrix:catalog.section.list

0
07.04.201315:197 Апреля 2013 15:19
Бывает так, что с помощью компонента bitrix:catalog.section.list необходимо вывести дерево разделов для меню. Например для меню продукции или навигации по разделам.
Проблема в том, что стандартного шаблона вывода такого дерева нет.
Я написал шаблон на основе стандартного tree от данного компонента. Отличие в том, что стандартный шаблон добавляется подразделы "ul" после элемента "li", а не внутри него, как бывает необходимо в случае с меню.
Итак, код самого шаблона компонента:
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<ul class="left-menu"> 

<?
$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"]):?>
      <span class="arrow-down"><img  src="<?=SITE_TEMPLATE_PATH?>/img/marker.png"></span>
      <ul class="left-menu-fallout">
   <?elseif($CURRENT_DEPTH>$arSection["DEPTH_LEVEL"]):?>
      <?=str_repeat("</ul>", $CURRENT_DEPTH - $arSection["DEPTH_LEVEL"]);?>
      </li>
   <?else:?>
      </li>
   <?endif;?>
   
   <li id="<?=$this->GetEditAreaId($arSection['ID']);?>">
      <a href="<?=$arSection["SECTION_PAGE_URL"];?>"><?=$arSection["NAME"];?></a>
   
   <?$CURRENT_DEPTH = $arSection["DEPTH_LEVEL"];?>
<?endforeach?>

</ul>
Здесь идет череда условий:
1. Для вывода стрелки, управляющей раскрытием вложенного списка и начала самого списка ul
2. Для закрытия всех необходимых ul и li
3. Если не выполняется ни одно из первых двух условий, то закрыть предыдущий элемент списка li, который, самое главное, не закрывается сам по себе, как видно из кода
Ваше имя*
 
E-mail
Тема

Добавить файлы
Загрузить файлы
#name#
#size#
 
#name#
Файлы:
Перетащите один или несколько файлов в эту область
или выберите файл на компьютере
Файлы:
Загрузить файлы
Код подтверждения (символы на картинке)*
Отправить
0
Вячеслав
28 Августа 2013 13:21
Шаблон компонента bitrix:catalog.section.list
Спасибо, полезно!