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-2024, «1С-Битрикс», 2024
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.