Документация для разработчиков

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

Параметры функции

Параметр Описание
iblock_id ID информационного блока из которого будут выбраны разделы.
section_id ID папки-родителя. Для получения корневых разделов информационного блока установите параметр section_id = 0.
Необязательный. По умолчанию (false) выбираются все записи без ограничения по разделу-родителю.
order Массив вида Array(order1=>by1[, order2=>by2 [, ..]]), где order - поле для сортировки, может принимать значения:
  • sort - индекс сортировки;
  • timestamp_x - дата изменения;
  • name - название;
  • id - ID папки;
  • left_margin - поле обозначающее "сквозную" сортировку (см. Примечание);
  • depth_level - уровень вложенности папки;
  • by - порядок сортировки сортировки, может принимать значения:
    • asc - по возрастанию;
    • desc - по убыванию.
    Необязательный. По умолчанию равен Array("left_margin"=>"asc").
Полный список полей сортировки и дополнительную информацию смотрите в CIBlockSection::GetList()
cnt Максимальное количество записей, которые вернет функция.
Необязательный. По умолчанию выбираются все записи.
arFilter Дополнительный фильтр - массив вида array("фильтруемое поле"=>"значение" [, ...])
Может принимать значения:
  • ACTIVE - фильтр по активности (Y|N);
  • GLOBAL_ACTIVE - фильтр по активности, учитывая активность вышележащих разделов (Y|N);
  • NAME - по названию (можно искать по шаблону [%_]);
  • CODE - по символьному коду (по шаблону [%_]);
  • EXTERNAL_ID - по внешнему коду (по шаблону [%_]);
  • IBLOCK_ID - по коду информационного блока;
  • DEPTH_LEVEL - по уровню вложенности;
  • SECTION_ID - по разделу-родителю;
  • LEFT_BORDER, RIGHT_BORDER - по левой и правой границе (поля LEFT_MARGIN и RIGHT_MARGIN, см. примечание);
  • ID - по коду;
  • PROPERTY - по значениям свойств внутрилежащих элементов, PROPERTY - массив вида Array("код свойства"=>"значение", ...).
Необязательное. По умолчанию записи не фильтруются дополнительно.

Все фильтруемые поля могут содержать перед названием тип проверки фильтра.

Полный список параметров фильтра и дополнительную информацию b в CIBlockSection::GetList()

Возвращаемое значение

Функция возвращает объект класса CDBResult с активными разделами (находящиеся в активных информационных блоках (у которых установлен флаг "Активен"), и которые лежат внутри активных разделов).

Примечания:

1. При работе с результатом рекомендуется применять метод класса CDBResult::GetNext(), результатом которого будет массив с полями раздела. Все поля при этом будут преобразованы в "HTML безопасный" вид. Если результат пуст или достигнут конец выборки CDBResult::GetNext() функция вернет false.

2. Поле для сортировки left_margin, так называемая "сквозная" сортировка, высчитывается на основании поля sort, уровня вложенности и сортировкой верхнего уровня. Отличие полей sort и left_margin в том, что sort указывается пользователем, для сортировки разделов между собой в пределах одного раздела-родителя, а вычисляемое left_margin предназначено для сортировки во всем информационном блоке.

См. также

Примеры использования

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


© «Битрикс», 2001-2020, «1С-Битрикс», 2020
Наверх