Фильтры в 1с битрикс настройка
Компонент подготавливает фильтр для выборки из инфоблока и выводит форму фильтра для фильтрации элементов.
Описание catalog.smart.filter
Компонент должен подключаться перед компонентом вывода элементов каталога, иначе список элементов фильтроваться не будет. Компонент стандартный, входит в дистрибутив модуля и содержит три шаблона: .default, visual_horizontal и visual_vertical. (Последние два шаблона не поддерживаются, остались для сохранения совместимости.)
В визуальном редакторе компонент расположен по пути Контент > Каталог > Умный фильтр.
Компонент относится к модулю Информационные блоки.
Внимание! В префильтре нельзя использовать вызов CIBlockElement::SubQuery.Параметры
Поле | Параметр | Описание |
Источник данных | ||
---|---|---|
Тип инфоблока | IBLOCK_TYPE | Указывается один из созданных в системе типов информационных блоков. |
Инфоблок | IBLOCK_ID | Для выбранного типа инфоблоков указывается идентификатор информационного блока, элементы которого будут отфильтрованы. |
ID раздела инфоблока | SECTION_ID | Указывается идентификатор раздела, фильтрация элементов которого должна выполняться. Можно не указывать, если задан Код раздела. |
- A - Авто + Управляемое: автоматически обновляет кеш компонентов в течение заданного времени или при изменении данных;
- Y - Кешировать: для кеширования необходимо определить время кеширования;
- N - Не кешировать: кеширования нет в любом случае.
Пример вызова
Смотрите также
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Фильтр генерирует url вида arFilter_<ид свойства>_<некий код>.
Задача: взяв параметры фильтра из урл, использовать их для своих компонентов и фильтраций.
<некий код> = abs( crc32( "значение свойства" ) ) - т.е. это просто crc32 сумма от строки, взятая по модулю.
В базе, в таблице b_iblock_<ид нужного инфоблока>_index_val содержится весь перечень возможных значений. Высчитываем abs(crc32()) от каждого из значений, и формируем массив вида $arr = array( abs(crc32( "значение" ) ) => "значение", . ), и далее - получаем искомое текстовое представление $arr[ "<искомый crc32 код>" ].
Таким же образом, можно решить и обратную задачу, когда надо передать фильтру определенные параметры.
Было бы здорово, если бы в будующих версиях продукта, в этой таблице появился столбец с уже вычисленными кодами, чтобы не формировать каждый раз большие массивы из всей таблицы.
Читайте также: