Назад

Как настроить фильтрацию новостей по годам в 1С-Битрикс

Главная
Блог
Как настроить фильтрацию новостей по годам в 1С-Битрикс

В этой статье разберём простой, но эффективный способ фильтрации новостей по годам в CMS 1С-Битрикс. Этот метод также можно адаптировать для сортировки по другим параметрам.

Как работает фильтр в Битрикс?

Многие компоненты Битрикс поддерживают фильтрацию через arrFilter. Некоторые компоненты позволяют задать параметры фильтра прямо в настройках, но часто требуется прописать его вручную перед вызовом компонента.

Шаг 1. Создание блока фильтрации

Добавим блок с ссылками для выбора года:

<div class="filter-block">
    <a href="?year=all&clear_cache=Y" class="filter<?= ($_GET['year'] == 'all') ? ' filter-active' : '' ?>">Все</a>
    <a href="?year=2023&clear_cache=Y" class="filter<?= ($_GET['year'] == '2023') ? ' filter-active' : '' ?>">2023</a>
    <a href="?year=2022&clear_cache=Y" class="filter<?= ($_GET['year'] == '2022') ? ' filter-active' : '' ?>">2022</a>
    <a href="?year=2021&clear_cache=Y" class="filter<?= ($_GET['year'] == '2021') ? ' filter-active' : '' ?>">2021</a>
</div>

Пояснение:

  • При клике на ссылку в $_GET передаётся выбранный год.

  • Активный год выделяется классом filter-active (для стилизации).

Шаг 2. Настройка фильтра для компонента

Перед вызовом компонента добавляем фильтр:

<?
if (!empty($_GET['year']) && $_GET['year'] != 'all') {
    global $arrFilter;
    
    $firstDay = '01.01.' . $_GET['year']; // Начало года
    $lastDay = '31.12.' . $_GET['year'];  // Конец года
    
    $arrFilter = [
        "LOGIC" => "AND",
        [">=DATE_ACTIVE_FROM" => ConvertTimeStamp(strtotime($firstDay), "FULL")],
        ["<=DATE_ACTIVE_FROM" => ConvertTimeStamp(strtotime($lastDay), "FULL")]
    ];
}
?>

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

Ключевые моменты:

  1. Фильтр применяется только при наличии $_GET['year'].

  2. Для работы фильтра в компоненте должны быть включены параметры:

    • "USE_FILTER" => "Y"

    • "FILTER_NAME" => "arrFilter"

Вывод

Этот метод позволяет легко фильтровать новости по годам в 1С-Битрикс. Его можно доработать, добавив динамическое формирование списка годов или расширив фильтрацию по месяцам.

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