Почему в битрикс может не работать фильтр по разделам в компоненте catalog.section?

Делаю кастомный фильтр для каталога, используя глобальный массив $arFilter.
Проблема следующая: не работает $arFilter['SECTION_ID']. Компонент просто игнорирует его. Причём, фильтры вида: $arFilter['ID'], $arFilter['PROPERTY_*код свойства*'] и другие работают нормально.

Пробовал менять название переменной, заменять $arFilter = $GLOBALS['arFilter'], чистить кеш, передавать id разделов массивом и простым числовым значением - результат один и тот же. Интересно, что $arFilter['IBLOCK_SECTION_ID'] работает, но мне он не подходит, т.к. элементы привязаны к нескольким разделам, а данный фильтр это не учитывает

Дальше вообще песня: поставил фильтр с помощью $arFilter['SECTION_CODE'] - и это какое-то время работало, но потом, по непонятным мне причинам, перестало - компонент возвращает 0 элементов.

Уже и не знаю, куда копать. В чём может быть проблема?
  • Вопрос задан
  • 1283 просмотра
Решения вопроса 1
@Siro4ek Автор вопроса
Решил проблему. Оказывается, если в настройках компонента задан SECTION_ID, фильтр по нему игнорируется. Решение до неприличия простое - при вызове catalog.section проверять, осуществляется ли фильтрация по SECTION_ID, и если да - оставить эту настройку пустой

"SECTION_ID" => !empty($GLOBALS[$arParams['FILTER_NAME']]['SECTION_ID']) ? '' : $arResult["VARIABLES"]["SECTION_ID"]
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы