JL Content Fields Filter 4.0.0
Обновлен модуль фильтра по полям Joomla - JL Content Fields Filter v4.0.0. Обновление предназначено для Joomla 4, Joomla 5 и Joomla 6.
Мы с гордостью объявляем о выходе JL Content Fields Filter 4.0.0 - это не просто обновление, а полноценная переработка нашего популярного модуля фильтрации контента для Joomla. Данный релиз является мажорным, что означает масштабные изменения под капотом и в пользовательском интерфейсе. Мы сфокусировались на обеспечении полной совместимости с Joomla 6, усилении безопасности и значительном улучшении удобства использования.
Важное примечание: Поскольку это мажорный релиз, включающий новую архитектуру и кардинальные изменения, мы рекомендуем ознакомиться с полным списком изменений и провести тестирование на вашей тестовой среде перед обновлением.
Что нового в JL Content Fields Filter 4.0.0?
1. Полная совместимость с Joomla 6: Основа для будущего
JL Content Fields Filter теперь полностью готов к работе с новейшей версией Joomla. Мы провели кропотливую работу, чтобы ваш фильтр оставался актуальным и функциональным:
- Масштабная миграция на архитектуру PSR-4 пространств имен.
- Замена всех устаревших методов Joomla API, таких как
getDbo()наgetDatabase(), и использование\defined('_JEXEC')вместоdefined('JPATH_PLATFORM'). - Устранены предупреждения PHP 8.2+ о динамических свойствах, что обеспечивает стабильную работу на современных серверах.
- Внедрение современного QueryInterface для всех операций с базой данных, повышая надежность и производительность.
- Рефакторинг моделей CategoryModel (для com_content, com_contact) и TagModel (для com_tags) для соответствия новым стандартам.
- Миграция с колонки `publish` на `state` в базе данных, соответствуя новому стандарту Joomla 6.
2. Критические исправления безопасности: Ваш приоритет - наша забота
Безопасность всегда была нашим главным приоритетом. В JL Content Fields Filter 4.0.0 мы внедрили ряд критически важных улучшений:
- Исправлено 5 SQL-инъекций: Обнаружены и устранены уязвимости в ключевых файлах, таких как
Extension/Jlcontentfieldsfilter.php,TagModel.phpиContactModel.php, которые могли привести к несанкционированному доступу к данным. Теперь все запросы выполняются с корректным экранированием и санитизацией данных. - Добавлена защита от XSS-атак с использованием
escapeHtml()в шаблонах. - CSRF-токены теперь корректно переносятся из URL в тело POST-запроса, значительно повышая защиту от межсайтовой подделки запросов.
- Реализованы строгие проверки прав доступа в методах сохранения данных (например,
ItemModel::save()), предотвращая несанкционированные изменения. - Заменено универсальное
SELECT *на явные списки полей в SQL-запросах, уменьшая поверхность атаки и оптимизируя запросы.
3. Компонент администратора: Переработанный интерфейс для удобства
Мы полностью пересмотрели административный интерфейс компонента, сделав его более современным, интуитивно понятным и эффективным:
- Удалены устаревшие зависимости: Мы отказались от Vue.js 2 и Axios, что позволило уменьшить размер компонента и улучшить производительность.
- Современный JavaScript стек: Теперь используется нативный Fetch API, возможности ES6+ (async/await, стрелочные функции), нативные модальные окна Bootstrap 5 и WebAssetManager для оптимальной загрузки ресурсов.
- Новое поле FilterfieldsField: Это инновационное поле позволяет вам видеть живой предпросмотр фильтров прямо в админ-панели. Оно поддерживает все типы полей (list, radio, checkboxes, text, range) и динамически загружает их на основе выбранной категории.
- Полный CRUD функционал: Теперь вы можете легко добавлять, редактировать, удалять, публиковать и снимать с публикации SEO-записи фильтров.
- Улучшенный UX: Реализованы состояния загрузки и спиннеры, улучшены уведомления об ошибках и адаптивный дизайн для комфортной работы на любых устройствах.
4. Улучшения модуля и плагина: Больше функциональности, больше контроля
Мы значительно доработали модуль и плагин, чтобы предоставить вам еще больше возможностей:
- Расширенный функционал слайдеров: Улучшена обработка событий изменения значений input, а также корректный сброс range-слайдеров к значениям по умолчанию при очистке формы.
- Улучшенный сброс формы: Функция сброса формы теперь очищает текстовые поля и возвращает слайдеры к исходным значениям, обеспечивая лучшую синхронизацию элементов.
- Обновлен CSS фронтенда для единообразного и современного внешнего вида.
- В плагине внедрено динамическое определение контекста, что позволяет ему точно работать с com_content, com_contact и com_tags.
5. Качество кода и документация: Чистота и порядок
Для обеспечения долгосрочной поддержки и стабильности мы уделили особое внимание качеству кода:
- Внедрена конфигурация PHP-CS-Fixer для автоматического форматирования, обеспечивая единообразие и чистоту кодовой базы.
- Добавлена полная PHPDoc документация для всех методов, параметров и возвращаемых типов, что упрощает понимание и модификацию кода.
- Проведена масштабная очистка кода: удалены устаревшие файлы, неиспользуемые импорты, ссылки на несуществующие поля и другие избыточные элементы.
- Created on .