В общем возникла необходимость добавить в новости фильтр по годам (кроме фильтров тематики и т.п.).
На странице добавлен компонент bitrix.news, в котором вместо catalog.filter добавил catalog.smart.filter.
Теперь помимо фильтра по обычным свойствам нужно еще добавить фильтр по годам.
Кто-то может подсказать, как это лучше реализовать?
У меня все сводится к тому что нужно в глобальный фильтр $arrFilter добавить условие [CODE]$GLOBALS['arrFilter'] = [
'LOGIC' => 'OR',
[
'>=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(0,0,0,1,1,$year)),
'<=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(23,59,59,12,31,$year))
],
'<=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(23,59,59,12,31,$year2)),
];
[/CODE]
Но как это сделать не затерев условия "умного фильтра" - тут я туплю.
Пробовал так
[CODE]$GLOBALS['arrFilter'][] = [
'LOGIC' => 'OR',
[
'>=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(0,0,0,1,1,$year)),
'<=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(23,59,59,12,31,$year))
],
'<=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(23,59,59,12,31,$year2)),
];[/CODE]
Но тогда получаю
[CODE][
'PROPERTY_19' => 46,
'0' => [
'LOGIC' => 'OR',
[
'>=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(0,0,0,1,1,$year)),
'<=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(23,59,59,12,31,$year))
],
'<=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(23,59,59,12,31,$year2)),
]
];
[/CODE]
а для работы фильтра надо чтобы было
[CODE][
'PROPERTY_19' => 46,
[
'LOGIC' => 'OR',
[
'>=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(0,0,0,1,1,$year)),
'<=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(23,59,59,12,31,$year))
],
'<=DATE_ACTIVE_FROM' => date('d.m.Y', mktime(23,59,59,12,31,$year2)),
]
];[/CODE]
т.е. без индекса.
И тут я туплю.