Документация для разработчиков
Темная тема

Умный фильтр

Компонент подготавливает фильтр для выборки из инфоблока и выводит форму фильтра для фильтрации элементов.


Описание catalog.smart.filter

Компонент должен подключаться перед компонентом вывода элементов каталога, иначе список элементов фильтроваться не будет. Компонент стандартный, входит в дистрибутив модуля и содержит четыре шаблона: .default, bootstrap_v4, visual_horizontal и visual_vertical (последние два шаблона не поддерживаются, остались для сохранения совместимости).

В визуальном редакторе компонент расположен по пути Контент > Каталог > Умный фильтр.

Компонент относится к модулю Информационные блоки.

Внимание! В префильтре нельзя использовать вызов CIBlockElement::SubQuery.



Параметры

ПолеПараметрОписание
Источник данных
Тип инфоблокаIBLOCK_TYPEУказывается один из созданных в системе типов информационных блоков.
ИнфоблокIBLOCK_IDДля выбранного типа инфоблоков указывается идентификатор информационного блока, элементы которого будут отфильтрованы.
ID раздела инфоблокаSECTION_IDУказывается идентификатор раздела, фильтрация элементов которого должна выполняться. Можно не указывать, если задан Код раздела.

Примечание: при включенном режиме ЧПУ параметр настраивается в секции Управление адресами страниц.
Код разделаSECTION_CODEУказывается код раздела, фильтрация элементов которого должна выполняться. Можно не указывать, если задан ID раздела инфоблока.

Примечание: при включенном режиме ЧПУ параметр настраивается в секции Управление адресами страниц.
Имя входящего массива для дополнительной фильтрации элементовPREFILTER_NAMEЗадается имя переменной, в которую передается массив параметров из дополнительного фильтра. Если имя массива не указано, то будет использоваться значение по умолчанию.
Имя выходящего массива для фильтрацииFILTER_NAMEЗадается имя переменной, в которую передается массив параметров из фильтра. Если имя массива не указано, то будет использоваться значение по умолчанию.
Не отображать недоступные товарыHIDE_NOT_AVAILABLE[Y|N] При отмеченной опции будут скрыты товары, для которых общее количество на складах меньше либо равно нулю, включен количественный учет и не разрешена покупка при отсутствии товара.
Внешний вид
Цветовая темаTEMPLATE_THEMEЗадается цветовая схема для отображения фильтра. По умолчанию используется синяя схема (blue).
Вид отображения умного фильтраFILTER_VIEW_MODEЗадается вид отображения умного фильтра: вертикальный (VERTICAL) или горизонтальный (HORIZONTAL).
Позиция для отображения всплывающего блока с информацией о фильтрацииPOPUP_POSITIONЗадается позиция отображения всплывающего блока: слева (left) или справа (right).
Показывать количествоDISPLAY_ELEMENT_COUNT[Y|N] При отмеченной опции в всплывающем блоке будет показано количество отобранных элементов в соответствии с условиями фильтрации.
Управление адресами страниц
Включить поддержку ЧПУSEF_MODE[Y|N] При отмеченной опции включается поддержка ЧПУ и становятся доступными поля настройки ЧПУ.
Правило для обработкиSEF_RULEУказывается правило обработки вызова умного фильтра. Для создания правила следует использовать шаблоны, доступные по кнопке [...].

Например, компонент умного фильтра расположен на странице /examples/books/section.php, тогда правило может быть задано следующим образом:
/examples/books/#SECTION_ID#/filter/#SMART_FILTER_PATH#/apply/
где /filter/, /apply/ - выражения-ограничители, обязательно присутствующие в правиле (могут быть заменены на любые другие слова).
ID раздела инфоблокаSECTION_IDУказывается ID раздела инфоблока. Можно не задавать, если указан Код раздела или Путь из символьных кодов раздела.

Примечание: при отключенном режиме ЧПУ параметр настраивается в секции Источник данных.
Код разделаSECTION_CODEУказывается символьный код раздела инфоблока. Можно не задавать, если указан ID раздела инфоблока или Путь из символьных кодов раздела.

Примечание: при отключенном режиме ЧПУ параметр настраивается в секции Источник данных.
Путь из символьных кодов разделаSECTION_CODE_PATHЗадается путь из символьных кодов раздела инфоблока. Можно не задавать, если указан Код раздела или ID раздела инфоблока.
Блок ЧПУ умного фильтраSMART_FILTER_PATHЗадается блок с параметрами фильтрации. По умолчанию подставляется значение ={$_REQUEST["SMART_FILTER_PATH"]}.
Настройки кеширования
Тип кешированияCACHE_TYPEТип кеширования:
  • A - Авто + Управляемое: автоматически обновляет кеш компонентов в течение заданного времени или при изменении данных;
  • Y - Кешировать: для кеширования необходимо определить время кеширования;
  • N - Не кешировать: кеширования нет в любом случае.
Время кеширования (сек.)CACHE_TIMEВремя кеширования, указанное в секундах.
Учитывать права доступаCACHE_GROUPS[Y|N] При отмеченной опции будут учитываться права доступа при кешировании.
Дополнительные настройки
Сохранять установки фильтра в сессии пользователяSAVE_IN_SESSION[Y|N] При отмеченной опции установки фильтра будут сохраняться в сессии пользователя.
Имя массива с переменными для построения ссылок в постраничной навигацииPAGER_PARAMS_NAMEЗадается имя переменной, в которой передается массив с переменными для построения ссылок компонентом постраничной навигации.
Цены
Тип ценыPRICE_CODEУказывается тип цены для фильтрации элементов.
Показывать цены в одной валютеCONVERT_CURRENCY[Y|N] При отмеченной опции цены в фильтре будут отображаться в одной валюте, даже если для товаров они будут заданы в разных валютах. Будет доступно для заполнения дополнительное поле.
Валюта, в которую будут сконвертированы ценыCURRENCY_IDВыбор валюты, в которой будут отображаться цены.


Примечание: конвертация цен в умном фильтре работает только при созданном фасетном индексе.
Поддержка Яндекс Островов (экспорт фильтра в XML)
Включить поддержку Яндекс ОстрововXML_EXPORT[Y|N] При отмеченной опции будет включена поддержка Яндекс Островов.
ЗаголовокSECTION_TITLEУказывается поле, которое будет использоваться в качестве заголовка раздела.
ОписаниеSECTION_DESCRIPTIONЗадается поле, которое будет использоваться в качестве описания раздела.

Примечание: в компоненте имеется специальный параметр SHOW_ALL_WO_SECTION, принимающий значения Y|N. Если задано значение Y, то будут отображены все элементы инфоблока, если не указан раздел.



Пример вызова

<?$APPLICATION->IncludeComponent(
	"bitrix:catalog.smart.filter", 
	".default", 
	array(
		"COMPONENT_TEMPLATE" => ".default",
		"IBLOCK_TYPE" => "books",
		"IBLOCK_ID" => "6",
		"SECTION_ID" => "10",
		"SECTION_CODE" => "",
		"FILTER_NAME" => "arrFilter",
		"HIDE_NOT_AVAILABLE" => "N",
		"TEMPLATE_THEME" => "blue",
		"FILTER_VIEW_MODE" => "horizontal",
		"DISPLAY_ELEMENT_COUNT" => "Y",
		"SEF_MODE" => "Y",
		"CACHE_TYPE" => "A",
		"CACHE_TIME" => "36000000",
		"CACHE_GROUPS" => "Y",
		"SAVE_IN_SESSION" => "N",
		"INSTANT_RELOAD" => "Y",
		"PAGER_PARAMS_NAME" => "arrPager",
		"PRICE_CODE" => array(
			0 => "BASE",
		),
		"CONVERT_CURRENCY" => "Y",
		"XML_EXPORT" => "N",
		"SECTION_TITLE" => "-",
		"SECTION_DESCRIPTION" => "-",
		"POPUP_POSITION" => "left",
		"SEF_RULE" => "/examples/books/#SECTION_ID#/filter/#SMART_FILTER_PATH#/apply/",
		"SECTION_CODE_PATH" => "",
		"SMART_FILTER_PATH" => $_REQUEST["SMART_FILTER_PATH"],
		"CURRENCY_ID" => "RUB"
	),
	false
);?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024