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

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