[mSearch2] 1.2.0-rc Самостоятельная генерация фильтров
На днях в поддержке mSearch2 был задан вопрос:
То есть, речь идёт о бесконечном количестве свойств у товара, добавляемых в одно текстовое поле, и построении для них фильтров.
Вроде бы, продвинутые возможности расширения класса mFilter2 должны бы с этим справиться? Как оказалось — нет.
В данном случае нам нужно создавать новые фильтры на лету, как если бы их указали в параметре &filters=``. То есть, нам нужны совсем «виртуальные» поля, которых вообще нет, но для них как бы строятся фильтры.
Сделать это штатными средствами у меня не удалось, и тогда я немного изменил код mSearch2 так, чтобы реализовать возможность добавления фильтров, не указанных в &filters=``, из build методов, и не сломать при этом совместимость со старыми версиями.
Теперь вы можете просто обновить mSearch2 и писать в полях опций товаров miniShop2 строки через разделитель в формате «ключ==значение»:

И на выходе получите автоматически сгенерированные фильтры:

Остаётся только добавить нужные записи в системные словари и дело в шляпе! Как мне кажется, возможности для заведений свойств товара теперь открываются просто безграничные.
Значения без разделителей работают как обычно и не выносятся в отдельные фильтры. То есть, имеющиеся теги будут работать как и раньше.
Напоминаю, что до нового года в магазине Simple Dream скидки и mSearch2 можно купить всего 1492.5 руб.
Мне необходимо сделать на сайте фильтры по очень большому количеству параметров. Причем, наборы этих параметров отличаются в зависимости от категории.
Планируется что информация о товарах будет постоянно автоматом импортироваться через API этого поставщика на сайт который я делаю.
С другой стороны, волосы встают дыбом при мысли о ручной настройке такого количества дополнительных полей miniShop2 через механизм плагинов или TV.
Поэтому, пришла такая идея:
Все названия доп.параметров записывать в поле Теги, которое уже реализовано в miniShop2. Например, товару можно записать два таких тега: «Максимальное разрешение видеозаписи|2304x1296» и «Тип видеорегистратора|Стандартный».
Теперь осталось только придумать как сгруппировать эти тэги по первому полю (до разделителя "|") и создать из каждой группы отдельный фильтр.
То есть, речь идёт о бесконечном количестве свойств у товара, добавляемых в одно текстовое поле, и построении для них фильтров.
Вроде бы, продвинутые возможности расширения класса mFilter2 должны бы с этим справиться? Как оказалось — нет.
В данном случае нам нужно создавать новые фильтры на лету, как если бы их указали в параметре &filters=``. То есть, нам нужны совсем «виртуальные» поля, которых вообще нет, но для них как бы строятся фильтры.
Сделать это штатными средствами у меня не удалось, и тогда я немного изменил код mSearch2 так, чтобы реализовать возможность добавления фильтров, не указанных в &filters=``, из build методов, и не сломать при этом совместимость со старыми версиями.
Теперь вы можете просто обновить mSearch2 и писать в полях опций товаров miniShop2 строки через разделитель в формате «ключ==значение»:

И на выходе получите автоматически сгенерированные фильтры:

Остаётся только добавить нужные записи в системные словари и дело в шляпе! Как мне кажется, возможности для заведений свойств товара теперь открываются просто безграничные.
Значения без разделителей работают как обычно и не выносятся в отдельные фильтры. То есть, имеющиеся теги будут работать как и раньше.
Напоминаю, что до нового года в магазине Simple Dream скидки и mSearch2 можно купить всего 1492.5 руб.
Комментарии: 14
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
То есть первая часть свойства и есть заголовок.
А они будут работать как «И» или «ИЛИ»?
А вот этот должен починить. Пробуй обновиться.
Я сейчас попробовал, не получилось,
Выдало…
я так понимаю, что фильтр, как для цены таким образом создать нельзя?
А данное изменение позволяет добавлять из этих методов вообще новые фильтры, не указанные в параметре &filters.
для самого свойства price понятно, пишем:
а как быть, если я добавил:
а в tags товаров пишу res==1, для другого товара res==5 и т.д.
сейчас поля res у меня выводятся, как чекбоксы в фильтре. а есть ли возможность применить для res метод number и tpl'ы такие же, как и для price?
Автогенерация из опций по умолчанию делает только чекбоксы, а несколько фильтров полю указать нельзя.
Поэтому придётся делать свой кастомный класс фильтрации и там колдовать.
Подскажите, пожалуйста, как можно вывести только популярные фильтры тегов?
Например, где количество значений больше числа N или варианты ответа выдадут большой результат.
Буду рад если подскажете куда копать. Спасибо!