Плагин: замена логики модели Есть решение

Требуется изменить логику фильтра.

Требуется немножко изменить логику работы фильтра.

Нужна возможность настраивать логику фильтрации (и/или), на данный момент в любом случае стоит логика или.

1. В настройках купленного плагина я добавлю дополнительную ячейку в таблицу shop_feature (при установке плагина), так же сделаю возможность изменять значение ячейки в настройках плагина, ничего сложного тут нет, это не есть проблема.


2. Проблема Могу ли я плагином заменить логику фильтрации? Например что бы при открытии категории, фильтрация производилась не стандартной моделью фильтра, а обращалась к модели, которую я опишу в плагине?

Предположение

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

4 ответа

  • 1

    Только своим экшеном. Наследуйте всё от классов оригиналов. Копипастите без стыда. И меняйте лишь то, что нужно. Из недостатков - придется ручками заменить action форма фильтра.

  • 1
    Михаил Петров 9 марта 2020 23:23 #

    Фильтр должен уметь делать выбор и "ИЛИ" - для бренда, например и "И" для конкретных характеристик. Конечно, выбор большинства характеристик (производитель, размер, разрешение, память, ядра процессора, ОС и т.п. действительно нужны по "ИЛИ". А вот "И" требуется для разъемов, например, для слотов карт памяти или сим-карт и т.п. Это будет правильно для выбора любой техники от ноутбуков до сотовых телефонов или фотоаппаратов:

    Иду на Яндекс-маркет: Хоу выбрать ноутбук чтобы в нем был "И" порт Thunderbolt 3 "И" порт USB 2.0:

    Поставил на галку напротив Thunderbolt 3

    получил результат 723 модели. Ок

    Далее хочу сузить поиск и из них отобрать только те, в которых ЕЩЕ присутствует порт USB 2.0 - остальные модели меня не интересуют:

    Ого! Получаю 5867 моделей И? Что дальше? Как быть? Как теперь найти где И Thunderbolt 3 И USB 2.0? Зачем этот фильтр? Чем он мне помог сузить поиск?

    Вывод: не стоит слепо смотреть на всех и говорить: "Да у всех так сделано!" Если у всех так сделано, то зачем тогда вы вообще делаете еще один такой же посредственно-скопированный с других движок?! Где здравый смысл, где инновации, где забота о пользователе, в конце-концов, который потом этим будет пользоваться? А написать одно предложение в фильтрах с разъяснением что значит "И" и "ИЛИ" разве великая проблема?

    P.S. Ну и раз уж вы любители смотреть на крупные интернет-магазины обратите внимание на Ситилинк (citilink.ru) там как сделана правильная логика (всего из 1647 вариантов мне 5 из ноутбуков осталось выбрать с Thunderbird-3 и USB 2.0:

    ну или notik.ru (та же логика, действительно уменьшение выборки, а не вывод всего подряд где это есть)

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

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите