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 - детального
просмотра) будут заменены параметры
Можно пользоваться любыми методами класса CDBResult, но при этом в полях LIST_PAGE_URL и DETAIL_PAGE_URL будут оригинальные значения шаблонов 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-2025, «1С-Битрикс», 2025