[FlatFilters 1.0.0-pl] Первый релиз.
Приветствую, коллеги. Наконец-то довёл до ума свой компонент фильтрации. Он прошёл модерацию и доступен по ссылке. К сожалению, бесплатно выложить не удалось из-за правил modstore. К компоненту есть достаточно подробная документация.
Для тех, кто впервые слышит про FlatFilters поясню: это альтернатива всем известному компоненту mSearch2. Компонент предлагает другой подход к фильтрации, что приводит как к значительному увеличению скорости фильтрации, так и к ряду особенностей. Это некое компромиссное решение между mSearch2 и сервисами типа ElasticSearch или Sphinx.
Перед установкой компонента убедитесь, что у вас установлен SendIt версии 2.0.0 или выше.
Преимущества
1. Не требует установки на сервер сторонних библиотек или сервисов типа ElasticSearch или Sphinx.
2. Высокая скорость фильтрации (менее 1 секунды при 100 000 товаров).
3. Простота настройки, при использовании стандартных классов.
4. Фильтрация по множественным значениям.
5. Умеет фильтровать пользователей.
6. Умеет фильтровать по полям тип migx с глубиной вложенности не более 1.
7. Кастомизация логики с помощью плагинов.
Особенности
1. Не умеет показывать количество совпадений по отдельным фильтрам.
2. Умеет блокировать значения фильтров, которые точно вернут пустой результат.
3. Возвращает результат в виде строки со списком id, но не готовый html или объект.
4. Нет встроенного поиска.
UPD: Добавил страницу с mFilters2. Там только фильтры по цене и по родителю, но чтобы понять разницу этого достаточно.
Спасибо за внимание!
Для тех, кто впервые слышит про FlatFilters поясню: это альтернатива всем известному компоненту mSearch2. Компонент предлагает другой подход к фильтрации, что приводит как к значительному увеличению скорости фильтрации, так и к ряду особенностей. Это некое компромиссное решение между mSearch2 и сервисами типа ElasticSearch или Sphinx.
Перед установкой компонента убедитесь, что у вас установлен SendIt версии 2.0.0 или выше.
Преимущества
1. Не требует установки на сервер сторонних библиотек или сервисов типа ElasticSearch или Sphinx.
2. Высокая скорость фильтрации (менее 1 секунды при 100 000 товаров).
3. Простота настройки, при использовании стандартных классов.
4. Фильтрация по множественным значениям.
5. Умеет фильтровать пользователей.
6. Умеет фильтровать по полям тип migx с глубиной вложенности не более 1.
7. Кастомизация логики с помощью плагинов.
Особенности
1. Не умеет показывать количество совпадений по отдельным фильтрам.
2. Умеет блокировать значения фильтров, которые точно вернут пустой результат.
3. Возвращает результат в виде строки со списком id, но не готовый html или объект.
4. Нет встроенного поиска.
UPD: Добавил страницу с mFilters2. Там только фильтры по цене и по родителю, но чтобы понять разницу этого достаточно.
Спасибо за внимание!
Поблагодарить автора
Отправить деньги
Комментарии: 41
Интересно посмотреть сравнение по скорости с mFilter2
Может быть на досуге, когда будет настроение, добавлю на део-сайте страницу с mFilter2.
Скорость впечатляет на демо сайте. Скажите, пожалуйста, а modx3, когда приблизительно будет поддерживать ваш замечательный компонент?
Чисто теоретически может быть так, что уже поддерживает, так как вроде бы там нет ничего такого, что не поддерживалось бы в Modx 3. Но я не проверял и до конца лета вряд ли буду этим заниматься.
Здорово, надеюсь MODX 3 будет поддерживаться. По сути только отсутствие mFilter останавливает от перехода на modx3.
А отсутствие miniShop не останавливает?
Неа, я от минишопа только галерею и связи товаров использую. Это можно и без него реализовать.
Мельком глянул документацию, но не нашел ответа.
Можно ли фильтровать по TV?
…
Все нашел, вроде умеет фильтровать по TV))
Можно ли фильтровать по TV?
…
Все нашел, вроде умеет фильтровать по TV))
Умеет, даже по ТВ типа migx с уровнем вложенности не более одного, т.е. migx в migx не потянет. Ну и плагинами вообще можно всё что угодно навертеть.
Давно был нужен. А то mfilter на большом кол-ве товаров просто в шоке от происходящего. И такое ощущение что он не кеширует ничего(( Чисто ИМХО, а то накинутся
Хочу ещё раз подчеркнуть, это компромиссное решение, при разработке в приоритет ставилась скорость работы и простота интеграции, в ущерб некоторой функциональности.
А какой функциональности идет ущерб, кроме того что не отображается кол-во результатов?
Больше вроде никакой)))
Вам осталось поиск еще запилить) Корзину сделали) Фильтры сделали) Класс
Поиск нет смысла пилить. Если делать в рамках Modx, то ничего лучше phpMorphy не появилось, а эту библиотеку использует mSearch2, вряд ли я сделаю лучше. А если использовать ElasticSearch, то это уже решение не для всех, а только для тех у кого VPS.
Можно ее же использовать для комплекса
А не могли бы вы сказать, через что вы собираете компоненты? Через siteextra?
Спасибо!
Здравствуйте, звучит заманчиво но перед тем как купить ваш плагин хочу понять 2 вопроса:
- Совместим ли он с Polylang?
- Нужно ли делать индексацию каждый раз при создании нового ресурса?
Совместим ли он с Polylang?Polylang не умеет переводить значения опций, а переводы названий фильтров можно сделать через управление словарями.
Нужно ли делать индексацию каждый раз при создании нового ресурса?Если ресурс создаётся через админку или стандартный процессор — нет не нужно.
Я не использую minishop, фильтр нужен только для статей-ресурсов, фильтрация нужна будет по ТВ полям которые polylang кажется переводит. И да — создаваться ресурсы будут через админку стандартным путем. Спасибо за ответ!
Я не использую minishop, фильтр нужен только для статей-ресурсов, фильтрация нужна будет по ТВ полям которые polylang кажется переводит.В любом случае, если это текстовые значения индексировать их плохая идея, так как по факту значение одно, просто на разных языках. Я бы заменил ключом, а переводы добавил в словари.
Polylang не умеет переводить значения опций, а переводы названий фильтров можно сделать через управление словарями.
Значения опций на другом языке указывается в локализации, просто заполняются на нужном языкеСкрин: disk.yandex.ru/d/rzQVfNHcuQmSAg
а подскажите, пожалуйста, если установлен mSearch2 (для поиска) ваше решение можно использовать параллельно, только для фильтрации? И еще, не нашел в документации слов про «опции». С опциями товаров будет работать? Или у вас все на TV сделано? Так же, если можно, добавьте пожалуйста несколько скриншотов из настройки компонента в документацию:
нажав жёлтую (или оранжевую или вторую слева в колонке Действия)Мне не хватает силы своего воображения, чтобы представить это. Растерялся :_(
Теперь добавим блок для показа метаинформации: количество результатов, выбранные фильтры, время фильтрации.А можно простецкий пример на fenom? Сэкономит время.
1. да, использовать для фильтрации и для поиска возможно, будет работать через параметр &parents
2. да, фильтровать по опциям можно — параметр filters, вот пример парочки фильтров
2. да, фильтровать по опциям можно — параметр filters, вот пример парочки фильтров
&filters=`ms|price:number,msoption|razmer,tv|fil_top_row
по остальному — смотрите статьи в интернете, одно из лучших умений начинающего программиста — гугление
я извиняюсь, не глянул что ветка про другой компонент совсем, весь ответ про стандартный mfilter
не нашел как скрыть/убрать комментарий — и время редактирования тоже истекло(
не нашел как скрыть/убрать комментарий — и время редактирования тоже истекло(
спасибо за ответ. На счет «гугления» — я пытаюсь делать на zoomx. Некоторые вещи не смог победить с ним, вроде vendor.name в чанке. Все время выводит единицу. Как только не пробовал. Да и тот же mSearch2, не получилось у меня вывести количество результатов. Гуглил, использовал и total, и totalvar…
Я предполагаю, что если бы многие были чуточку «добрее», не составило бы труда сделать примеры или дать больше информации. Кроме того, зачем я, или кто-нибудь еще будет писать в поддержку автору материала, когда перед глазами будут готовые примеры хотя бы на fenom. Но видимо, им нравится постоянно отвечать, вместо того, чтобы сделать подробную документацию один раз :)
Я предполагаю, что если бы многие были чуточку «добрее», не составило бы труда сделать примеры или дать больше информации. Кроме того, зачем я, или кто-нибудь еще будет писать в поддержку автору материала, когда перед глазами будут готовые примеры хотя бы на fenom. Но видимо, им нравится постоянно отвечать, вместо того, чтобы сделать подробную документацию один раз :)
ваше решение можно использовать параллельноМожно
С опциями товаров будет работать?Это настолько само собой разумеется, что я не стал писать.
Мне не хватает силы своего воображения, чтобы представить это.А зачем это воображать? Установите компонент на тестовом сайте на modhost и посмотрите.
А можно простецкий пример на fenom?Читайте документацию
Честное слово. Вашему компоненту не хватает примера использования.
Например как его прикрутить к шаблону каталог и что бы он работал во всех уровнях влажности. Это же самая базовая необходимость. Ну что бы люди могли сравнить его например с mfilter2. Вообще, чтобы писать документацию, как мне кажется, нужен скил. В данном варианте получается человек устанавливает ваш компонент и сидит страдает, т.к. функционал не заводится из коробки) Любому продукту важно продвижение или демонстрация как это сделать. Или логика как у похожих дополнений. Тут к сожалению такого нет. Надеюсь когда у вас будет время вы сможете что-нибудь такое придумать.
Наверно если на странице modstore будет написано Быстрый старт:
Сделайте это это и это и все у вас в каталоге рабоатет фильтр, он будет более привлекательным покупателям.
Я понимаю, что вам, как создателю и кто в нем уже как следует разобрался все кажется простым, но это к сожалению не так) А отнимать ваше время, хоть вы в чате отлично помогаете, не хочется.
Если его попробовало 30 человек и все с легкостью его используют — вопросов нет. Значит проблема во мне.
Например как его прикрутить к шаблону каталог и что бы он работал во всех уровнях влажности. Это же самая базовая необходимость. Ну что бы люди могли сравнить его например с mfilter2. Вообще, чтобы писать документацию, как мне кажется, нужен скил. В данном варианте получается человек устанавливает ваш компонент и сидит страдает, т.к. функционал не заводится из коробки) Любому продукту важно продвижение или демонстрация как это сделать. Или логика как у похожих дополнений. Тут к сожалению такого нет. Надеюсь когда у вас будет время вы сможете что-нибудь такое придумать.
Наверно если на странице modstore будет написано Быстрый старт:
Сделайте это это и это и все у вас в каталоге рабоатет фильтр, он будет более привлекательным покупателям.
Я понимаю, что вам, как создателю и кто в нем уже как следует разобрался все кажется простым, но это к сожалению не так) А отнимать ваше время, хоть вы в чате отлично помогаете, не хочется.
Если его попробовало 30 человек и все с легкостью его используют — вопросов нет. Значит проблема во мне.
Например как его прикрутить к шаблону каталог и что бы он работал во всех уровнях влажности.Вот тут написано как подготовить шаблон, а вот тут как настроить конфигурацию.
А отнимать ваше время, хоть вы в чате отлично помогаете, не хочется.Я с радостью помогаю всем, кто желает разобраться, так что если есть конкретные вопросы милости прошу в Телеграм.
Артур. По твоему не логично что если ты вставляешь код из документации в раздел Каталог, то он должен работать и в каталоге и в его подкатегориях? Дополнение не только должно быть классным, но и удобным.
Я без претензий. Я наоборот хотел помочь.
Я без претензий. Я наоборот хотел помочь.
По твоему не логично что если ты вставляешь код из документации в раздел Каталог, то он должен работать и в каталоге и в его подкатегориях?Учитывая концепцию компонента, нет нелогично, в подкатегориях могут быть разные наборы фильтров и разные конфигурации соответственно.
Кроме того, у подкатегорий может быть другой шаблон, а все шаблоны, в которых необходимо вывести фильтры, нужно перечислить в системной настройке ff_tpls.
Так «Могут быть разные работы фильтров» это вторично. Если пользователю нужны разные наборы фильтров, то как раз логично что он будет настраивать это.
Сейчас логика такая: если у нас в категории товаров есть подкатегории вашему компоненту пофиг на это, и он товары из них не подтягивает.
А логично как раз то, что он будет учитывать подкатегории и фильтровать все эти товары. А если нам нужно что бы использовалось какое-то там другое правило мы как раз можем указать другую конфигурацию, которая как раз будет иметь какое-то там кастомное поведение.
Не буду больше утомлять. Если тебя как автора все устраивает, то мои рассуждения ни к чему.
Сейчас логика такая: если у нас в категории товаров есть подкатегории вашему компоненту пофиг на это, и он товары из них не подтягивает.
А логично как раз то, что он будет учитывать подкатегории и фильтровать все эти товары. А если нам нужно что бы использовалось какое-то там другое правило мы как раз можем указать другую конфигурацию, которая как раз будет иметь какое-то там кастомное поведение.
Не буду больше утомлять. Если тебя как автора все устраивает, то мои рассуждения ни к чему.
Сейчас логика такая: если у нас в категории товаров есть подкатегории вашему компоненту пофиг на это, и он товары из них не подтягивает.Если у тебя не подтягиваются товары из подкатегорий, проверь включена ли карта ресурсов. Без неё не будет работать метод getChildIds().
Добрый день! Перед покупкой хочу уточнить два момента
Совместим ли компонент с php 8+,
Совместим ли компонент с seofilter?
Совместим ли компонент с php 8+,
Совместим ли компонент с seofilter?
Приветствую, не тестировал ни одно, ни другое, так что не рекомендую покупать.
Артур, добрый день!
Подскажите пожалуйста есть ли возможность объединить товары по полю. Сейчас попробую объяснить. Нужно что бы фильтр по умолчанию отображал несколько товаров как один. Например у всех этих товаров есть поле group и допустим значение 11231, то надо что бы он показывался один, но при фильтрации, показывались все товары. Вот пример реализации ссылка. Я ни как не могу сообразить, как реализовать эту логику.
Подскажите пожалуйста есть ли возможность объединить товары по полю. Сейчас попробую объяснить. Нужно что бы фильтр по умолчанию отображал несколько товаров как один. Например у всех этих товаров есть поле group и допустим значение 11231, то надо что бы он показывался один, но при фильтрации, показывались все товары. Вот пример реализации ссылка. Я ни как не могу сообразить, как реализовать эту логику.
Я не понимаю, что вы хотите сделать, но есть мнение что это какой-то велосипед. По ссылке, я вижу каталог товаров с модификациями по цвету. FlatFilters умеет фильтровать по множественным значениям, т.е. вы можете указать товару несколько цветов и потом отфильтровать только те, которые имеют белый цвет.
Если вы обратите внимание на карточку товара в каталоге, то в ней есть цвета и при фильтрации, грузится эта же карточка товара, только уже с другим заголовком и цветом. Как я понял, это можно сделать с помощью MsOptionsPrice2 и MSearch2. Ну пока у меня какие то проблемы, пытаюсь решить их) А ваш компонент я так понимаю не работает с фильтрацией по опциям и seo фильтр так и не интегрировали. Спасибо за ответ.
Хотя скорее всего там не так реализовано. Там все товары отдельно сделаны, но в фильтре объединены. Я сделал такой плагин (объединяет и выводит товары по полю), но не знаю как его связать с фильтром.
Хотя скорее всего там не так реализовано. Там все товары отдельно сделаны, но в фильтре объединены. Я сделал такой плагин (объединяет и выводит товары по полю), но не знаю как его связать с фильтром.
Добрый день! Подскажите пожалуйста при фильтрации если использовать msoptionprice2 будут выбираться нужные опции, например, если выбрал цвет белы, то будут выводиться товары с выбранной опцией белого цвета (у товара может несколько цветов).
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.