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");
?>