3690
42.41
52.71
за сайт
- Проверено Modstore
- Бесплатные будущие обновления
- Работа на тестовом и публичном домене
- 12 месяцев тех. поддержки
Это альтернатива всем известному компоненту 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. Нет встроенного поиска.
Перед установкой компонента убедитесь, что у вас установлен SendIt версии 2.0.0 или выше.
Преимущества
1. Не требует установки на сервер сторонних библиотек или сервисов типа ElasticSearch или Sphinx.
2. Высокая скорость фильтрации (менее 1 секунды при 100 000 товаров).
3. Простота настройки, при использовании стандартных классов.
4. Фильтрация по множественным значениям.
5. Умеет фильтровать пользователей.
6. Умеет фильтровать по полям тип migx с глубиной вложенности не более 1.
7. Кастомизация логики с помощью плагинов.
Особенности
1. Не умеет показывать количество совпадений по отдельным фильтрам.
2. Умеет блокировать значения фильтров, которые точно вернут пустой результат.
3. Возвращает результат в виде строки со списком id, но не готовый html или объект.
4. Нет встроенного поиска.
1.1.1-pl
- Исправлено: фильтр с несколькими значениями (name="key[]", штатный чанк ffcheckboxgroup) давал пустую выдачу, если тип фильтра в конфигурации был не «Множественный выбор». Массив уходил в условие «= :key», которое PDO не может выполнить: заход по ссылке «?key=1,2» работал, тот же фильтр через AJAX-форму — нет. Теперь набор значений всегда сравнивается через IN, независимо от типа.
- Несоответствие типа фильтра и разметки формы пишется в лог (уровень warning, тэги flatfilters/catalog/filter) — с ключом, типом и значениями, чтобы такие конфигурации было видно, а не искать причину пустой выдачи вручную.
- Пустой список значений больше не порождает «IN ()» — синтаксическую ошибку MySQL, роняющую весь запрос.
- Убраны PHP 8 warning'и «Undefined array key» при обращении к настройкам фильтра без значения по умолчанию.
1.1.0-pl
- Логирование переведено на mxLogger (единственный приёмник). Добавлен класс ffLogger (core/components/flatfilters/ffLogger.class.php), делегирующий записи сервису mxLogger; если он не установлен — один раз предупреждает в журнале MODX и молчит.
- Новые настройки: ff_debug (вкл/выкл, включено из коробки) + ff_log_level (минимальный уровень debug|info|warning|error, по умолчанию error). Консистентно с mxlogger.min_level.
- Блокировка недоступных значений — «excluding self» по строкам индекса (паритет с MODX 3): выбранная группа не блокируется, для MIGX-полей значения считаются корректно.
- Кэш значений фильтров пустой формы (сброс при переиндексации) — ускоряет заход на большой каталог.
- Сортировка sortby: whitelist допустимых ключей (защита ORDER BY от инъекции).
- Исправлена индексация MIGX-полей при имени TV с подчёркиванием.
- Диапазон дат: одна переданная граница = весь день (конец дня 23:59:59).
1.0.5-pl
- Добавил JS событие 'ff:before:reset'.
1.0.4-pl
- Переработал блокировку недоступных значений.
- Немного изменил логику работы обработчика ответов сервера в JS.
- Добавил в метаданные таблиц движок InnoDB.
1.0.3-pl
- Мелкие правки в JS.
- Добавил установку количества результатов при возвращении id из события ffOnAfterFilter.
- Добавил обнуление OFFSET при обновлении фильтров.
- Добавил проверку получения пользователя при индексации ресурсов.
- Добавил параметр excludeFilters вызова ffGetFilterForm для исключения фильтров без необходимости создавать новую конфигурацию.
1.0.2-pl
- Добавил системные настройки
ff_resource_typesиff_user_types.
1.0.1-pl
- Небольшая оптимизация JavaScript.
- Добавил обратные кавычки в запрос получения ключей фильтров.
- Добавил проверку на пустоту для полей extended.
1.0.0-pl
- Добавил системное событие ffOnBeforeSetIndexValue.
1.0.0-rc5
- Добавил системное событие ffOnAfterGetFilterValues.
- Сделал свойство $config в классе IndexingResources публичным.
- Добавил проверку существования объект в функции получения родителей.
- Переписал метод getParentIds в классе FlatFilters.
- Убрал вывод выбранного варианта сортировки в списке выбранных фильтров.
- Добавил преобразование json в массив для параметра sortby.
- Сделал свойство tokens публичным.
1.0.0-rc4
- Исправил ошибку в основном классе.
1.0.0-rc3
- Добавил резолвер на удаление таблиц.
- Добавил обработку события submit в JS.
- Добавил системные события ffOnBeforeFilter, ffOnAfterFilter и ffOnBeforeRender.
- Добавил проверку количества фильтров, чтобы не блокировать значения при 1 фильтре.
- Добавил в конфигурацию JS параметр hideClass для скрытия элементов.
- Добавил передачу пресетов в JS.
- Добавил системную настройку со списком пресетов.
- Добавил обработку изменения лимита на странице.
- Добавил индексирование пользователя при сохранении.
- Добавил в JS метод updateFilters(), позволяющий перефильтровать ресурсы.
- Изменил метод JS метод reset(), чтобы он триггерил метод update().
- Оптимизировал построение url.
- Удалил старые файлы
- Поменял сравнение $value на более строгое в методax getAllFiltersValue(), getFilterSql() и процессорах create и update в методе prepareDefaultFilters()
- Добавил событие ffOnBeforeSetFilterConditions()
- Вынес обновление урла в отдельную функцию
- Переделал методы индексации indexingDocument и indexingUser под общий формат входных данных - объекты.
- Добавил передачу парамеров вызова сниппета в чанки.
- Удалил подключение старого обработчика из процессора индексации.
- Исправил опечатку в методе decodeJsonValue класса IndexingResources.
- Добавил передачу пресета в обработчик пагинации через форму или поле.
- Добавил проверку на 0 в метод removeResourceIndex().
- Добавил проверку существования пользователя в плагин.
- Добавил системное событие ffOnBeforeGetFilterValues.
- Удалил из опций событий параметр FlatFilters.
1.0.0-beta2
- Добавил проверку наличия конфига migx.
1.0.0-beta
- Первая сборка.




Последние обсуждения в сообществе MODX.pro