Назад

Битрикс фильтр, примеры

Главная
Блог
Битрикс фильтр, примеры

Фильтрация элементов — одна из самых частых задач при работе с инфоблоками в Битрикс. В этой статье разберём, как правильно формировать фильтры для выборки новостей, товаров, статей и других элементов.

Рассмотрим:

  • Базовые фильтры (CIBlockElement::GetList)

  • Фильтрацию по свойствам (чекбоксы, списки, числа)

  • Работу с ценами и количеством

  • Фильтры по изображениям и текстам

  • Сложные условия (AND, OR)

  • Фильтрацию по дате и активности

  • Использование GET-параметров

1. Базовый фильтр через CIBlockElement::GetList

Основной метод выборки элементов — CIBlockElement::GetList.

Пример: Получение активных элементов инфоблока с сортировкой по имени.

$arFilter = array(
    "IBLOCK_ID" => 10,       // ID инфоблока
    "ACTIVE" => "Y",         // Только активные
    "SECTION_ID" => 5        // Конкретный раздел
);

$arOrder = array("NAME" => "ASC");  // Сортировка по имени (A-Z)
$arSelect = array("ID", "NAME");    // Выбираем только ID и название

$res = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
while ($arItem = $res->GetNext()) {
    print_r($arItem);  // Вывод данных
}

2. Фильтрация по свойствам

2.1. Чекбоксы (Да/Нет)

Если свойство имеет тип "Список" с одним значением Y (флажок):

// Выбор элементов с отмеченным чекбоксом
$arFilter = array("PROPERTY_FEATURED_VALUE" => "Y");

// Выбор элементов БЕЗ отметки
$arFilter = array("!PROPERTY_FEATURED_VALUE" => "Y");

2.2. Фильтр по нескольким значениям

$arFilter = array(
    "PROPERTY_COLOR" => array("red", "blue", "green")  // Элементы с красным, синим или зелёным цветом
);

3. Фильтрация по ценам и количеству

3.1. Товары с ценой в определённом диапазоне

$minPrice = 1000;
$maxPrice = 5000;

$arFilter = array(
    ">=CATALOG_PRICE_1" => $minPrice,  // Цена типа 1 (например, розничная)
    "<=CATALOG_PRICE_1" => $maxPrice
);

3.2. Фильтр по наличию на складе

$arFilter = array(">CATALOG_QUANTITY" => 0);  // Только товары с положительным остатком

4. Фильтрация по изображениям и текстам

4.1. Элементы с заполненной картинкой

// Проверка анонсного изображения
$arFilter = array("!PREVIEW_PICTURE" => false);

// Проверка детального изображения
$arFilter = array("!DETAIL_PICTURE" => false);

4.2. Элементы с заполненным описанием

$arFilter = array("!DETAIL_TEXT" => false);  // Есть детальное описание

5. Сложные условия (AND, OR)

5.1. Фильтр "ИЛИ" (OR)

$arFilter = array(
    "LOGIC" => "OR",
    "PROPERTY_MATERIAL" => "дерево",
    "PROPERTY_MATERIAL" => "металл"
);

5.2. Комбинированный фильтр

$arFilter = array(
    array(
        "LOGIC" => "AND",
        ">=PROPERTY_PRICE" => 1000,
        "<=PROPERTY_PRICE" => 5000
    ),
    array(
        "LOGIC" => "OR",
        "PROPERTY_COLOR" => "красный",
        "PROPERTY_COLOR" => "синий"
    )
);

6. Фильтрация по дате и активности

6.1. Элементы за последнюю неделю

$arFilter = array(
    ">=DATE_ACTIVE_FROM" => date("d.m.Y", strtotime("-1 week")),
    "<=DATE_ACTIVE_FROM" => date("d.m.Y")
);

6.2. Активные элементы с ограниченным сроком

$arFilter = array(
    "ACTIVE" => "Y",
    "ACTIVE_DATE" => "Y",  // Учитывать даты активности
    "<=DATE_ACTIVE_TO" => date("d.m.Y")  // Показывать, если срок не истёк
);

7. Фильтрация через GET-параметры

7.1. Передача параметров из URL

if (!empty($_GET['category'])) {
    $arFilter["SECTION_CODE"] = $_GET['category'];  // Фильтр по символьному коду раздела
}

7.2. Поиск по названию или артикулу

if (!empty($_GET['q'])) {
    $arFilter[] = array(
        "LOGIC" => "OR",
        array("NAME" => "%" . $_GET['q'] . "%"),  // Поиск по названию
        array("PROPERTY_ARTICLE" => $_GET['q'])   // Поиск по артикулу
    );
}

Заключение

Мы рассмотрели основные способы фильтрации элементов в Битрикс:

  • Простые фильтры (=, !=, >, <)

  • Работу с ценами и количеством

  • Условия AND/OR

  • Фильтрацию по дате и активности

  • Использование GET-параметров

Для более глубокого изучения рекомендую официальную документацию.

Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Читайте по теме
Все статьи
Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Все статьи