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"); ?>
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.