B
B
BarneyGumble2020-07-06 14:36:09
1C-Bitrix
BarneyGumble, 2020-07-06 14:36:09

Why is Bitrix not displaying the results of filtering through a smart filter?

A smart filter has been added to the left menu of the catalog on the site. If you move the price slider, a pop-up field appears with the number of filtered products (which indicates that the smart filter is working)

KAxolZJfZpvWV2.jpg

But if you click on "Show" in this field that appears, then the link is clicked

http://site.ru/catalog/shoes/?set_filter=y&searchFilter_P1_MAX=723264
and on the page that opens, instead of the filtered 4 products, all the same products are displayed in the same quantity as before filtering.

Where to dig to make the filter work?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
P
PetrPo, 2020-07-06
@BarneyGumble

The code of the section.php file of the bitrix:catalog complex component of the author of the question:

spoiler

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
$this->setFrameMode(true);
?>
<?$APPLICATION->IncludeComponent(
  "bitrix:catalog.section.list",
  "",
  Array(
    "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
    "IBLOCK_ID" => $arParams["IBLOCK_ID"],
    "SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],
    "SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
    "DISPLAY_PANEL" => "N",
    "CACHE_TYPE" => $arParams["CACHE_TYPE"],
    "CACHE_TIME" => $arParams["CACHE_TIME"],
    "CACHE_GROUPS" => $arParams["CACHE_GROUPS"],

    "SECTION_URL" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["section"],
  ),
  $component
);?>


      <?
                if (CModule::IncludeModule("iblock")) {
                    $arFilter = array(
                        "ACTIVE" => "Y",
                        "GLOBAL_ACTIVE" => "Y",
                        "IBLOCK_ID" => $arParams["IBLOCK_ID"],
                    );
                    if (strlen($arResult["VARIABLES"]["SECTION_CODE"]) > 0) {
                        $arFilter["=CODE"] = $arResult["VARIABLES"]["SECTION_CODE"];
                    } elseif ($arResult["VARIABLES"]["SECTION_ID"] > 0) {
                        $arFilter["ID"] = $arResult["VARIABLES"]["SECTION_ID"];
                    }
                    $obCache = new CPHPCache;
                    if ($obCache->InitCache(36000, serialize($arFilter), "/iblock/catalog")) {
                        $arCurSection = $obCache->GetVars();
                    } else {
                        $arCurSection = array();
                        $dbRes = CIBlockSection::GetList(array(), $arFilter, false, array("ID"));
                        $dbRes = new CIBlockResult($dbRes);
                        if (defined("BX_COMP_MANAGED_CACHE")) {
                            global $CACHE_MANAGER;
                            $CACHE_MANAGER->StartTagCache("/iblock/catalog");

                            if ($arCurSection = $dbRes->GetNext()) {
                                $CACHE_MANAGER->RegisterTag("iblock_id_" . $arParams["IBLOCK_ID"]);
                            }
                            $CACHE_MANAGER->EndTagCache();
                        } else {
                            if (!$arCurSection = $dbRes->GetNext())
                                $arCurSection = array();
                        }
                        $obCache->EndDataCache($arCurSection);
                    }
                    ?>
                        <? $APPLICATION->IncludeComponent(
                            "bitrix:catalog.smart.filter",
                            ".default",
                            Array(
                                "PRICE_CODE" => $arParams["PRICE_CODE"],
                                "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
                                "IBLOCK_ID" => $arParams["IBLOCK_ID"],
                                "SECTION_ID" => $arCurSection['ID'],
                                "FILTER_NAME" => 'searchFilter',
                                "CACHE_TYPE" => $arParams["CACHE_TYPE"],
                                "CACHE_TIME" => $arParams["CACHE_TIME"],
                                "CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
                                "SAVE_IN_SESSION" => "N",
                                "XML_EXPORT" => "Y",
                                "SECTION_TITLE" => "NAME",
                                "SECTION_DESCRIPTION" => "DESCRIPTION",
                                'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"],
                                "TEMPLATE_THEME" => 'wood'
                            ),
                            $component,
                            array('HIDE_ICONS' => 'Y')
                        ); ?>
                    <? 
                } ?>




<?$APPLICATION->IncludeComponent(
  "bitrix:catalog.section",
  "",
  Array(
    "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"],
    "IBLOCK_ID" => $arParams["IBLOCK_ID"],
    "ELEMENT_SORT_FIELD" => $arParams["ELEMENT_SORT_FIELD"],
    "ELEMENT_SORT_ORDER" => $arParams["ELEMENT_SORT_ORDER"],
 		"PROPERTY_CODE" => $arParams["LIST_PROPERTY_CODE"],
    "META_KEYWORDS" => $arParams["LIST_META_KEYWORDS"],
    "META_DESCRIPTION" => $arParams["LIST_META_DESCRIPTION"],
    "BROWSER_TITLE" => $arParams["LIST_BROWSER_TITLE"],
    "INCLUDE_SUBSECTIONS" => $arParams["INCLUDE_SUBSECTIONS"],
    "BASKET_URL" => $arParams["BASKET_URL"],
    "ACTION_VARIABLE" => $arParams["ACTION_VARIABLE"],
    "PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"],
    "SECTION_ID_VARIABLE" => $arParams["SECTION_ID_VARIABLE"],
    "FILTER_NAME" => $arParams["FILTER_NAME"],
    "DISPLAY_PANEL" => $arParams["DISPLAY_PANEL"],
    "CACHE_TYPE" => $arParams["CACHE_TYPE"],
    "CACHE_TIME" => $arParams["CACHE_TIME"],
    "CACHE_FILTER" => $arParams["CACHE_FILTER"],
    "CACHE_GROUPS" => $arParams["CACHE_GROUPS"],
    "SET_TITLE" => $arParams["SET_TITLE"],
    "SET_STATUS_404" => $arParams["SET_STATUS_404"],
    "DISPLAY_COMPARE" => $arParams["USE_COMPARE"],
    "PAGE_ELEMENT_COUNT" => $arParams["PAGE_ELEMENT_COUNT"],
    "LINE_ELEMENT_COUNT" => $arParams["LINE_ELEMENT_COUNT"],
    "PRICE_CODE" => $arParams["PRICE_CODE"],
    "USE_PRICE_COUNT" => $arParams["USE_PRICE_COUNT"],
    "SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"],

    "PRICE_VAT_INCLUDE" => $arParams["PRICE_VAT_INCLUDE"],

    "DISPLAY_TOP_PAGER" => $arParams["DISPLAY_TOP_PAGER"],
    "DISPLAY_BOTTOM_PAGER" => $arParams["DISPLAY_BOTTOM_PAGER"],
    "PAGER_TITLE" => $arParams["PAGER_TITLE"],
    "PAGER_SHOW_ALWAYS" => $arParams["PAGER_SHOW_ALWAYS"],
    "PAGER_TEMPLATE" => $arParams["PAGER_TEMPLATE"],
    "PAGER_DESC_NUMBERING" => $arParams["PAGER_DESC_NUMBERING"],
    "PAGER_DESC_NUMBERING_CACHE_TIME" => $arParams["PAGER_DESC_NUMBERING_CACHE_TIME"],
    "PAGER_SHOW_ALL" => $arParams["PAGER_SHOW_ALL"],

    "OFFERS_CART_PROPERTIES" => $arParams["OFFERS_CART_PROPERTIES"],
    "OFFERS_FIELD_CODE" => $arParams["LIST_OFFERS_FIELD_CODE"],
    "OFFERS_PROPERTY_CODE" => $arParams["LIST_OFFERS_PROPERTY_CODE"],
    "OFFERS_SORT_FIELD" => $arParams["OFFERS_SORT_FIELD"],
    "OFFERS_SORT_ORDER" => $arParams["OFFERS_SORT_ORDER"],
    "OFFERS_LIMIT" => $arParams["LIST_OFFERS_LIMIT"],

    "SECTION_ID" => $arResult["VARIABLES"]["SECTION_ID"],
    "SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"],
    "SECTION_URL" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["section"],
    "DETAIL_URL" => $arResult["FOLDER"].$arResult["URL_TEMPLATES"]["element"],
  ),
  $component
);
?>


The FILTER_NAME parameter for the bitrix:catalog.smart.filter component is equal to searchFilter, while for the bitrix:catalog.section component it is taken from the parameters of the complex component $arParams["FILTER_NAME"] and it is not equal to searchFilter, therefore it does not work

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question