Как вставить ввод строки в умный фильтр?

На сайте используется умный фильтр, но там нет по умолчанию отображения свойства в виде ввода строки. Как можно добавить фильтрацию по вводу строки? Что-то наподобие "=PROPERTY_NAME" => % . VALUE . %

При этом не изменяя код компонента, используя только шаблон компонента


Ответы (2 шт):

Автор решения: ssv32

Проверить не могу, примерно напишу.

Если речь про каталог товаров и умный фильтр в нём.

По идеи надо свойство элемента инфоблока настроить (это то что вы хотите искать у элементов инфоблока, если у вас такая задача), пометить как "Показывать в умном фильтре". Потом идёте “Магазин > Продукция > Настройки каталога” (вроде так) там можно настроить в каком виде показывать или нет свойства в умном фильтре, их порядок. Может там будет строка как раз. Если там нет такого, строки, то надо кастомить шаблон, добавить свое поле ввода.

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

Если кастомить всё таки надо, скорее всего просто добавится

Вы так хотите"=PROPERTY_NAME" => % . VALUE . %

А добавится что то типа <input type=”text” name=”=PROPERTY_NAME2_VALUE”> (тут NAME2 это свойство ваше, а NAME стандартное если по нему искать PROPERTY_ не надо указывать, а можно так "=NAME" ) Ну и смотрите глобальную перемену, после умного фильтра и до вашего каталога, подставилось или нет.

→ Ссылка
Автор решения: RecentForce99

Стандартного решения нет от битрикса на данный момент. Прописать name по типу arrFilter_id, PROPERTY_PROPNAME или PROPERTY_PROPNAME_VALUE не работают.

При нажатии на отправку фильтр передаёт все name в $_GET параметры и можно вставить их в вывод элементов.

Пример:

$arrFilter['PROPERTY_ID'] = $_GET['search_id'];

Теперь $arrFilter можно указать в news.list или catalog.section

Минус этого метода, который я нашёл - это дублирование в uri названия $_GET параметра, что можно исправить при помощи регулярных выражений или предварительным форматированием $_GET параметров, затем передать корректный урл без дублей в $arResult['FORM_ACTION] внутри умного фильтра.

→ Ссылка