2021-02-14 17:51:00
3306

Одной из наиболее распространенных и популярных CMS для создания и управления веб-сайтами является 1С-Битрикс. Она предлагает много полезных функций и инструментов для разработчиков. В данной статье мы рассмотрим класс и метод CIBlockElement::GetList, который позволяет управлять и манипулировать элементами инфоблоков. Мы также покажем примеры использования этого метода.

Что такое CIBlockElement::GetList?


CIBlockElement::GetList - это метод класса CIBlockElement, который используется для получения и фильтрации элементов инфоблоков в системе управления контентом 1С-Битрикс. Метод предоставляет возможность выбирать элементы из инфоблоков на основе различных критериев, таких как свойства, разделы и условия сортировки

Примеры использования метода CIBlockElement::GetList

Рассмотрим некоторые практические примеры использования метода CIBlockElement::GetList:

Не забывайте подключать файл prolog_before.php для работы с битриксом.

Подключаем файл prolog_before.php

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

Для работы с ифобоками потребуется модуль iblock. В примере идёт обращение к методу GetList класса CIBlockElement.
В переменной $arFilter задаётся массив для выборки элементов с нужными параметрами. PROPERTY_* Вместо * указывается необходимое имя свойства. В $arSelect содержится те поля, которые необходимо получить в переменной $arItem.

CModule::IncludeModule('iblock');
$el = new CIBlockElement;
$arFilter = ['IBLOCK_ID'=>'Id инфоблока','ACTIVE' => 'Y', 'PROPERTY_*' => 'Значение свойства'];
$arSelect = ['ID', 'NAME', 'PREVIEW_TEXT', 'DATE_ACTIVE_FROM', 'DATE_ACTIVE_TO'];
$res = $el::GetList (Array("ID" => "ASC"), $arFilter,false,false,$arrSelect);
while($arItem = $res->GetNext()){

print_r($arItem); // Посмотрим что получилось

}

Получение списка элементов инфоблока с фильтрацией по свойствам

    
$arFilter = array("IBLOCK_ID" => 2, "PROPERTY_CITY" => "Москва");
$arSelect = array("ID", "NAME", "DETAIL_PAGE_URL");
$res = CIBlockElement::GetList(array("NAME" => "ASC"), $arFilter, false, false, $arSelect);

while ($arFields = $res->GetNext()) {
    echo "Название: " . $arFields["NAME"];
    echo "Ссылка: " . $arFields["DETAIL_PAGE_URL"];
}
    

Получение списка элементов инфоблока с пагинацией:

    

$arFilter = array("IBLOCK_ID" => 2);
$arSelect = array("ID", "NAME", "DETAIL_PAGE_URL");
$arNavStartParams = array("nPageSize" => 10);

$res = CIBlockElement::GetList(array("NAME" => "ASC"), $arFilter, false, $arNavStartParams, $arSelect);

while ($arFields = $res->GetNext()) {
    echo "Название: " . $arFields["NAME"];
    echo "Ссылка: " . $arFields["DETAIL_PAGE_URL"];
}

Комментарии (45)

  1. Кирил 14 июля 2022, 22:43 # 0
    Ciblockelement — это же не d7?
    1. Кирил 14 июля 2022, 22:47 # 0
      $array = \Bitrix\Iblock\Elements\ElementCatalogTable::getList([ 'select' => ['ID', 'NAME', 'DETAIL_TEXT'], 'filter' => ['=ACTIVE' => 'Y'], ])->fetchAll(); foreach ($array as $arItem) { var_dump($arItem); } Вот так на d7