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

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 - поле для сортировки, может принимать значения:
  • 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()

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

<?
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-2024, «1С-Битрикс», 2024
Наверх