Для того, чтобы где-то на сайте вывести список разделов инфоблока, нет необходимости применять компоненты, тем более комплексные. Достаточно использовать CIBlockSection::GetList с нужными параметрами.
Общий вид конструкции вывода разделов инфоблока выглядит следующим образом:
<?php
// подключение модуля ИБ (если не подключен)
CModule::IncludeModule("iblock");
// вывод разделов инфоблока по ИД
$arFilter = array('IBLOCK_ID' => 3, "ACTIVE" => "Y"); // фильтр разделов
$arSelect = array("ID", "NAME", "PICTURE"); // выбор свойств раздела
$arSort = array('SORT' => 'ASC'); // сортировка разделов
$arNavStart = array("nPageSize" => 5); // количество выводимых разделов
$rsSections = CIBlockSection::GetList($arSort, $arFilter, false, $arSelect, $arNavStart);
while ($arSection = $rsSections->GetNextElement()) {
$arFields = $arSection->GetFields(); ?>
<pre>
<?print_r($arFields);?>
</pre>
<? } ?>
Из всех передаваемых в CIBlockSection::GetList параметров, обязательным является IBLOCK_ID, все остальное можно в виде пустого массива array().
Разберем параметры:
- $arFilter — фильтрует вывод разделов. В примере выше, конструкция выведет все активные разделы из инфоблока, в том числе и подразделы. Чтобы вывести подразделы раздела. Передаем дополнительно ID раздела.
$arFilter = array('IBLOCK_ID' => 3, "ACTIVE" => "Y", 'SECTION_ID' => 1);
- $arSelect — выбираем только нужные нам свойства, дабы снизить нагрузку на сайт. Если передадите массив этот, пустым, то увидите из каких свойств можно выбрать. Кроме того, можно выбрать дополнительные пользовательские поля.
$arSelect = array("ID", "NAME", "PICTURE", "UF_DOP");
- $arSort – сортировка выводимых разделов. Передаете свойство, по которому производится сортировка. asc - по возрастанию, desc - по убыванию.
- $arNavStart – ограничивает количество выводимых разделов
Для вывода отдельного раздела инфоблока, применяем CIBlockSection::GetByID
<?
// подключение модуля ИБ (если не подключен)
CModule::IncludeModule("iblock");
// вывод информации из определенного раздела
$res = CIBlockSection::GetByID(1);
if($ar_res = $res->GetNext()){ ?>
<pre>
<?print_r($ar_res);?>
</pre>
<? } ?>
Подробные описания и примеры применения CIBlockSection::GetList, CIBlockSection::GetByID
Комментарии