1. Саша Победа
  2. Деньги, бизнес
  3. 08.12.2020
  4.  Подписаться по email
Часто при выводе в Битриксе списка новостей или товаров каталога, нужно отфильтровать элементы по дате. И при этом в сети много вопросов, как организовать этот список, какой формат даты применять и т.д.

Рассмотрим создание фильтра в Битрикс на примере компонента Список новостей. Чтобы применить к нему фильтр, необходимо создать перед вызовом компонента переменную типа массив. В этом массиве мы задаем все поля и свойства элементов с условиями фильтрации.

Покажу пример фильтрации элементов по дате. Например, необходимо вывести список новостей за выбранный год. Выбор года можно организовать в виде списка select и последующего GET запроса. Фильтр в таком случае будет выглядеть так:

<?
global $arrFilter; //переменная фильтра

if($_GET['season'] && is_numeric($_GET['season']) ) { // если выбран год
$dateStart = '01.01.'.$_GET['season']; // дата начала года
$dateEnd = '31.12.'.$_GET['season']; // дата конца года
}

// задаем условия фильтрации, используя сложный фильтр
$arrFilter = array (
array(
"LOGIC" => "AND",
array(">=DATE_ACTIVE_FROM" => ConvertTimeStamp(strtotime($dateStart),"FULL")),
array("<=DATE_ACTIVE_FROM" => ConvertTimeStamp(strtotime($dateEnd),"FULL")),
),
);

//подключение компонента
$APPLICATION->IncludeComponent("bitrix:news.list", "news_list", array( и т.д.
?>

Обратите внимание на функцию ConvertTimeStamp. Она конвертирует время из Unix-формата в строку в формате сайта. Имеет следующие параметры:

ConvertTimeStamp(
int timestamp = false,
string type = "SHORT",
mixed site = false,
bool SearchInSitesOnly = false
);

Где timestamp – Время в Unix-формате. Необязательный параметр, по умолчанию – текущее время.
type – Тип формата. Допустимы следующие значения: FULL – полный (дата и время), SHORT – короткий (дата). Необязательный параметр, по умолчанию равен “SHORT”.
site – Идентификатор сайта, в формате которого необходимо вернуть дату. Необязательный параметр. По умолчанию – текущий сайт.
SearchInSitesOnly – Искать только на сайте. Необязательный параметр. По умолчанию – “false” текущий сайт.
Ответы (0)


Комментариев пока нет...
Обращаем Ваше внимание, что комментировать могут только зарегистрированные пользователи!