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