Цитата |
---|
Чтобы скрипт выводил подуровни каталога с 3-мя уровнями вложенности в зависимости от того, в каком разделе находишься.
т.е. раздел 1 раздел 1.1 раздел 1.1.1 раздел 1.1.2 раздел 1.1.3 раздел 1.2 раздел 1.3 раздел 2 раздел 2 - в случае, если находишься в разделе "раздел 1.1" раздел 1 раздел 1.1 раздел 1.2 раздел 1.3 раздел 2 раздел 2 - в случае, если находишься в разделе "раздел 1" раздел 1 раздел 2 раздел 2 - в случае, если находишься в корне инфоблока |
Код |
---|
<? if(CModule::IncludeModule("iblock")) { // если $ID не задан или это не число, тогда // $ID будет =0, выбираем корневые разделы $SECTION_ID = IntVal($_GET['SECTION_ID']); $items = GetIBlockSectionList(45, 0, Array("sort"=>"asc")); while($arItem = $items->GetNext()) { echo '<a href='.$arItem["SECTION_PAGE_URL"].'>'.$arItem["NAME"].'</a><br>'; // вывод первого уровня $items22 = GetIBlockSectionList(45, $arItem["ID"], Array("sort"=>"asc")); //секции второго уровня while($arItem22 = $items22->GetNext()) { if ($arItem22["ID"] == $SECTION_ID) $pp = 1; // вводим признак. Если ID секции второго уровня равен $SECTION_ID, то $pp=1 и в таком случае отображаются секции и второго и третьего уровня } if ($SECTION_ID == $arItem["ID"] || $pp == 1) { $items2 = GetIBlockSectionList(45, $arItem["ID"], Array("sort"=>"asc")); while($arItem2 = $items2->GetNext()) { echo ' <a href='.$arItem2["SECTION_PAGE_URL"].'>'.$arItem2["NAME"].'</a><br>'; // вывод второго уровня if ($SECTION_ID == $arItem2["ID"]) { $items3 = GetIBlockSectionList(45, $arItem2["ID"], Array("sort"=>"asc")); while($arItem3 = $items3->GetNext()) { echo ' <a href='.$arItem3["SECTION_PAGE_URL"].'>'.$arItem3["NAME"].'</a><br>'; // вывод 3-го уровня } } } $pp = 0; // Убиваем признак, чтобы не выводились секции второго уровня у всех разделов первого уровня } } } else ShowError("Модуль не установлен"); ?> |
Код |
---|
<? if(CModule::IncludeModule("iblock")) //подключаем модуль инфоблоков { $res = CIBlockSection::GetByID($_REQUEST["SECTION_ID"]); $ar_res = $res->Fetch(); $items = GetIBlockSectionList(45, false, Array("left_margin"=>"asc"), 0, Array("<=DEPTH_LEVEL" => $ar_res["DEPTH_LEVEL"]+1)); while($arItem = $items->GetNext()) { $padding = $ar_res["DEPTH_LEVEL"] - ($ar_res["DEPTH_LEVEL"] - $arItem["DEPTH_LEVEL"]); // установка $padding = $padding*10; // отступа слева в зависимости от уровня вложенности echo '<p style="padding-left:'.$padding.'px;">'.$arItem["NAME"].'</p>'; } } ?> |
Код |
---|
раздел 1 раздел 1.1 раздел 1.1.1 раздел 1.1.2 раздел 1.1.3 раздел 1.2 раздел 2 раздел 3 раздел 3.1 раздел 3.1.1 раздел 3.1.2 раздел 3.1.3 раздел 3.2 раздел 3.3 |
Код |
---|
раздел 1 раздел 1.1 раздел 1.1.1 раздел 1.1.2 раздел 1.1.3 раздел 1.2 раздел 2 раздел 3 |
Код |
---|
<? if(CModule::IncludeModule("iblock")) { // если $ID не задан или это не число, тогда // $ID будет =0, выбираем корневые разделы $SECTION_ID = IntVal($_GET['SECTION_ID']); $items = GetIBlockSectionList(45, 0, Array("sort"=>"asc")); while($arItem = $items->GetNext()) { echo '<a href='.$arItem["SECTION_PAGE_URL"].'>'.$arItem["NAME"].'</a><br>'; // вывод первого уровня $items22 = GetIBlockSectionList(45, $arItem["ID"], Array("sort"=>"asc")); //секции второго уровня while($arItem22 = $items22->GetNext()) { if ($arItem22["ID"] == $SECTION_ID) $pp = 1; // вводим признак. Если ID секции второго уровня равен $SECTION_ID, то $pp=1 и в таком случае отображаются секции и второго и третьего уровня } if ($SECTION_ID == $arItem["ID"] || $pp == 1) { $items2 = GetIBlockSectionList(45, $arItem["ID"], Array("sort"=>"asc")); while($arItem2 = $items2->GetNext()) { echo ' <a href='.$arItem2["SECTION_PAGE_URL"].'>'.$arItem2["NAME"].'</a><br>'; // вывод второго уровня if ($SECTION_ID == $arItem2["ID"]) { $items3 = GetIBlockSectionList(45, $arItem2["ID"], Array("sort"=>"asc")); while($arItem3 = $items3->GetNext()) { echo ' <a href='.$arItem3["SECTION_PAGE_URL"].'>'.$arItem3["NAME"].'</a><br>'; // вывод 3-го уровня } } } $pp = 0; // Убиваем признак, чтобы не выводились секции второго уровня у всех разделов первого уровня } } } else ShowError("Модуль не установлен"); ?> |