Битрикс24 не работает фильтр

Почему в Битриксе не работает smart filter?

Столкнулся с проблемой: перестал работать смарт-фильтр каталога Битрикс (ajax-запрос возвращает пустой ответ, см. скриншот)
То есть после прощёлкивания опций/ ползунков фильтра происходит запрос к ajax, но не отрисовывается всплывающая подсказка «Выбрано 12» рядом с фильтром. Также после нажатия кнопки «Применить» ничего не происходит.

Пробовал менять флаг «AJAX_FILTER_CATALOG» и на «N», и на » Y», перетирал кэш, перестраивал фасетный индекс — ничего не помогло.
Даже обращался к инструкции https://aspro.ru/kb/article/33/ — тоже безрезультатно.

Фрагмент настроек модуля «Каталог» /catalog/index.php

Подскажите, куда смотреть? Возможно, что-то с ajax-обработчиком (не могу найти сам файл-обработчик)

  • Вопрос задан 28 нояб. 2020
  • 524 просмотра

происходит запрос к ajax, но не отрисовывается всплывающая подсказка «Выбрано 12» рядом с фильтром.

Ну так при ajax она и не должна отрисовываться

Пробовал менять флаг «AJAX_FILTER_CATALOG» и на «N», и на » Y»

Ни о чем не говорт, нестандартный параметр, обращайся к разработчикам этого костыля

Возможно, что-то с ajax-обработчиком (не могу найти сам файл-обработчик)

Сам обработчик в js файле шаблона, стандартно другх вариантов я не вижу. Но судя по параметру AJAX_FILTER_CATALOG, все может быть, я не экстрасенс. чтобы знать где у тебя обработчик

Для правильной работы фильтра в ajax режиме, должны быть указаны 2 параметра

Источник

Умный фильтр не выдает результат.

Добрый день, уважаемые знатоки Bitrix!

Пожалуйста, помогите решить проблему! Наверное, что-то с URL.

Поставила компонент Каталог , ставлю Умный фильтр отдельно слева на сайте. Свойства инфоблока настроены на фильтр.
В принципе фильтр делает выборку по свойствам, но при нажатии на Показать, остается на той же странице, где делался запрос и ничего не показывает.

В настройках типа инфоблока стоят такие пути:

Инфоблок: #SITE_DIR#/aaaa/
Раздел: #SITE_DIR#/aaaa/#SECTION_CODE#/
Элемент: #SITE_DIR#/aaaa/#SECTION_CODE#/#ELEMENT_CODE#/

Теперь настройки компонента Каталог:

Каталог ЧПУ (относительно корня сайта): /aaaa/
Раздел: #SECTION_CODE#/
Детальная информация: #SECTION_CODE#/#ELEMENT_CODE#/
URL раздела для умного фильтра: #SECTION_ID#/filter/#SMART_FILTER_PATH#/apply/

Это надо создавать раздел filter? Создала раздел aaaa/filter/.

Настройки Умного фильтра есть вот такое ID раздела инфоблока: =

И что дальше делать? Видимо я что-то не сделала в настройках фильтра или сделала не то вообще. В PHP не сильна пока, к сожалению. Почитала документацию по фильтру, но мне не все понятно. Что надо ставить в Правило для обработки, Блок ЧПУ умного фильтра.

Ни в документации, ни в учебном курсе, ни в примере сайта в виртуальной лаборатории я не встречала пункт в компоненте Каталог «URL раздела для умного фильтра: #SECTION_ID#/filter/#SMART_FILTER_PATH#/apply/»

Продолжаю разговор сама с собой .))

Обратила внимание, что все свойства отображаются корректно, только при выборе свойств ярлычок сбоку показывает 0 товаров и при нажатии на кнопку «Показать» — ничего не происходит, соответственно. Где-то прочитала о совпадении FILTER_NAME у компонентов Умный фильтр и Каталог, у меня он одинаков arrFilter. Что может быть еще? Куда копать?

И что нужно указывать в «Поле» настройки фильтра в компоненте Каталог?

Очень нужна помощь.

Спасибо за отклик. Я уже думала, что никто не отзовется.
Продолжаю рассуждать. Если у кого будет желание, поправьте меня, пожалуйста.

Для уточнения — я поставила совсем свежую версию 1С-Bitrix УС. Пишу для того, что мне кажется, что документация и описание программы на сайте автора как-то не везде соответствуют текущей версии.

Провела эксперимент. Сделала новый инфоблок со свойствами, разделами, элементами. Поставила компонент «Каталог», в котором включила показ фильтра.
Прописала настройки :
Фильтр: arrFilter
Каталог ЧПУ (относительно корня сайта): /инфоблок/
Список разделов: /инфоблок/
Раздел: #SECTION_CODE#/
Детальная информация: #SECTION_CODE#/#ELEMENT_CODE#/
Url раздела для умного фильтра: #SECTION_CODE#/filter/#SMART_FILTER_PATH#/apply/

И о, радость! Фильтр заработал. НО! Я так понимаю, что это встроенный фильтр в компонент Каталог, он не «Умный», хотя работает так, как мне хотелось. Но опять НО. Фильтр появляется только на странице со списком элементов. Хотелось бы, чтобы появлялся на странице списка разделов. Для этого ставится Умный фильтр?

Попробовала сделать как написано https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=42&LESSON_ID=5167 .
Но в шаблоне компонента /bitrix/templates/ /components/bitrix/catalog/ ­шаблон_компонента>/section.php я не нашла блок фильтра вообще. Подставила код Умного фильтра — он появился на странице списка разделов, но не работает. А на странице списка элементов остался встроенный фильтр.

Пожалуйста, прокомментируйте мои действия.

Цитата
Марина написал:
А обязательно тип инфоблока и инфоблок должны называться Каталог / catalog?

Нет, это может быть и вообще абстрактный кусок ЧПУ пути, не какого отношения к каталогу не имеющего.

Вы бы название компонентов указали которые пытаетесь завести, а то по описанию складывается ощущение, что вы пытаетесь натравить фильтр на комплексный компонент каталога. И он не заводится, что в принципе логично.

Комплексный компонент уже включает в свой набор фильтр, который включается одной галочкой в настройке компонента, и если не чего не трогать сразу заработает. А вот отдельный к комплексному прикрутить, без знаний не тривиальная задача.

Как верно пишет Максим, если требуется собрать всю связку самостоятельно, для большей гибкости, то нужно брать отдельные компоненты и собирать все на них.

Я сейчас готовлю статью по ЧПУ, там я как раз показываю сборку разделов с подразделами, на основе отдельных компонентов, там не будет умного фильтра, но общий принцип раздельного создания будет такой же, вам останется на нужной странице разместить умный фильтр как отдельный компонент и настроить его.

Юрий Волошин «Я сейчас готовлю статью по ЧПУ. «

Очень интересная статья, но с нетерпением буду ждать вторую часть.)))

Наконец, у меня наступила ясность в работе комплексного компонента «Каталог» и, соответственно, встроенного Умного фильтра.
Но теперь появились новые проблемы. По тех. заданию фильтр должен находиться в левой части страницы, что не предусмотрено компонентом.
Нашла в Инете изумительный ролик по переносу УФ http://www.youtube.com/watch?v=Rbez1ep9TUE . Правда, описан метод для 14 версии Битрикса.
Сделала по второму методу — отложенные функции, покопавшись в 15-ой. Фильтр перенесся, НО при указании параметров для поиска становится неактивной кнопка «Показать». При сбросе условий становится опять активной.
Вот фрагмент кода шаблона (жирным шрифтом выделила мои вставки):

$this->SetViewTarget(«my_filter»);
$APPLICATION->IncludeComponent(«bitrix:catalog.smart.filter»,»»,array(
«IBLOCK_TYPE» => $arParams[«IBLOCK_TYPE»],
«IBLOCK_ID» => $arParams[«IBLOCK_ID»],
«SECTION_ID» => $arCurSection[‘ID’],
«FILTER_NAME» => $arParams[«FILTER_NAME»],
«PRICE_CODE» => $arParams[«PRICE_CODE»],
«CACHE_TYPE» => $arParams[«CACHE_TYPE»],
«CACHE_TIME» => $arParams[«CACHE_TIME»],
«CACHE_GROUPS» => $arParams[«CACHE_GROUPS»],
«SAVE_IN_SESSION» => «N»,
«FILTER_VIEW_MODE» => $arParams[«FILTER_VIEW_MODE»],
«XML_EXPORT» => «Y»,
«SECTION_TITLE» => «NAME»,
«SECTION_DESCRIPTION» => «DESCRIPTION»,
‘HIDE_NOT_AVAILABLE’ => $arParams[«HIDE_NOT_AVAILABLE»],
«TEMPLATE_THEME» => $arParams[«TEMPLATE_THEME»],
‘CONVERT_CURRENCY’ => $arParams[‘CONVERT_CURRENCY’],
‘CURRENCY_ID’ => $arParams[‘CURRENCY_ID’],
«SEF_MODE» => $arParams[«SEF_MODE»],
«SEF_RULE» => $arResult[«FOLDER»].$arResult[«URL_TEMPLATES»][«smart_filter»],
«SMART_FILTER_PATH» => $arResult[«VARIABLES»][«SMART_FILTER_PATH»],
«PAGER_PARAMS_NAME» => $arParams[«PAGER_PARAMS_NAME»],
),
$component,
array(‘HIDE_ICONS’ => ‘Y’)
);
$this->EndViewTarget();
?>

Вставка по месту: ShowViewContent(«my_filter»);?>

Может подскажет кто, в чем дело?

Лихо взялась, Битрикс еще не снится по ночам?

Причина в том, что $this-> это как раз в компоненте использовать нужно, а чтоб компонент целиком запихнуть воспользуйтесь

Нет, не снится. Я по ночам работаю.

Простой способ тоже еще не совсем прост для меня. )

Но, подумав, решила, что этот путь тоже не очень подходит, т.к. я хотела средствами html поставить фильтр слева, что означает, что на других «страницах » компонента Каталог появляется пустое место. А ставить в шаблон сайта тоже нельзя. Т.е. надо делать отдельный шаблон сайта.

Подожду вторую часть статьи Волошина и потом буду принимать решение.

Добрый день!
Пока писала вопрос, решила проблему )))
Оставлю, вдруг пригодится.
Внедряю Умный фильтр на странице с комплексным компонентом.
Код фильтра помещаю в section.php (код в следующем сообщении)

FILTER_NAME у каталога и смарт фильтра равны «»

В комплексном компоненте Каталог ВКЛЮЧЕН фильтр. Просто галочку поставить.

Источник

Читайте также:  Как правильно настроить amd link
Оцените статью