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

Фильтр элементов каталога

00 голосов
4
Всем доброго времени суток

Вывожу элементы каталога с помощью компонента bitrix:catalog, мне надо отфильтровать значения элементов по свойству SCIDKA.

Как правильно поступить, сделать выборку элементов при помощи GetList, сформировать массив arFilter с выбранным свойством  PROPERTY_SCIDKA и передать массив  arFilter в параметр вызова компонента  bitrix:catalog "FILTER_NAME"=>"arFilter" или просто сделать такой массив $arFilter = array ( "PROPERTY_SCIDKA_VALUE"=>"Y") и передать его в параметр вызова компонента
спросил 04 Окт, 13 от Dayran (840 баллов)

4 Ответы

00 голосов
Насколько мне известно, переменная $arrFilter - глобальная.
Можно переопределить ее на странице перед вызовом компонента, например так, как предложено здесь:
http://www.bitrix-help.ru/db/news_info/using_arrfilter/
ответил 17 Окт, 13 от Amilan (260 баллов)
00 голосов
Вот использую такой код, но все равно неработает

$GLOBALS['arrFilter'] = array("PROPERTY_SCIDKA_VALUE"=>"Y","ACTIVE"=>"N");
?>
<? $APPLICATION->IncludeComponent("bitrix:catalog", "catalog", array(
    "IBLOCK_TYPE" => "catalog",
    "IBLOCK_ID" => "19",
    "BASKET_URL" => "/personal/cart/",
    "ACTION_VARIABLE" => "action",
    "PRODUCT_ID_VARIABLE" => "id",
    "SECTION_ID_VARIABLE" => "SECTION_ID",
    "SEF_MODE" => "Y",
    "SEF_FOLDER" => "/catalog/",
    "AJAX_MODE" => "N",
    "AJAX_OPTION_JUMP" => "N",
    "AJAX_OPTION_STYLE" => "Y",
    "AJAX_OPTION_HISTORY" => "N",
    "CACHE_TYPE" => "N",
    "CACHE_TIME" => "36000000",
    "CACHE_FILTER" => "Y",
    "CACHE_GROUPS" => "Y",
    "SET_TITLE" => "Y",
    "SET_STATUS_404" => "Y",
    "USE_FILTER" => "Y",
    "FILTER_NAME" => "arrFilter",
    "FILTER_FIELD_CODE" => array(
        0 => "",
        1 => "SECTION_ID",
        2 => "",
    ),
    "FILTER_PROPERTY_CODE" => array(
        0 => "SCIDKA",
        1 => "",
    ),
    "FILTER_PRICE_CODE" => array(
    ),
    "FILTER_OFFERS_FIELD_CODE" => array(
        0 => "",
        1 => "",
    ),
    "FILTER_OFFERS_PROPERTY_CODE" => array(
        0 => "SIZE",
        1 => "",
    ),
    "USE_REVIEW" => "N",
    "USE_COMPARE" => "N",
    "PRICE_CODE" => array(
        0 => "Розничные",
    ),
    "USE_PRICE_COUNT" => "N",
    "SHOW_PRICE_COUNT" => "1",
    "PRICE_VAT_INCLUDE" => "Y",
    "PRICE_VAT_SHOW_VALUE" => "N",
    "OFFERS_CART_PROPERTIES" => array(
        0 => "SIZE",
        1 => "COLOR",
    ),
    "SHOW_TOP_ELEMENTS" => "N",
    "PAGE_ELEMENT_COUNT" => "16",
    "LINE_ELEMENT_COUNT" => "1",
    "ELEMENT_SORT_FIELD" => "created_date",
    "ELEMENT_SORT_ORDER" => "desc",
    "LIST_PROPERTY_CODE" => array(
        0 => "TYPE",
        1 => "SCPEC",
        2 => "SCIDKA",
        3 => "",
    ),
    "INCLUDE_SUBSECTIONS" => "Y",
    "LIST_META_KEYWORDS" => "-",
    "LIST_META_DESCRIPTION" => "-",
    "LIST_BROWSER_TITLE" => "NAME",
    "LIST_OFFERS_FIELD_CODE" => array(
        0 => "",
        1 => "",
    ),
    "LIST_OFFERS_PROPERTY_CODE" => array(
        0 => "SIZE",
        1 => "",
    ),
    "LIST_OFFERS_LIMIT" => "555",
    "DETAIL_PROPERTY_CODE" => array(
        0 => "COMPOSITION",
        1 => "TYPE",
        2 => "SCPEC",
        3 => "SCIDKA",
        4 => "",
    ),
    "DETAIL_META_KEYWORDS" => "-",
    "DETAIL_META_DESCRIPTION" => "-",
    "DETAIL_BROWSER_TITLE" => "NAME",
    "DETAIL_OFFERS_FIELD_CODE" => array(
        0 => "",
        1 => "",
    ),
    "DETAIL_OFFERS_PROPERTY_CODE" => array(
        0 => "SIZE",
        1 => "",
    ),
    "LINK_IBLOCK_TYPE" => "catalog",
    "LINK_IBLOCK_ID" => "19",
    "LINK_PROPERTY_SID" => "IT_TOVER",
    "LINK_ELEMENTS_URL" => "link.php?PARENT_ELEMENT_ID=#ELEMENT_ID#",
    "USE_ALSO_BUY" => "N",
    "OFFERS_SORT_FIELD" => "sort",
    "OFFERS_SORT_ORDER" => "asc",
    "DISPLAY_TOP_PAGER" => "N",
    "DISPLAY_BOTTOM_PAGER" => "Y",
    "PAGER_TITLE" => "Товары",
    "PAGER_SHOW_ALWAYS" => "N",
    "PAGER_TEMPLATE" => "arrows",
    "PAGER_DESC_NUMBERING" => "N",
    "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
    "PAGER_SHOW_ALL" => "Y",
    "AJAX_OPTION_ADDITIONAL" => "",
    "SEF_URL_TEMPLATES" => array(
        "sections" => "",
        "section" => "#SECTION_ID#/",
        "element" => "#SECTION_ID#/#ELEMENT_ID#/",
        "compare" => "compare.php?action=#ACTION_CODE#",
    ),
    "VARIABLE_ALIASES" => array(
        "compare" => array(
            "ACTION_CODE" => "action",
        ),
    )
    ),
    false
);?>
ответил 19 Янв, 14 от Dayran (840 баллов)
00 голосов
Условие
Код
"ACTIVE"=>"N"
кажется, не сработает в связи с логикой функции array_merge, которая используется в компоненте.
Попробуйте перестроиться без использования этого условия. Например, задайте активному элементу свойство "SCIDKA".
ответил 07 Май, 14 от Fenozipam (420 баллов)
00 голосов
Поместите
<pre>
<? print_r($arrFilter) ?>
</pre>

до и после вызова каталога, будете видеть содержимое фильтра в начале и в конце,
оч. помогает )
ответил 02 Сен, 14 от Feanor007 (420 баллов)

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

0 голосов
2 ответов
0 голосов
1 ответ
спросил 11 Сен, 13 от Wizap (160 баллов)
0 голосов
4 ответов
спросил 03 Июль, 13 от wogich (630 баллов)
0 голосов
2 ответов