Skip to content
mFilter
mFilter
Фасетная фильтрация для MODX 3 с поддержкой SEO URL
  1. Компоненты
  2. mFilter
  3. Системные настройки

Системные настройки

Все настройки имеют префикс mfilter. и находятся в пространстве имён mfilter.

Пути

НастройкаПо умолчаниюОписание
mfilter.core_path{core_path}components/mfilter/Путь к ядру компонента
mfilter.assets_path{assets_path}components/mfilter/Путь к ассетам
mfilter.assets_url{assets_url}components/mfilter/URL ассетов

URL и SEO

НастройкаПо умолчаниюОписание
mfilter.seo_urls_enabledtrueВключить SEO-friendly URL
mfilter.url_separator_Разделитель ключа и значения в URL (brand_apple)
mfilter.values_separator-or-Разделитель множественных значений (red-or-blue)
mfilter.trailing_slashtrueДобавлять слеш в конце URL

Примеры URL

С настройками по умолчанию:

/catalog/brand_apple/color_red-or-blue/price_1000-5000/

С url_separator = - и values_separator = ,:

/catalog/brand-apple/color-red,blue/price-1000-5000/

Фильтрация

НастройкаПо умолчаниюОписание
mfilter.default_limit20Количество элементов на странице по умолчанию
mfilter.max_limit100Максимальное количество элементов на странице
mfilter.default_sortpagetitleПоле сортировки по умолчанию
mfilter.default_sortdirASCНаправление сортировки по умолчанию

SEO оптимизация

НастройкаПо умолчаниюОписание
mfilter.seo_noindex_filteredfalseДобавлять noindex для всех отфильтрованных страниц
mfilter.seo_noindex_multipletrueДобавлять noindex при выборе нескольких значений одного фильтра
mfilter.seo_canonical_basetrueCanonical указывает на базовую страницу категории
mfilter.seo_max_filters3Максимум активных фильтров для индексации

Логика noindex

seo_noindex_filtered = true     → noindex для любой фильтрации
seo_noindex_multiple = true     → noindex для color_red-or-blue (множественный выбор)
seo_max_filters = 3             → noindex если активно больше 3 фильтров

Кэширование

НастройкаПо умолчаниюОписание
mfilter.cache_enabledtrueВключить кэширование
mfilter.cache_lifetime3600Время жизни кэша результатов (секунды)
mfilter.cache_router_lifetime86400Время жизни кэша роутера URL (секунды)

Очистка кэша

Кэш автоматически очищается при:

  • Сохранении ресурса с настроенными фильтрами
  • Очистке кэша MODX
  • Изменении набора фильтров в админке

Ручная очистка: mFilter → Обслуживание → Очистить кэш

Словоформы

НастройкаПо умолчаниюОписание
mfilter.morpher_api_key``API ключ сервиса Morpher для автогенерации словоформ
mfilter.wordforms_auto_generatetrueАвтоматически генерировать словоформы

Morpher API

Для автоматического склонения слов можно использовать Morpher API:

  1. Зарегистрируйтесь на сайте
  2. Получите API ключ
  3. Укажите его в настройке mfilter.morpher_api_key

Бесплатный лимит: 1000 запросов в день.

Слаги

НастройкаПо умолчаниюОписание
mfilter.slugs_auto_generatetrueАвтоматически генерировать слаги для значений
mfilter.slugs_transliteratetrueТранслитерировать кириллицу в латиницу

Примеры слагов

Значениеslugs_transliterateСлаг
Красныйtruekrasnyj
Красныйfalseкрасный
Apple iPhonetrueapple-iphone

Отладка

НастройкаПо умолчаниюОписание
mfilter.debug_profilerfalseВключить профайлер для отладки производительности

При включении профайлера в ответ AJAX добавляется секция profiler:

json
{
  "success": true,
  "data": { ... },
  "profiler": {
    "total_time": 0.045,
    "queries": 12,
    "memory": "2.5 MB"
  }
}

Фронтенд

НастройкаПо умолчаниюОписание
mfilter.register_frontendtrueАвтоматически подключать CSS/JS на фронтенде
mfilter.auto_submittrueАвтоматическая отправка формы при изменении фильтров
mfilter.auto_submit_delay300Задержка автоотправки (мс)

Список фронтенд-ассетов

НастройкаОписание
mfilter.frontend_assetsJSON массив CSS/JS файлов для подключения

По умолчанию:

json
[
    "[[+cssUrl]]web/mfilter.css",
    "[[+jsUrl]]web/core/ApiClient.js",
    "[[+jsUrl]]web/core/FilterAPI.js",
    "[[+jsUrl]]web/modules/hooks.js",
    "[[+jsUrl]]web/mfilter.headless.js",
    "[[+jsUrl]]web/ui/FilterUI.js",
    "[[+jsUrl]]web/mfilter.slider.js",
    "[[+jsUrl]]web/mfilter.js"
]

Отключение автоподключения

Если нужно подключить скрипты вручную:

  1. Установите mfilter.register_frontend = false
  2. Подключите нужные файлы в шаблоне:
html
<link rel="stylesheet" href="/assets/components/mfilter/css/web/mfilter.css">
<script src="/assets/components/mfilter/js/web/mfilter.headless.js"></script>
<script src="/assets/components/mfilter/js/web/ui/FilterUI.js"></script>
<script src="/assets/components/mfilter/js/web/mfilter.js"></script>

Пример конфигурации

Минимальная SEO-конфигурация

mfilter.seo_urls_enabled = true
mfilter.seo_noindex_multiple = true
mfilter.seo_max_filters = 2
mfilter.seo_canonical_base = true

Высоконагруженный сайт

mfilter.cache_enabled = true
mfilter.cache_lifetime = 7200
mfilter.cache_router_lifetime = 86400
mfilter.default_limit = 24
mfilter.max_limit = 48

Без SEO URL (только AJAX)

mfilter.seo_urls_enabled = false
mfilter.auto_submit = true
mfilter.auto_submit_delay = 500