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

5.9.2/ Фильтр по свойствам

00 голосов
10
Версия 5.9.2
Код
$arParams["FILTER_NAME"]['PROPERTY_p_aksesuar'][0]=1056;
.....
$APPLICATION->IncludeComponent(.....
"FILTER_NAME" => $arParams["FILTER_NAME"],
.....

PROPERTY_p_aksesuar свойство привязанное к элементам и 1056 ID того самого элемента. То есть должны выбрать все элементы в которых привязан элемент с Другова инфоблока с ID 1056

Выводит все элементы , фильтр не сработал .. что я не так делаю ? Я и так и сяк , чего то непойму, почему не работает =(
спросил 09 Фев, 13 от Kania (5,180 баллов)

10 Ответы

00 голосов
Откуда такая странная конструкция?
Цитата
Гость пишет:
$arParams["FILTER_NAME"]['PROPERTY_p_aksesuar'][0]=1056;


Если в IncludeCompoment подключается стандартный компонент bitrix, то в параметре "FILTER_NAME" указывается имя массива, а не сам массив.
Т.е. для того, чтобы передать в компонент массив с фильтром, нужно написать примерно следующее:
Код
$arFilter = array("PROPERTY_p_aksesuar"=>"1056");
$APPLICATION->IncludeComponent(..... 
"FILTER_NAME" => "arFilter",
..... 
 
ответил 09 Фев, 13 от Sage (460 баллов)
00 голосов
так тоже не работает =(
ответил 24 Фев, 13 от Kania (5,180 баллов)
00 голосов
подскажите что не так? задаю фильтр вроде как надо:

<?php $arFilter = array("author"=>$_REQUEST['id']); ?>
<p><?$APPLICATION->IncludeComponent(
"bitrix:news.list",
"template1",
Array(
"DISPLAY_DATE" => "Y",
"DISPLAY_NAME" => "Y",
"DISPLAY_PICTURE" => "Y",
"DISPLAY_PREVIEW_TEXT" => "Y",
"IBLOCK_TYPE" => "stat",
"IBLOCK_ID" => "57",
"NEWS_COUNT" => "20",
"SORT_BY1" => "ACTIVE_FROM",
"SORT_ORDER1" => "DESC",
"SORT_BY2" => "SORT",
"SORT_ORDER2" => "ASC",
"FILTER_NAME" => "arFilter",
"FIELD_CODE" => Array("",""),
"PROPERTY_CODE" => Array("author","difficult","theme","",""),
"DETAIL_URL" => "index.php?ID=#ELEMENT_ID#",
"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" => "",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
"CACHE_FILTER" => "N",
"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"
)
);?></p>
ответил 24 Март, 13 от ajc0n (140 баллов)
00 голосов
Если autor это код свойства то надо так:
Код
$arFilter = array("PROPERTY_author"=>$_REQUEST['id']);
ответил 23 Июль, 13 от cartmen (460 баллов)
00 голосов
Вывожу список новостей. Есть дополнительный переметр VIEW_LMENU. Нужно выводить только те записи, где VIEW_LMENU = 1.

Делаю так:
$arFilter = array( "VIEW_LMENU"=>"1");
$APPLICATION->IncludeComponent("bitrix:news.line", "equipment_list", array(
"IBLOCK_TYPE" => "equipment",
"IBLOCKS" => array(
0 => "6"
),
"NEWS_COUNT" => "100",
"SORT_BY1" => "SORT",
"SORT_ORDER1" => "ASC",
"SORT_BY2" => "SORT",
"SORT_ORDER2" => "ASC",
"DETAIL_URL" => "equipment_detail.php?ID=#ELEMENT_ID#",
"CACHE_TYPE" => "N",
"CACHE_TIME" => "10",
"ACTIVE_DATE_FORMAT" => "d.m.Y",
"FILTER_NAME" => "arFilter",
),
false
);

Но почему-то фильтр не срабатывает...
Пробывали так фильтр написать: $arFilter = array( "PROPERTY_VIEW_LMENU"=>"1"); Тоже не помогло... Что не так делаю?
ответил 26 Окт, 13 от VlastelN (140 баллов)
00 голосов
Цитата
Андрей Козлов пишет:
$arFilter = array( "VIEW_LMENU"=>"1");

Попробуйте фильтр по другому назвать, а то 2 фильтра с одинаковым имененм - нехорошо.
$arrFilter - например.
ответил 30 Янв, 14 от Almarea (3,760 баллов)
00 голосов
Цитата
Дмитрий Яковенко пишет:
Попробуйте фильтр по другому назвать, а то 2 фильтра с одинаковым имененм - нехорошо.
$arrFilter - например.


Не помогло smile:(

Сейчас так:
$eqFilter = array( "VIEW_LMENU" => "1" );
$APPLICATION->IncludeComponent("bitrix:news.line", "equipment_list", array(
"IBLOCK_TYPE" => "equipment",
"IBLOCKS" => array(
0 => "6"
),
"NEWS_COUNT" => "100",
"SORT_BY1" => "SORT",
"SORT_ORDER1" => "ASC",
"SORT_BY2" => "SORT",
"SORT_ORDER2" => "ASC",
"DETAIL_URL" => "equipment_detail.php?ID=#ELEMENT_ID#",
"CACHE_TYPE" => "N",
"CACHE_TIME" => "10",
"ACTIVE_DATE_FORMAT" => "d.m.Y",
"FILTER_NAME" => "eqFilter",
),
false
);
ответил 19 Май, 14 от VlastelN (140 баллов)
00 голосов
Попробуйте
Цитата
$eqFilter = array( "PROPERTY_VIEW_LMENU" => "1" );
ответил 16 Сен, 14 от sickmind (4,660 баллов)
00 голосов
Цитата
Александр Черкасов пишет:
Попробуйте
Цитата
$eqFilter = array( " PROPERTY_ VIEW_LMENU" => "1" );


Попробывали... Не помогает. Вот к примеру, пишу $eqFilter = array( "PROPERTY_VIEW_LMENU" => '34534' );
По идее, вообще ничего не должно выбираться, а выбирается полный список. Кажется что параметр FILTER_NAME вообще не работает smile:(
ответил 21 Янв, 15 от VlastelN (140 баллов)
00 голосов
Может есть другой способ как выбрать нужные элементы на прямую... Подскажите пожалуйста. Спасибо!
ответил 06 Май, 15 от VlastelN (140 баллов)

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

0 голосов
2 ответов
0 голосов
4 ответов
спросил 02 Янв, 14 от LoLiTKa (620 баллов)
0 голосов
4 ответов