Для работы arrFilter в bitrix:news , необходимо несколько условий . В этом компоненте изначально нельзя использовать рукописные фильтры , но можно сделать пару хаков.. Не путать с bitrix:news.list . Это другой компонент.
1. Выставленные значения
1 2 3 |
"USE_FILTER" => "Y", ... "FILTER_NAME" => "arrFilter", |
2. массив $arrFilter сделать глобальным.
1 2 3 4 |
$arrFilter['property_att_hashtags'] = $mas_hashtag_new; //например так: $GLOBALS['arrFilter'] = $arrFilter; |
3. в файле \bitrix\templates\mynametemplate\components\bitrix\news\news\news.php
закомментировать вот этот код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* $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 например в файле novosti\index.php, заходим в файл \bitrix\templates\mynametemplate\components\bitrix\news\news\news.php и вставляем вот такой код:
1 |
echo '<pre>'.print_r($GLOBALS[$arParams['FILTER_NAME']], true).'</pre>'; |
Если вставить перед компонентом bitrix:catalog.filter — то выведется значение arrFilter; А если после — то пустой массив. Вывод bitrix:catalog.filter затирает значения, которые передаются через arrFilter.
4. Не забудьте правильно прописать нужные поля FILTER_PROPERTY_CODE , FILTER_FIELD_CODE,DETAIL_PROPERTY_CODE .
5. Обратите внимание на синтаксис массива arrFilter .
Дополнительно можете почитать чужую предысторию в форуме https://dev.1c-bitrix.ru/community/forums/forum6/topic31644/ , но там ошибка . Парень удалял(комментировал) bitrix:catalog.filter из файла section.php , а надо из news.php .
Братан, ты лучший. Никогда бы до этого не додумался. Дай бог тебе счастья в Новом году.
Спасибо))) Жаль не все так считают)))