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

Условие фильтра в шаблоне компонента

00 голосов
5
Использую на странице следующий код, при этом условие фильтра задано, и определено как глобальная переменная, но почему-то компонент не подбирает условие, и итого выдает все елементы как будто условия и не было. Т.е. $arResult["ITEMS"] без фильтра. Поскажите как сделать что результат был с фильтром.
global $arrFilter;
$arrFilter=array("NAME"=>"S%","ACTIVE" => "Y");?>
<?echo "<pre>".mydump($arrFilter)."</pre>";?>
<?$APPLICATION->IncludeComponent("bitrix:news.list", "partner_list_news", Array(
"IBLOCK_TYPE" => "firma",
"IBLOCK_ID" => "46",
"NEWS_COUNT" => "20",
"SORT_BY1" => "ACTIVE_FROM",
"SORT_ORDER1" => "DESC",
"SORT_BY2" => "NAME",
"SORT_ORDER2" => "ASC",
"FILTER_NAME" => "arrFilter",
"FIELD_CODE" => array(
0 => "ID",
1 => "CODE",
2 => "XML_ID",
3 => "NAME",
4 => "SORT",
5 => "PREVIEW_TEXT",
6 => "PREVIEW_PICTURE",
7 => "DETAIL_TEXT",
8 => "DETAIL_PICTURE",
9 => "DATE_ACTIVE_FROM",
10 => "ACTIVE_FROM",
11 => "DATE_ACTIVE_TO",
12 => "ACTIVE_TO",
13 => "SHOW_COUNTER",
14 => "SHOW_COUNTER_START",
15 => "IBLOCK_TYPE_ID",
16 => "IBLOCK_ID",
17 => "IBLOCK_CODE",
18 => "IBLOCK_NAME",
19 => "IBLOCK_EXTERNAL_ID",
20 => "DATE_CREATE",
21 => "CREATED_BY",
22 => "CREATED_USER_NAME",
23 => "TIMESTAMP_X",
24 => "MODIFIED_BY",
25 => "USER_NAME",
26 => "",
),
"PROPERTY_CODE" => array(
0 => "FULL_NAME",
1 => "DESCRIPTION",
2 => "KOD",
3 => "CITY",
4 => "STREETS",
5 => "NRKIER",
6 => "TELEFONE",
7 => "FAX",
8 => "EMAIL",
9 => "KONTAKT",
10 => "",
),
"DETAIL_URL" => "detail.php",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
"CACHE_FILTER" => "N",
"PREVIEW_TRUNCATE_LEN" => "",
"ACTIVE_DATE_FORMAT" => "d.m.Y",
"DISPLAY_PANEL" => "N",
"SET_TITLE" => "Y",
"INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
"ADD_SECTIONS_CHAIN" => "Y",
"HIDE_LINK_WHEN_NO_DETAIL" => "N",
"PARENT_SECTION" => $_REQUEST["SECTION_ID"],
"DISPLAY_TOP_PAGER" => "N",
"DISPLAY_BOTTOM_PAGER" => "Y",
"PAGER_TITLE" => "Новости",
"PAGER_SHOW_ALWAYS" => "Y",
"PAGER_TEMPLATE" => "",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"DISPLAY_DATE" => "Y",
"DISPLAY_NAME" => "Y",
"DISPLAY_PICTURE" => "Y",
"DISPLAY_PREVIEW_TEXT" => "Y"
)
);?>
спросил 02 Ноя, 13 от Sorrowful (120 баллов)

5 Ответы

00 голосов
Столкнулись с аналогичной проблемой. Повидимому, какой-то глюк в Битриксе. Решили проблему "вручную" (нам надо было вывести в "архиве выставок" уже прошедшие выставки, но думаю, идея ясна):

<?
CModule::IncludeModule("iblock");

$arSelect = Array("ID", "NAME", "DATE_ACTIVE_FROM", "PROPERTY_EXBEGIN", "PROPERTY_EXFINISH", "PREWIEV_TEXT");
$arFilter = Array("IBLOCK_ID"=>3, "ACTIVE"=>"Y", "!ACTIVE_DATE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
print_r($arFields);
}
?>
ответил 07 Дек, 13 от FieryStar (140 баллов)
00 голосов
Специально обновил свою копию и проверил на компоненте bitrix:news.list
Установил фильтр
Код
$arrFilter=array("ID"=>215);

Отфильтровался один элемент с ID=215.

Я бы рекомендовал прежде чем "решать проблему вручную" обращаться в техподдержку.
ответил 20 Март, 14 от Olly (820 баллов)
00 голосов
Здравствуйте.
Вопрос близкий к топику.

В шаблон catalog.section вставляю компонент catalog.filter. Получается при включенном AJAX для catalog.section происходит перегрузка catalog.section на сабмит фильтра. Но фильтр не срабатывает, хотя POST запрос компонента содержит параметры фильтра.

для включаемого catalog.filter установлен $parentComponent

Решение проблемы (работающее) получилось случайно - разместить на страницы компонента catalog.section еще один фильтр - в ХТМЛ коментарии и включить сохранение фильтра в сессии. Но такое решение не нравится :)

Как сделать global $$arParams["FILTER_NAME"]; видимым из catalog.section, и что в таком случае обеспечивает $parentComponent?
ответил 12 Июль, 14 от Orlangur (220 баллов)
00 голосов
Цитата

Специально обновил свою копию и проверил на компоненте bitrix:news.list
Установил фильтр Код
$arrFilter=array("ID"=>215);
Отфильтровался один элемент с ID=215.


правильный вариант:
global $arrFilter;
$arrFilter=array("ID"=>array(0=>"215", 1=>"216", 2=>"218" и т.д));

отфильтрируется все, где выше указываем.
ответил 12 Ноя, 14 от Kartez (260 баллов)
00 голосов
Вот уже второй день бьюсь с фильтром...Мне необходимо встроить в шаблон два фильтра для товаров - по бренду и по модели - я сделал их свойствами инфоблока. Встраиваю в шаблон компонент catalog.filter - работать отказывается. После включения в настройках "Сохранять установки фильтра в сессии пользователя" все прекрасно заработало -но только для тех кто авторизован((!! Для остальных пишет что элемент не найден! Подскажите пожлста как вообще встраивать фильтр в шаблон чтобы он работал? ичто вообще за объявление global $arrFilter;
ответил 10 Март, 15 от lCurtl (180 баллов)

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

0 голосов
3 ответов
спросил 08 Апр, 14 от Exumer (360 баллов)
0 голосов
5 ответов
0 голосов
3 ответов