Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

arFilter не фильтрует

00 голосов
7
Здравствуйте. Только не пинайте сильно, но не могу применить элементарный фильтр. Посмотрел кучу примером, но....

Пытаюсь всего-лишь вывести элементы одного раздела.

Подскажите, что не так.

Код

<?$arrFilter = array("SECTION_ID" => "25");?>   

<?$APPLICATION->IncludeComponent("bitrix:news", "news_main_list", array(
   "IBLOCK_TYPE" => "news",
   "IBLOCK_ID" => "3",
   "NEWS_COUNT" => "20",
   "USE_SEARCH" => "N",
   "USE_RSS" => "N",
   "USE_RATING" => "N",
   "USE_CATEGORIES" => "N",
   "USE_REVIEW" => "N",
   "FILTER_NAME" => "arrFilter",
   "SORT_BY1" => "ACTIVE_FROM",
   "SORT_ORDER1" => "DESC",
   "SORT_BY2" => "SORT",
   "SORT_ORDER2" => "ASC",
   "CHECK_DATES" => "Y",
   "SEF_MODE" => "N",
   "SEF_FOLDER" => "/press/news_archive/",
   "AJAX_MODE" => "N",
   "AJAX_OPTION_SHADOW" => "Y",
   "AJAX_OPTION_JUMP" => "N",
   "AJAX_OPTION_STYLE" => "Y",
   "AJAX_OPTION_HISTORY" => "N",
   "CACHE_TYPE" => "A",
   "CACHE_TIME" => "36000000",
   "CACHE_FILTER" => "N",
   "CACHE_GROUPS" => "Y",
   "SET_TITLE" => "Y",
   "SET_STATUS_404" => "N",
   "INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
   "ADD_SECTIONS_CHAIN" => "Y",
   "USE_PERMISSIONS" => "N",
   "PREVIEW_TRUNCATE_LEN" => "70",
   "LIST_ACTIVE_DATE_FORMAT" => "d.m.Y",
   "LIST_FIELD_CODE" => array(
      0 => "",
      1 => "2010",
      2 => "",
   ),
   "LIST_PROPERTY_CODE" => array(
      0 => "",
      1 => "",
   ),
   "HIDE_LINK_WHEN_NO_DETAIL" => "N",
   "DISPLAY_NAME" => "Y",
   "META_KEYWORDS" => "-",
   "META_DESCRIPTION" => "-",
   "BROWSER_TITLE" => "NAME",
   "DETAIL_ACTIVE_DATE_FORMAT" => "d.m.Y",
   "DETAIL_FIELD_CODE" => array(
      0 => "",
      1 => "",
   ),
   "DETAIL_PROPERTY_CODE" => array(
      0 => "",
      1 => "",
   ),
   "DETAIL_DISPLAY_TOP_PAGER" => "N",
   "DETAIL_DISPLAY_BOTTOM_PAGER" => "N",
   "DETAIL_PAGER_TITLE" => "Страница",
   "DETAIL_PAGER_TEMPLATE" => "",
   "DETAIL_PAGER_SHOW_ALL" => "N",
   "DISPLAY_TOP_PAGER" => "N",
   "DISPLAY_BOTTOM_PAGER" => "N",
   "PAGER_TITLE" => "Новости",
   "PAGER_SHOW_ALWAYS" => "N",
   "PAGER_TEMPLATE" => "",
   "PAGER_DESC_NUMBERING" => "N",
   "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
   "PAGER_SHOW_ALL" => "N",
   "DISPLAY_DATE" => "Y",
   "DISPLAY_PICTURE" => "Y",
   "DISPLAY_PREVIEW_TEXT" => "Y",
   "SECTION_CODE" => "2011",
   "AJAX_OPTION_ADDITIONAL" => "",

   "VARIABLE_ALIASES" => array(
      "SECTION_ID" => "SECTION_ID",
      "ELEMENT_ID" => "ELEMENT_ID",
   )
   ),
   false
);?>


спросил 13 Авг, 13 от DooDLez (220 баллов)

7 Ответы

00 голосов
Код
<?
global $arrFilter;
$arrFilter = array("SECTION_ID" => "25");
?>
ответил 13 Авг, 13 от Ly (4,580 баллов)
00 голосов
В bitrix.news не работает, с bitrix.news.list уже разобрался.

Как сделать, чтобы работал в bitrix.news?
ответил 18 Окт, 13 от DooDLez (220 баллов)
00 голосов
совсем недавно была подобная тема:
http://dev.1c-bitrix.ru/community/forums/messages/forum6/topic31433/message174066/#message174066

может быть натолкнет на мысли
ответил 20 Янв, 14 от Delp (7,220 баллов)
00 голосов
Удалил из section.php

Код

<?if($arParams["USE_FILTER"]=="Y"):?>
<?$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"],
   ),
   $component
);
?>


<br />
<?endif?>



Не помогло. Может не на те мысли меня натолкнуло? :D
ответил 09 Май, 14 от DooDLez (220 баллов)
00 голосов
Поверьте в section.php перед подключением комп-та bitrix:news.list правильно ли приходит фильтр:
echo '<pre>'.print_r($GLOBALS[$arParams['FILTER_NAME']], true).'</pre>';
ответил 04 Сен, 14 от Delp (7,220 баллов)
00 голосов
Изменил так:

Код
<? $GLOBALS[$arParams['arrFilter']] = isset($GLOBALS[$arParams['arrFilter']]) && is_array($GLOBALS[$arParams['arrFilter']]) ? $GLOBALS[$arParams['arrFilter']] : array();

$GLOBALS[$arParams['arrFilter']]['"SECTION_ID" => "25"'] = false; ?>

<?
echo '<pre>'.print_r($GLOBALS[$arParams['arrFilter']], true).'</pre>';

$APPLICATION->IncludeComponent(
   "bitrix:news.list",
   "",
   Array(
      "IBLOCK_TYPE"   =>   $arParams["IBLOCK_TYPE"],
      "IBLOCK_ID"   =>   $arParams["IBLOCK_ID"],
      "NEWS_COUNT"   =>   $arParams["NEWS_COUNT"],
      "SORT_BY1"   =>   $arParams["SORT_BY1"],
      "SORT_ORDER1"   =>   $arParams["SORT_ORDER1"],
      "SORT_BY2"   =>   $arParams["SORT_BY2"],
      "SORT_ORDER2"   =>   $arParams["SORT_ORDER2"],
      "FIELD_CODE"   =>   $arParams["LIST_FIELD_CODE"],
      "PROPERTY_CODE"   =>   $arParams["LIST_PROPERTY_CODE"],
      "DISPLAY_PANEL"   =>   $arParams["DISPLAY_PANEL"],
      "SET_TITLE"   =>   $arParams["SET_TITLE"],
      "SET_STATUS_404" => $arParams["SET_STATUS_404"],
      "INCLUDE_IBLOCK_INTO_CHAIN"   =>   $arParams["INCLUDE_IBLOCK_INTO_CHAIN"],
      "ADD_SECTIONS_CHAIN"   =>   $arParams["ADD_SECTIONS_CHAIN"],
      "CACHE_TYPE"   =>   $arParams["CACHE_TYPE"],
      "CACHE_TIME"   =>   $arParams["CACHE_TIME"],
      "CACHE_FILTER"   =>   $arParams["CACHE_FILTER"],
      "DISPLAY_TOP_PAGER"   =>   $arParams["DISPLAY_TOP_PAGER"],
      "DISPLAY_BOTTOM_PAGER"   =>   $arParams["DISPLAY_BOTTOM_PAGER"],
      "PAGER_TITLE"   =>   $arParams["PAGER_TITLE"],
      "PAGER_TEMPLATE"   =>   $arParams["PAGER_TEMPLATE"],
      "PAGER_SHOW_ALWAYS"   =>   $arParams["PAGER_SHOW_ALWAYS"],
      "PAGER_DESC_NUMBERING"   =>   $arParams["PAGER_DESC_NUMBERING"],
      "PAGER_DESC_NUMBERING_CACHE_TIME"   =>   $arParams["PAGER_DESC_NUMBERING_CACHE_TIME"],
      "PAGER_SHOW_ALL" => $arParams["PAGER_SHOW_ALL"],
      "DISPLAY_DATE"   =>   $arParams["DISPLAY_DATE"],
      "DISPLAY_NAME"   =>   "Y",
      "DISPLAY_PICTURE"   =>   $arParams["DISPLAY_PICTURE"],
      "DISPLAY_PREVIEW_TEXT"   =>   $arParams["DISPLAY_PREVIEW_TEXT"],
      "PREVIEW_TRUNCATE_LEN"   =>   $arParams["PREVIEW_TRUNCATE_LEN"],
      "ACTIVE_DATE_FORMAT"   =>   $arParams["LIST_ACTIVE_DATE_FORMAT"],
      "USE_PERMISSIONS"   =>   $arParams["USE_PERMISSIONS"],
      "GROUP_PERMISSIONS"   =>   $arParams["GROUP_PERMISSIONS"],
      "FILTER_NAME"   =>   $arParams["FILTER_NAME"],
      "HIDE_LINK_WHEN_NO_DETAIL"   =>   $arParams["HIDE_LINK_WHEN_NO_DETAIL"],
      "CHECK_DATES"   =>   $arParams["CHECK_DATES"],

      "PARENT_SECTION"   =>   $arResult["VARIABLES"]["SECTION_ID"],
      "PARENT_SECTION_CODE"   =>   $arResult["VARIABLES"]["SECTION_CODE"],
      "DETAIL_URL"   =>   $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["detail"],
   ),
   $component
);?>



Результат = 0 Вообще ничего не изменяется.
ответил 10 Янв, 15 от DooDLez (220 баллов)
00 голосов
Цитата
Кирилл пишет:
Результат = 0 Вообще ничего не изменяется.

Потому что вы там ерунду какую-то написали.

Если вы установили фильтр в публичном файле перед подключением комплексного компонента, то вот это все лишнее пока:
$GLOBALS[$arParams['FILTER_NAME']] = isset($GLOBALS[$arParams['FILTER_NAME']]) && is_array($GLOBALS[$arParams['FILTER_NAME']]) ? $GLOBALS[$arParams['FILTER_NAME']] : array();

$GLOBALS[$arParams['FILTER_NAME']] = array(
'SECTION_ID' => '25'
);


Вот этой строчкой просто проверьте (без самодеятельности), доходит ли правильно фильтр до компонента или вы где-то его перебиваете.

echo '<pre>'.print_r($GLOBALS[$arParams['FILTER_NAME']], true).'</pre>';


$arParams['FILTER_NAME'] - передает имя переменной фильтра, которое вы указали при подключении комплексного компонента, т.е. там хранится значение равное 'arrFilter', что эквивалентно прямой записи $GLOBALS['arrFilter'] или global $arrFilter, но не $GLOBALS[$arParams['arrFilter']], т.к. в $arParams['arrFilter'] у вас судя по всему ничего не хранится.
ответил 27 Апр, 15 от Delp (7,220 баллов)

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

0 голосов
0 ответов
спросил 16 Ноя, 13 от XIDAN (620 баллов)
0 голосов
1 ответ
спросил 18 Окт, 13 от XIDAN (620 баллов)
0 голосов
2 ответов
спросил 27 Июнь, 13 от Kania (5,180 баллов)
0 голосов
3 ответов
спросил 28 Ноя, 13 от Skarler (280 баллов)
0 голосов
8 ответов
спросил 02 Июль, 13 от GIN1 (200 баллов)