Не работает arrFilter в компоненте bitrix:news
Чтобы не тупить в следующий раз и не искать почему не срабатывает наш кастомный фильтр в комплексном компоненте bitrix:news, внизу список того, что нужно проверить.
Например, сделаем фильтр который отфильтрует элемент с ID = 42.
Перед вызовом компонента укажем код:
<?
$arrFilter=array("ID"=>42);
?>
Далее идет вызов компонента:
<? $APPLICATION->IncludeComponent(
"bitrix:news",
"blog",
array(
"ADD_ELEMENT_CHAIN" => "Y",
"ADD_SECTIONS_CHAIN" => "N",
"AJAX_MODE" => "N",
***
Вроде бы все ОК, но фильтр не работает и отображаются все элементы.
Проверяем следующее:
1. В вызове компонента указываем что нужно использовать фильтр и его название:
***
"USE_FILTER" => "Y",
"FILTER_NAME" => "arrFilter",
***
2. В файле шаблона компонента, в моем случае local/templates/.default/components/bitrix/news/blog/news.php, нужно не забыть удалить или закомментировать строки:
<? $APPLICATION->IncludeComponent(
"bitrix:catalog.filter",
"",
Array(
"IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
"IBLOCK_ID" => $arParams["IBLOCK_ID"],
"FILTER_NAME" => $arParams["FILTER_NAME"],
"FIELD_CODE" => $arParams["FILTER_FIELD_CODE"],
"PROPERTY_CODE" => $arParams["FILTER_PROPERTY_CODE"],
"CACHE_TYPE" => $arParams["CACHE_TYPE"],
"CACHE_TIME" => $arParams["CACHE_TIME"],
"CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
"PAGER_PARAMS_NAME" => $arParams["PAGER_PARAMS_NAME"],
),
$component
);
?>
Это нужно сделать, чтобы при вызове компонента не перезаписывался наш собственный массив $arrFilter.
Когда редко занимаешься проектами на Битрикс часто забываешь о логике его работы и порядке загрузки различных частей системы и из-за этого иногда возникает непонимание почему тот или иной компонент не работает )