
mFilter
Фасетная фильтрация для MODX 3 с поддержкой SEO URL


Инструменты для обслуживания и оптимизации mFilter.
Пересоздаёт индексы и кэш фильтрации.
Когда использовать:
Действие:
Обслуживание → ПереиндексироватьУдаляет кэш результатов фильтрации.
Когда использовать:
Действие:
Обслуживание → Очистить кэшПересоздаёт слаги для всех значений фильтров.
Когда использовать:
Действие:
Обслуживание → Регенерировать слагиОбновляет кэш URL-роутера.
Когда использовать:
Действие:
Обслуживание → Перестроить роутер| Показатель | Описание |
|---|---|
| Наборы фильтров | Количество активных наборов |
| Привязки | Количество привязок к ресурсам |
| Слаги | Общее количество слагов |
| SEO шаблоны | Количество шаблонов |
| Словоформы | Количество словоформ |
| Показатель | Описание |
|---|---|
| Записей в кэше | Количество закэшированных результатов |
| Размер кэша | Объём данных |
| Истёкших записей | Записи с истёкшим сроком |
Автоматически выполняется через cron или при первом запросе:
// Плагин на OnWebPageInit или cron-скрипт
$mfilter = $modx->services->get('mfilter');
$mfilter->cleanExpiredCache();| Настройка | Описание |
|---|---|
mfilter.cache_enabled | Включить кэширование |
mfilter.cache_ttl | Время жизни кэша (секунды) |
Убедитесь, что все необходимые индексы существуют:
SHOW INDEX FROM modx_mfl_slugs;
SHOW INDEX FROM modx_mfl_cache;$mfilter = $modx->services->get('mfilter');
// Проверить загрузку сервисов
$filter = $mfilter->getFilter();
$slugManager = $mfilter->getSlugManager();Включите отладку для диагностики:
Система → Системные настройки → mfilter.debug = ДаЛоги пишутся в core/cache/logs/error.log.
Перед обслуживанием рекомендуется сделать бэкап:
-- Наборы фильтров
SELECT * FROM modx_mfl_filter_sets INTO OUTFILE '/tmp/filter_sets.csv';
-- Слаги
SELECT * FROM modx_mfl_slugs INTO OUTFILE '/tmp/slugs.csv';
-- SEO шаблоны
SELECT * FROM modx_mfl_seo_templates INTO OUTFILE '/tmp/seo_templates.csv';LOAD DATA INFILE '/tmp/filter_sets.csv' INTO TABLE modx_mfl_filter_sets;mfilter.cache_enabled// Включить профилирование
$modx->setOption('mfilter.profile', true);
// После запроса проверить время
$mfilter = $modx->services->get('mfilter');
$profile = $mfilter->getProfiler()->getReport();