Для создания фильтра по дате активности в компоненте news.List в "1C-Bitrix" необходимо добавить соответствующую конструкцию в код компонента.
1. Откройте файл шаблона компонента .default/template.php
, который находится в папке с компонентом bitrix/components/bitrix/news.list
.
2. Найдите код, отвечающий за получение списка новостей. Обычно он выглядит примерно так:
<?php if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); ?> <div class="news-list"> <?php if ($arParams["DISPLAY_TOP_PAGER"]): ?> <?= $arResult["NAV_STRING"] ?><br /> <?php endif;?> <?php foreach($arResult["ITEMS"] as $arItem): ?> <p class="news-item"> <a href="<?= $arItem["DETAIL_PAGE_URL"] ?>"><?= $arItem["NAME"] ?></a><br /> <span class="news-date"><?= $arItem["DISPLAY_ACTIVE_FROM"] ?></span> <div><?= $arItem["PREVIEW_TEXT"] ?></div> </p> <?php endforeach; ?> <?php if ($arParams["DISPLAY_BOTTOM_PAGER"]): ?> <br /><?= $arResult["NAV_STRING"] ?> <?php endif; ?> </div>
3. Добавьте перед началом цикла foreach конструкцию, которая задает фильтр по дате активности:
<?php ... $filter = Array(">DATE_ACTIVE_FROM" => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), time())); $arParams["FILTER_NAME"] = "filter"; $arResult["FILTER"] = $filter; ... ?>
4. В шаблоне компонента добавьте код для отображения формы фильтрации:
<form name="filter_form" action="<?= $APPLICATION->GetCurPage() ?>" method="get"> <input type="hidden" name="set_filter" value="Y" /> <table> <tr> <td>Дата активности:</td> <td> <input type="text" name="filter_date" value="<?= $arResult["FILTER"]["DATE_ACTIVE_FROM"] ?>" /> </td> </tr> <!-- Добавьте другие необходимые поля фильтрации --> </table> <input type="submit" name="filter_submit" value="Применить" /> </form>
5. Добавьте код для обработки фильтрации в начале файла шаблона компонента:
<? if ($_GET["set_filter"] == "Y") { $filter = Array(); if ($_GET["filter_date"]) { $filter[">=DATE_ACTIVE_FROM"] = $_GET["filter_date"]; } $arParams["FILTER_NAME"] = "filter"; $arResult["FILTER"] = $filter; } ?>
Теперь у вас должен появиться фильтр по дате активности в компоненте news.List в "1C-Bitrix", который будет фильтровать список новостей по указанной дате. Вы можете также добавить другие поля фильтрации и аналогичным образом обрабатывать их значения.