У нас есть товар - деталь машины (инфоблок Торговый каталог).
Содержит артикул, бренд, машина, группа, к которой принадлежит данная деталь .
У него есть свойство привязки "машина" к другому инфоблоку Машины (торговый каталог),
содержит свойства марка, модель, тип кузова, год выпуска.
Задача: сделать умный фильтр по полям - свойствам машины + группе, к которой принадлежит деталька.
Итак, вот пытаюсь делать сначала Фильтр по полям марка, модель, год выпуска.
то ли фильтр неправильно указала, в документации мало описано, или пример приведите, как надо вывести элементы другого инфоблока?
Содержит артикул, бренд, машина, группа, к которой принадлежит данная деталь .
У него есть свойство привязки "машина" к другому инфоблоку Машины (торговый каталог),
содержит свойства марка, модель, тип кузова, год выпуска.
Задача: сделать умный фильтр по полям - свойствам машины + группе, к которой принадлежит деталька.
Итак, вот пытаюсь делать сначала Фильтр по полям марка, модель, год выпуска.
Код |
---|
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 );?> |
то ли фильтр неправильно указала, в документации мало описано, или пример приведите, как надо вывести элементы другого инфоблока?