Skip to content

Releases: Joomline/JlContentFieldsFilter

JL Content Fields Filter 4.0.0

02 Jan 20:59

Choose a tag to compare

What's Changed

  • Joomla 6 Compatibility & Code Quality Improvements by @Razzo1987 in #89
  • Migrate for Joomla 6 compatibility, improve filter preview, and modernize UI by @Razzo1987 in #91

New Contributors

Full Changelog: 3.0.0...4.0.0

JL Content Fields Filter 4.0.0 - Major Update

This is a major release with Joomla 6 full compatibility, critical security fixes, complete admin interface modernization, and comprehensive code refactoring.

🚀 What's New

Joomla 6 Full Compatibility

  • ✅ Complete PSR-4 namespace architecture migration

  • ✅ Replaced all deprecated methods:

    • getDbo()getDatabase()

    • defined('JPATH_PLATFORM')\defined('_JEXEC')

  • ✅ Fixed PHP 8.2+ dynamic property deprecations

  • ✅ Modern QueryInterface for all database operations

  • ✅ Updated file headers with proper @since annotations

  • ✅ Refactored CategoryModel (com_content, com_contact) and TagModel (com_tags)

  • ✅ Improved quoteName() usage for better security

  • ✅ Migrated from publish to state column (Joomla 6 standard)

  • ✅ Fixed French language file paths in XML configuration

  • ✅ Simplified JLoader usage

Admin Component - Complete Rewrite

  • 🎨 Removed legacy dependencies: Vue.js 2, Axios (~200KB saved!)

  • 🎨 Modern JavaScript stack:

    • Native Fetch API instead of Axios

    • ES6+ features (async/await, arrow functions, template literals)

    • Bootstrap 5 native modal dialogs

    • WebAssetManager for modern asset loading

  • 🎨 New FilterfieldsField (255 lines):

    • Live filter preview directly in admin panel

    • Supports all field types: list, radio, checkboxes, text, range

    • Dynamic field loading based on selected category

    • Integration with FieldsHelper

    • "Interactive on frontend" disabled preview mode

  • 🎨 Full CRUD operations:

    • ✅ Add new filter SEO records

    • ✅ Edit existing records

    • ✅ Delete records (with confirmation)

    • ✅ Publish/unpublish filters

    • ✅ Filter form with search and status filters

  • 🎨 SEO Features:

    • Meta fields truncation to recommended lengths (title, description, keywords)

    • Hash-based filter identification

    • Form validation and error handling

  • 🎨 Improved UX:

    • Loading states and spinners

    • Error notifications

    • Clean JSON responses with output buffer management

    • Debug logging for troubleshooting

    • Mobile-friendly responsive design

Critical Security Fixes 🔒

  • 🛡️ Fixed 5 SQL injection vulnerabilities:

    1. Extension/Jlcontentfieldsfilter.php (3 vulnerabilities):

      • Line 221: IN clause - proper quoting via array_map() with db->quote()

      • Line 235: BETWEEN clause - missing int cast for 'to' value

      • Line 244: LIKE clause - added db->escape() before db->quote()

    2. TagModel.php (line 170): IN clause - sanitized with ArrayHelper::toInteger() + array_filter()

    3. ContactModel (CategoryModel.php, line 270): IN clause - sanitized with ArrayHelper::toInteger() + array_filter()

  • 🛡️ Additional security improvements:

    • Fixed SQL injection in ItemsModel search filter (improper quote placement)

    • Added XSS protection with escapeHtml() in items list template

    • Moved CSRF tokens from URL to POST body

    • Added permission checks in ItemModel::save()

    • Item existence validation before operations

    • Replaced SELECT * with explicit field lists

    • Fixed operator precedence bug in ternary operator (JlcontentfieldsfilterHelper.php:105)

Module Improvements

  • 🎯 Enhanced slider functionality:

    • Change event handling for input values

    • Proper range slider reset on form clear

  • 🎯 Improved form reset:

    • Clear text inputs on reset

    • Reset range sliders to default values

    • Better synchronization between inputs

  • 🎯 Frontend CSS updates:

    • Renamed jlmf-labeljlmf-field-title (semantic naming)

    • Updated selectors in jlcontentfilter.css

    • Consistent styling across 7 layout files

  • 🎯 Fixed copyright typo: "Joomla All rights" → "Joomline. All rights"

Plugin Enhancements

  • ⚙️ Dynamic context detection:

    • Replaced hardcoded 'com_content.article' with dynamic detection

    • Full support for com_content, com_contact, and com_tags contexts

    • Load custom models for filtering logic in content plugins

  • ⚙️ Improved filtering logic:

    • Enhanced filter string creation for range fields

    • Better BETWEEN clause handling

    • Optimized database queries

  • ⚙️ Updated media paths:

    • Corrected file paths for scripts and styles

    • Updated to use correct media directory structure

Code Quality & Documentation

  • 📝 PHP-CS-Fixer configuration (.php-cs-fixer.dist.php):

    • Enforced code style standards

    • Automatic formatting for consistent codebase

  • 📝 Complete PHPDoc documentation:

    • Detailed comments for all methods

    • Parameter and return type documentation

    • @SInCE annotations for version tracking

  • 📝 Code cleanup:

    • Removed deprecated jlcontentfieldsfilter.php file

    • Removed unused imports (Rules, ApplicationHelper, Factory, Registry)

    • Removed references to non-existent fields (created_by, checked_out)

    • Simplified Table::bind() method

    • Removed empty index.html files

    • Updated params.xml for improved layout styling

  • 📝 Consistent coding standards:

    • Unified \defined('_JEXEC') usage across all files

    • Type consistency improvements

    • Better switch statement structure for model loading

JL Content Fields Filter 3.0.0

01 Aug 11:57

Choose a tag to compare

  • Support Joomla 5 alpha.
  • Fix Seo component.

@sergeytolkachyov

JL Content Fields Filter 2.0.2

08 Jul 13:40
01980d7

Choose a tag to compare

JL Content Fields Filter 2.0.1

07 Jul 08:46

Choose a tag to compare

JL Content Fields Filter 2.0.0

07 Sep 16:07

Choose a tag to compare

  • Support Joomla 4.
  • Fix Notice.

JL Content Fields Filter 1.9.1

16 Mar 10:21

Choose a tag to compare

fix conflict Content Multicategories

JL Content Fields Filter 1.9.0

20 Oct 17:52

Choose a tag to compare

  • Исправление появление ошибки "NaN" в поле-слайдере
  • Механизм скрытия полей и опций списочных полей, если в сущностях категории нет данных по этим полям, без зависимостей между полями
    @AlekVolsk - большое спасибо за подготовленные правки для релиза

JL Content Fields Filter 1.8.5

13 Sep 17:58

Choose a tag to compare

Добавлено событие JS - JlContentFieldsFilterLoadDataSuccess.
Исправления режима работы без jq.

JL Content Fields Filter 1.8.2

22 Jul 16:26

Choose a tag to compare

JL Content Fields Filter 1.8.1

06 Jun 11:46

Choose a tag to compare

Исправления для фильтрации материалов в тегах.
Опция "Показывать только на странице категории".