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

GetIBlockList

Описание

CDBResult
GetIBlockList (
	string type, 
	mixed TypesInc = array(), 
	mixed TypesExc = array(), 
	array Order = array("SORT"=>"ASC"), 
	int cnt = 0
);

Функция возвращает активные для текущего сайта информационные блоки типа type.

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

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

Примечание: при работе с результатом рекомендуется применять метод класса CDBResult::GetNext(), результатом которого будет массив с полями информационного блока. Все поля при этом будут преобразованы в "HTML безопасный" вид, а в полях с шаблонами URL-ов к страницам (LIST_PAGE_URL - списка элементов и DETAIL_PAGE_URL - детального просмотра) будут заменены параметры #SITE_DIR# и #IBLOCK_ID#. Если результат пуст или достигнут конец выборки CDBResult::GetNext() вернет false.
Можно пользоваться любыми методами класса CDBResult, но при этом в полях LIST_PAGE_URL и DETAIL_PAGE_URL будут оригинальные значения шаблонов URL-ов (как они введены в форме редактирования информационного блока), а не с замененными параметрами #SITE_DIR# и #IBLOCK_ID#.

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

Параметр Описание
type Тип информационных блоков.
TypesInc Фильтр для включения по ID и(или) символьному коду информационного блока. В качестве параметра может быть как единичное значение (ID или символьный код информационного блока), так и массив (array) таких значений.
Необязательный. По умолчанию включаются все записи типа type без дополнительной фильтрации.
Пример: "product_news"
TypesExc Фильтр для исключения по ID и(или) символьному коду информационного блока. В качестве параметра может быть как единичное значение (ID или символьный код информационного блока), так и массив (array) таких значений.
Необязательный. По умолчанию выбираются все записи типа type без исключений.
Пример: Array("company_news", "product_news", 22)
Order Сортировка - массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
    id - сортировка по ID информационных блоков;
    sort - индекс сортировки;
    timestamp_x - дата изменения;
    name - название;
order
- порядок сортировки сортировки, может принимать значения:
    asc - по возрастанию;
    desc - по убыванию;
Необязательный. По умолчанию равен Array("sort"=>"asc") - по возрастанию индекса сортировки.
cnt Максимальное количество записей, которые вернет функция.
Необязательный. По умолчанию выбираются все записи.

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

<?
if(CModule::IncludeModule("iblock"))
{
	//выбираем все информационные блоки типа "catalog"
	$iblocks = GetIBlockList("catalog");
	while($arIBlock = $iblocks->GetNext()) //цикл по всем блокам
	{
		// здесь мы НЕ используем функцию htmlspecialchars($arIBlock["NAME"]), 
		// т.к. метод GetNext() делает это за нас
		echo "Название: ".$arIBlock["NAME"]."<br>"; 
	}
}

?>
<?
if(CModule::IncludeModule("iblock"))
{
	// выберем 5 информационных блоков типа "news", отсортированных по названию,
	// кроме тех, у которых символьный код "company_news"
	$iblocks = GetIBlockList(
		"news", 
		Array(), 
		"company_news", 
		Array("name"=>"asc"), 
		5
	);

	while($arIBlock = $iblocks->GetNext()): // цикл по информационным блокам
	?>
		// ставим ссылку на страницу со списком новостей
		<a href="<?echo $arIBlock["LIST_PAGE_URL"]?>"><?echo $arIBlock["NAME"]?></a><br>
		<?
		// выберем 5 последних новостей для каждого информационного блока
		$items = GetIBlockElementList(
			$arIBlock["ID"], 
			false, 
			Array("ACTIVE_FROM"=>"desc", "sort"=>"asc"), 
			5
		);
		while($arItem = $items->GetNext())
		{
		//дальше показ новостей
		}
	endwhile;
}
?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024