У нас есть товар - деталь машины (инфоблок Торговый каталог).
Содержит артикул, бренд, машина, группа, к которой принадлежит данная деталь .
У него есть свойство привязки "машина" к другому инфоблоку Машины (торговый каталог),
содержит свойства марка, модель, тип кузова, год выпуска.
Задача: сделать умный фильтр по полям - свойствам машины + группе, к которой принадлежит деталька.
Итак, вот пытаюсь делать сначала Фильтр по полям марка, модель, год выпуска.
то ли фильтр неправильно указала, в документации мало описано, или пример приведите, как надо вывести элементы другого инфоблока?
Содержит артикул, бренд, машина, группа, к которой принадлежит данная деталь .
У него есть свойство привязки "машина" к другому инфоблоку Машины (торговый каталог),
содержит свойства марка, модель, тип кузова, год выпуска.
Задача: сделать умный фильтр по полям - свойствам машины + группе, к которой принадлежит деталька.
Итак, вот пытаюсь делать сначала Фильтр по полям марка, модель, год выпуска.
| Код |
|---|
global $arFilt;?>
<?$APPLICATION->IncludeComponent("bitrix:catalog.smart.filter", "uni_auto_smart_filter", Array(
"IBLOCK_TYPE" => "1c_auto", // Тип инфоблока
"IBLOCK_ID" => "7", // Инфоблок
"SECTION_ID" => "", // ID раздела инфоблока
"SECTION_CODE" => "",
"FILTER_NAME" => "arFilter", // Имя выходящего массива для фильтрации
"HIDE_NOT_AVAILABLE" => "N",
"TEMPLATE_THEME" => "blue",
"FILTER_VIEW_MODE" => "vertical",
"DISPLAY_ELEMENT_COUNT" => "Y",
"SEF_MODE" => "Y",
"CACHE_TYPE" => "A", // Тип кеширования
"CACHE_TIME" => "36000000", // Время кеширования (сек.)
"CACHE_GROUPS" => "Y", // Учитывать права доступа
"SAVE_IN_SESSION" => "N", // Сохранять установки фильтра в сессии пользователя
"INSTANT_RELOAD" => "Y", // Мгновенная фильтрация при включенном AJAX
"PAGER_PARAMS_NAME" => "arrPager",
"PRICE_CODE" => array( // Тип цены
'1'=>'zakupochnye',
),
"CONVERT_CURRENCY" => "Y",
"XML_EXPORT" => "N",
"SECTION_TITLE" => "-",
"SECTION_DESCRIPTION" => "-",
"POPUP_POSITION" => "bottom",
"SECTION_CODE_PATH" => "",
"SMART_FILTER_PATH" => $_REQUEST["SMART_FILTER_PATH"],
"CURRENCY_ID" => "RUB"
),
false
);?>
<?// мы получили фильтр, туда передали значения.$arFilter; для catalog.section
$arFilr=array("IBLOCK_ID"=>7);
$arSelect = Array("XML_ID");
$res1c=CIBlockElement::GetList(array(),array_merge($arFilter,$arFilr),false,array(),$arSelect);
while($ar_fields = $res1c->GetNext()){
$arrayMas[]=array("LOGIC" => "AND",array("=PROPERTY_736.XML_ID"=>$ar_fields['XML_ID'],"=PROPERTY_736.IBLOCK_ID"=>7));
}
$arFilt[]=array($arrayMas);
print_r($arFilt);
?>
<?$APPLICATION->IncludeComponent("bitrix:catalog.link.list","",
Array(
"AJAX_MODE" => "Y",
"IBLOCK_TYPE" => "1c_catalog",
"IBLOCK_ID" => "1",
"LINK_PROPERTY_SID" => "",
"ELEMENT_ID" => $_REQUEST["PARENT_ELEMENT_ID"],
"ELEMENT_SORT_FIELD" => "sort",
"ELEMENT_SORT_ORDER" => "asc",
"ELEMENT_SORT_FIELD2" => "id",
"ELEMENT_SORT_ORDER2" => "desc",
"FILTER_NAME" => "arFilter",
"SECTION_URL" => "",
"DETAIL_URL" => "",
"BASKET_URL" => "/personal/basket.php",
"ACTION_VARIABLE" => "action",
"PRODUCT_ID_VARIABLE" => "id",
"SECTION_ID_VARIABLE" => "SECTION_ID",
"SET_TITLE" => "Y",
"PAGE_ELEMENT_COUNT" => "30",
"PROPERTY_CODE" => array(),
"PRICE_CODE" => array(),
"USE_PRICE_COUNT" => "N",
"SHOW_PRICE_COUNT" => "1",
"PRICE_VAT_INCLUDE" => "Y",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "300",
"CACHE_FILTER" => "Y",
"CACHE_GROUPS" => "Y",
"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",
"PAGER_SHOW_ALL" => "Y",
"HIDE_NOT_AVAILABLE" => "N",
"CONVERT_CURRENCY" => "N",
"AJAX_OPTION_JUMP" => "Y",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "N",
"PRODUCT_DISPLAY_MODE" => "Y",
"TEMPLATE_THEME" => "blue",
"SHOW_DISCOUNT_PERCENT" => "N",
"SHOW_OLD_PRICE" => "N",
"SHOW_CLOSE_POPUP" => "N",
"MESS_BTN_BUY" => "Купить",
"MESS_BTN_ADD_TO_BASKET" => "В корзину",
"MESS_BTN_DETAIL" => "Подробнее",
"MESS_NOT_AVAILABLE" => "Нет в наличии",
"ADD_PICT_PROP" => "-",
"LABEL_PROP" => "-",
"PRODUCT_DISPLAY_MODE" => "N",
"SET_LAST_MODIFIED" => "Y",
"ADD_TO_BASKET_ACTION" => "ADD"
)
);?>
<?$APPLICATION->IncludeComponent("bitrix:catalog.section", "uni_catalog_section_filter", array(
"IBLOCK_TYPE" => "1c_catalog",
"IBLOCK_ID" => "1",
"SECTION_ID" => "",
"SECTION_CODE" => "",
"SECTION_USER_FIELDS" => array(
0 => "",
1 => "",
),
"ELEMENT_SORT_FIELD" => "sort",
"ELEMENT_SORT_ORDER" => "desc",
"ELEMENT_SORT_FIELD2" => "id",
"ELEMENT_SORT_ORDER2" => "desc",
"FILTER_NAME" => "arFilt",
"INCLUDE_SUBSECTIONS" => "Y",
"SHOW_ALL_WO_SECTION" => "Y",
"HIDE_NOT_AVAILABLE" => "N",
"PAGE_ELEMENT_COUNT" => "30",
"LINE_ELEMENT_COUNT" => "1",
"PROPERTY_CODE" => array(
0 => "BREND",
1 => "CML2_ARTICLE",
2 => "DNEY_DOSTAVKI",
3 => "",
),
"OFFERS_FIELD_CODE" => array(
0 => "ID",
1 => "",
),
"OFFERS_PROPERTY_CODE" => array(
0 => "CML2_LINK",
1 => "",
),
"OFFERS_SORT_FIELD" => '',
"OFFERS_SORT_ORDER" =>'' ,
"OFFERS_SORT_FIELD2" => "",
"OFFERS_SORT_ORDER2" => "",
"OFFERS_LIMIT" => "30",
"SECTION_URL" => "",
"DETAIL_URL" => "",
"BASKET_URL" => "/personal/cart/",
"ACTION_VARIABLE" => "action",
"PRODUCT_ID_VARIABLE" => "id",
"PRODUCT_QUANTITY_VARIABLE" => "quantity",
"PRODUCT_PROPS_VARIABLE" => "prop",
"SECTION_ID_VARIABLE" => "SECTION_ID",
"AJAX_MODE" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "N",
"AJAX_OPTION_HISTORY" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "36000000",
"CACHE_GROUPS" => "Y",
"META_KEYWORDS" => "-",
"META_DESCRIPTION" => "-",
"BROWSER_TITLE" => "-",
"ADD_SECTIONS_CHAIN" => "N",
"DISPLAY_COMPARE" => "N",
"SET_TITLE" => "N",
"SET_STATUS_404" => "Y",
"CACHE_FILTER" => "N",
"USE_PRICE_COUNT" => "N",
"SHOW_PRICE_COUNT" => "1",
"PRICE_VAT_INCLUDE" => "Y",
"PRODUCT_PROPERTIES" => array(
),
"USE_PRODUCT_QUANTITY" => "N",
"CONVERT_CURRENCY" => "N",
"OFFERS_CART_PROPERTIES" => array(
),
"AJAX_OPTION_ADDITIONAL" => ""
),
false
);?>
|
то ли фильтр неправильно указала, в документации мало описано, или пример приведите, как надо вывести элементы другого инфоблока?