GetIBlockSectionList
Описание
CDBResult GetIBlockSectionList ( int iblock_id, int section_id = false, array order = Array("LEFT_MARGIN"=>"ASC"), int cnt = 0, array arFilter = Array() );
Функция возвращает активные разделы из информационного блока iblock_id. Использует метод CIBlockSection::GetList
Возвращаемое значение
Функция возвращает объект класса CDBResult с активными разделами (находящиеся в активных информационных блоках (у которых установлен флаг "Активен"), и которые лежат внутри активных разделов).
1. При работе с результатом рекомендуется применять метод класса CDBResult::GetNext(), результатом которого будет массив с полями раздела. Все поля при этом будут преобразованы в "HTML безопасный" вид. Если результат пуст или достигнут конец выборки CDBResult::GetNext() функция вернет false.
2. Поле для сортировки left_margin, так называемая "сквозная" сортировка, высчитывается на основании поля sort, уровня вложенности и сортировкой верхнего уровня. Отличие полей sort и left_margin в том, что sort указывается пользователем, для сортировки разделов между собой в пределах одного раздела-родителя, а вычисляемое left_margin предназначено для сортировки во всем информационном блоке.
Параметры функции
Параметр | Описание |
---|---|
iblock_id | ID информационного блока из которого будут выбраны разделы. |
section_id | ID папки-родителя. Для получения корневых разделов информационного блока установите параметр section_id = 0.
Необязательный. По умолчанию (false) выбираются все записи без ограничения по разделу-родителю. |
order | Массив вида Array(order1=>by1[, order2=>by2 [, ..]]), где order - поле для сортировки, может принимать значения:
|
cnt | Максимальное количество записей, которые вернет функция.
Необязательный. По умолчанию выбираются все записи. |
arFilter | Дополнительный фильтр - массив вида array("фильтруемое поле"=>"значение" [, ...])
Может принимать значения:
Все фильтруемые поля могут содержать перед названием тип проверки фильтра. Полный список параметров фильтра и дополнительную информацию b в CIBlockSection::GetList() |
Смотрите также
Примеры использования
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Каталог"); if(CModule::IncludeModule("iblock")) { // если $ID не задан или это не число, тогда // $ID будет =0, выбираем корневые разделы $ID = IntVal($_GET['ID']); // выберем папки из информационного блока $BID и раздела $ID $items = GetIBlockSectionList($_GET['BID'], $ID, Array("sort"=>"asc"), 10); while($arItem = $items->GetNext()) { echo '<a href="catalog.php?BID='. urlencode($_GET['BID']). '&id='.$arItem['ID'].'">'.$arItem["NAME"].'</a><br>'; echo $arItem["DESCRIPTION"]."<br>"; } } else ShowError("Модуль не установлен"); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php"); ?>