Почему фильтр в Битриксе умеет фильтровать только активные записи?

Каким образом можно настроить умный фильтр, чтобы он отображал как активные, так и неактивные записи новостей и позволял устанавливать начало и окончание активности для каждой записи? Попытки использовать переменную $arrFilter['ACTIVE'] для этого не приводят к желаемым результатам. Сам компонент new.list отображает как активные, так и неактивные записи, но фильтр применяется только к активным записям.
  • 18 июля 2024 г. 5:02
Ответы на вопрос 2
Фильтр в Битриксе обычно умеет фильтровать только активные записи по умолчанию, так как большинство пользователей заинтересованы именно в активных данных. Однако, можно настроить умный фильтр для отображения как активных, так и неактивных записей, а также установить начало и окончание активности для каждой записи.

Для этого можно использовать специальные поля начала и окончания активности в свойствах элемента инфоблока. Затем, при вызове компонента new.list можно добавить нужные условия для отображения записей, учитывая начало и окончание активности.

Пример кода:

```php
$arrFilter = array(
    "IBLOCK_ID" => 1, // ID инфоблока
    "ACTIVE" => "Y", // Показывать только активные записи
    ">DATE_ACTIVE_FROM" => date("d.m.Y H:i:s"), // Начало активности после текущей даты
    "<DATE_ACTIVE_TO" => date("d.m.Y H:i:s"), // Конец активности до текущей даты
);

$APPLICATION->IncludeComponent(
    "bitrix:news.list",
    "",
    array(
        "FILTER_NAME" => "arrFilter",
        // Другие параметры компонента
    )
);
```

Таким образом, вы можете настроить умный фильтр для отображения как активных, так и неактивных записей, устанавливая начало и окончание активности для каждой записи.
Умный фильтр не фильтрует не активные записи, потому что в логике работы компонента прописаны проверки на ACTIVE, ACTIVE_DATE итд.  Сделайте свою версию компонента скопировав или унаследовавшись от основного, где поправите логику работы и вырежете проверки на активность.
Похожие вопросы