Глобальные фильтры на всякие случаи жизни

Глобальный фильтр, нужен чаще всего, для вывода определенных элементов, из общего массива, инфорблока. Спектр применяемости очень широкий. Используется чаще всего с компонентами: Список новостей, Новости, Элементы раздела, Каталог, Топ элементов каталога и Каталог.

Для включения фильтр достаточно проделать следующее: Перед вызовом компонента вставить код вида

$GLOBALS['Название_Фильтра'] = array(Массив с данными для фильтрации);

В параметрах компонента передать параметры включения фильтра и его название

$APPLICATION->IncludeComponent(
.....
"USE_FILTER" => "Y",
"FILTER_NAME" => "Название_Фильтра",
.....

Дальше идут примеры которые вы можете передать в $GLOBALS['Название_Фильтра'], в качестве "Название_Фильтра" буду вписывать "arrFilter". Данные примеры собраны из нескольких источников. И вы можете писать свои примеры в комментариях, лучшие будут добавлены в тело заметки.

Итак: погнали

Наличие не пустого свойства. Если у инфоблока есть свойство с заданным кодом (DISCOUNTS) оно не пустое и активно:

$GLOBALS['arrFilter'] = array('ACTIVE' => 'Y', '!PROPERTY_DISCOUNTS' => false);

Выборка элементов по их ID, если нужен один конкретный:

$GLOBALS['arrFilter'] = array('ID' => 12);

Или несколько:

$GLOBALS['arrFilter'] = array('ID' => array(10,11,12,13));

Элементы созданные за текущий день

$curdate = date('d.m.Y');
$arrFilter = Array(">=DATE_ACTIVE_FROM" => $curdate)

Элементы созданные последние два дня, где 86000 это количество секунд. Умножая этот параметр на количество дней, получим элементы за последние n (86000 * n) дней

$from = date('d.m.Y', time() - 86400);
$to = date("d.m.Y");
$arrFilter = Array(">=DATE_ACTIVE_FROM" => $from, "<=DATE_ACTIVE_FROM" => $to)

Отфильтровываем элементы у которых в свойстве "HIT" установлено "Yes". При этом HIT это список с несколькими значениями.

$GLOBALS['arrFilter'] = array("=PROPERTY_HIT_VALUE"=> "Yes");

Отфильтровываем элементы у которых в свойстве "HIT" установлено "Yes". При этом HIT это список с несколькими значениями. И э этого свойсва ID - 15

$GLOBALS['arrFilter'] = array("PROPERTY_15_VALUE"=>"Yes");

Отфильтровываем элементы у которых в свойстве "HIT" установлено "Yes". При этом HIT это список с несколькими значениями. И э этого свойсва ID - 15

$GLOBALS['arrFilter'] = array("PROPERTY_15_VALUE"=>"Yes");

Все элементы из раздела инфоблока, зная ID этого раздела. Например из 90-го

$GLOBALS['arrFilter']=array("SECTION_ID" => 90);

Пока все, заметка будет дополняться по ходу жизни. Любые из фильтров можно комбинировать просто добавляя разные условия в массив.

Все заметки
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей

Зарегистрироваться Войти
Напомнить пароль

Быстрая регистрация через соц.сеть:

© 2011—2017 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.

Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой.
Политика конфеденциальности