В общем возникла необходимость добавить в новости фильтр по годам (кроме фильтров тематики и т.п.).
На странице добавлен компонент bitrix.news, в котором вместо catalog.filter добавил catalog.smart.filter.
Теперь помимо фильтра по обычным свойствам нужно еще добавить фильтр по годам.
Кто-то может подсказать, как это лучше реализовать?
У меня все сводится к тому что нужно в глобальный фильтр $arrFilter добавить условие
Но тогда получаю
т.е. без индекса.
И тут я туплю.
На странице добавлен компонент bitrix.news, в котором вместо catalog.filter добавил catalog.smart.filter.
Теперь помимо фильтра по обычным свойствам нужно еще добавить фильтр по годам.
Кто-то может подсказать, как это лучше реализовать?
У меня все сводится к тому что нужно в глобальный фильтр $arrFilter добавить условие
| Код |
|---|
$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)),
];
|
Но как это сделать не затерев условия "умного фильтра" - тут я туплю.
Пробовал так
| Код |
|---|
$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)),
]; |
| Код |
|---|
[
'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)),
]
];
|
а для работы фильтра надо чтобы было
| Код |
|---|
[
'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)),
]
]; |
И тут я туплю.