Dharma Universal Filter — пакет расширений Joomla 5/6 для каталогов RadicalMart. Он добавляет настраиваемый модуль фильтра товаров с индексированными данными, AJAX-обновлением, вертикальной и горизонтальной раскладками, поддержкой offcanvas и плановой переиндексацией.
Проект ориентирован на реальные страницы каталога, где фильтр должен оставаться быстрым при большом количестве полей, цен, категорий и комбинаций значений.
lib_dharma_universal_filter— общая библиотека с классомIndexer, который используют оба плагина; владеет схемой таблиц индекса.mod_dharma_universal_filter— модуль сайта, который выводит интерфейс фильтра.plg_system_dharma_universal_filter— системный плагин: поддерживает индекс в актуальном состоянии после сохранения товаров и даёт инструмент переиндексации.plg_task_dharma_universal_filter— плагин планировщика для полной или частичной переиндексации.package/pkg_dharma_universal_filter.xml— манифест пакета Joomla.package/script.php— установочный скрипт пакета: создаёт таблицы индекса и включает плагины.
- Фильтрация товаров RadicalMart по полям категорий и по цене.
- Индексированные таблицы для быстрого расчёта доступных значений.
- Вертикальная и горизонтальная раскладки модуля.
- Раскладки полей: выпадающий список, список чекбоксов, чекбоксы-дропдаун, радиокнопки, поля цены и слайдер цены.
- AJAX-фильтрация с мгновенным применением или с кнопкой «Применить».
- Каскадная логика доступности: значения и целые поля, под которые нет товаров при текущем выборе, скрываются или отключаются.
- Общий индексатор с транзакционной, пакетной переиндексацией и автоматическим сбросом кэша чтения.
- Опциональные счётчики товаров рядом со значениями фильтра.
- Опциональный мобильный режим / offcanvas.
- Опциональный «липкий» горизонтальный фильтр с настраиваемым отступом сверху.
- Языковые файлы на русском и английском.
- Архитектура
- Дорожная карта
- Заметки для заявки OpenAI Codex for OSS
- Как помочь проекту
- Список изменений
- Политика безопасности
- Сайт, совместимый с Joomla 5.x или 6.x.
- Установленный и настроенный RadicalMart.
- Версия PHP, поддерживаемая целевой Joomla.
- MySQL/MariaDB с InnoDB.
src/
libraries/
dharma_universal_filter/
modules/
mod_dharma_universal_filter/
plugins/
system/dharma_universal_filter/
task/dharma_universal_filter/
package/
pkg_dharma_universal_filter.xml
script.php
build/
build-package.ps1
Из корня репозитория:
powershell -ExecutionPolicy Bypass -File .\build\build-package.ps1Скрипт создаёт устанавливаемые ZIP-архивы в папке dist/, включая архив пакета:
dist/pkg_dharma_universal_filter_0.2.0.zip
Установите dist/pkg_dharma_universal_filter_0.2.0.zip через администратора Joomla:
Система -> Установка -> Расширения
При установке/обновлении библиотека создаёт таблицы индекса, а скрипт пакета включает системный и плановый плагины.
Вывод фильтра зависит от строки запроса, поэтому модуль поставляется с отключённым кэшированием. При обновлении уже существующего экземпляра модуля выставьте у него Кэширование → Без кэширования на вкладке «Расширенные», иначе статический кэш вывода модуля «заморозит» каскад.
- Совместимость с Joomla 6 — намеренная. Не вводите устаревшие классы
J*. - Используйте пространства имён
Joomla\Input\InputиJoomla\Filesystem\*, когда нужен прямой импорт. - Не храните в этом репозитории site-specific переопределения шаблонов, демо-медиа, кэши, дампы и конфигурацию Joomla.
GPL-3.0-or-later. См. LICENSE.




