Introduction
Smart Content Filter is a Joomla site module that displays standard Joomla articles as responsive, AJAX-powered content cards with category tabs, search, tag filtering, sorting, load more, infinite scroll, custom field display, and flexible styling controls.
The module works with native com_content articles and categories. It does not require a custom content table, page reloads, or jQuery.
Key Highlights
- AJAX category filtering for Joomla articles
- Optional All tab, child category support, and multiple selected categories
- Frontend search, tag filter, custom field text filter, and sorting dropdown
- Load More button or Infinite Scroll loading
- Responsive article cards with images, category, date, intro text, custom fields, featured badge, and read more link
- Fallback image support for articles without images
- Card presets, accent color, radius, gap, shadow, button style, image ratio, and responsive columns
- Per-module custom CSS with a
{module} placeholder
- Multiple module instances on the same page
- Joomla 5 and Joomla 6 ready architecture
Installation
System Requirements
- Joomla: Joomla 5.x or Joomla 6.x
- PHP: PHP 8.1 or newer recommended
- Content Component: Standard Joomla
com_content articles and categories
Install the Module
- Log in to the Joomla administrator area.
- Go to System > Install > Extensions.
- Upload and install the Smart Content Filter package.
- Open Content > Site Modules.
- Find Smart Content Filter and open the module.
- Set the module status to Published.
- Select a template position that exists in your template.
- Assign the module to the required menu items.
- Save the module and refresh the frontend.
After Installation
Select one or more Joomla article categories in the module settings. If no category is selected, the module can display articles from all accessible content categories.
Content Source
Category Selection
- Categories: Choose the Joomla article categories available as frontend filter tabs.
- Include Child Categories: Includes articles from child categories under the selected categories.
- Show All Filter: Adds an All tab before the category tabs.
Article Requirements
- Articles must be published.
- Articles must be within the selected categories, or within child categories when child category support is enabled.
- Article access level must be available to the current visitor.
- Article language must match the current site language or be set to All.
- Publish up and publish down dates are respected.
Images
The module reads standard Joomla article image data. It uses the intro image when available and can fall back to the full article image or the module fallback image.
Filters & Sorting
Frontend Filters
- Enable Search: Shows a search field that filters articles by title.
- Enable Tag Filter: Shows a tag dropdown using Joomla tags found in the module article pool.
- Frontend Custom Field Filter: Enter a custom field ID, name, or title to expose as a frontend text filter.
- Custom Field Filter Label: Sets the label shown for the custom field filter.
- Show Reset Button: Lets visitors clear search, tag, sorting, custom field filter, and selected category state.
- Show Results Count: Displays a live count such as
Showing 6 of 24.
Sorting
- Enable Sorting: Shows a frontend sorting dropdown.
- Frontend Sort Options: Default, Newest, Oldest, Title A-Z, Title Z-A, Featured First, and Manual Ordering.
- Default Ordering: Configure fallback ordering from the module settings using publish date, created date, modified date, title, or Joomla ordering.
- Direction: Choose ascending or descending order for the default server-side ordering.
Featured Articles
The Featured Articles option can show all articles, hide featured articles, or show only featured articles. The card can also display an optional featured badge.
Display Settings
Card Content
- Show Image: Shows article intro or full images on cards.
- Fallback Image: Used when an article has no assigned image.
- Show Intro Text: Displays article intro text below the title.
- Intro Text Limit: Controls how many characters are shown from the intro text.
- Show Category: Displays the category title on each card.
- Show Date: Displays the article publish date.
- Show Featured Badge: Displays a featured badge on featured articles.
- Display Custom Fields: Enter comma-separated field IDs, names, or titles to show field values on article cards.
- Title Heading Level: Choose H2, H3, H4, or H5 for card titles.
- Read More Label: Customize the read more link text.
Responsive Columns
- Columns: Desktop column count, from 1 to 4.
- Tablet Columns: Tablet column count, from 1 to 3.
- Mobile Columns: Mobile column count, 1 or 2.
Column values are applied through module-scoped CSS variables so each module instance can have its own layout.
Styling
Card Style Controls
- Card Style: Choose Default, Outlined, Flat, or Compact.
- Image Ratio: Choose 16:10, 4:3, 1:1, or 3:4.
- Accent Color: Sets the main highlight color used for active filters, buttons, links, and focus states.
- Card Radius: Controls rounded corners.
- Grid Gap: Controls spacing between cards.
- Card Shadow: Choose None, Soft, Medium, or Strong.
- Button Style: Choose Filled, Outline, or Text Link.
Advanced CSS
- Disable Module CSS: Turns off the bundled stylesheet if your template handles all styling.
- Module Class Suffix: Adds a custom class suffix to the module wrapper.
- Custom CSS: Add module-specific CSS from the module settings.
Use {module} in custom CSS as a placeholder for the current module wrapper. Example: {module} .scf-card { border-width: 2px; }
AJAX Loading
How AJAX Works
Smart Content Filter uses Joomla's com_ajax endpoint. The frontend script sends the module ID, selected category, filters, sort option, and page offset. The server loads content using that module instance's saved settings and returns updated article card HTML.
Loading Modes
- Load More Button: Shows a button that appends the next batch of articles.
- Infinite Scroll: Automatically loads more articles when the visitor reaches the bottom of the current result list.
Multiple Instances
Each module instance uses its own wrapper, module ID, state, CSS variables, and AJAX request data. This allows multiple Smart Content Filter modules to run on the same page with different categories, filters, limits, and styles.
Accessibility
- Loading and error messages use live regions.
- Category tabs include selected state information.
- Keyboard navigation is supported for tab controls.
- Reset and load more controls are rendered as buttons.
Custom Fields
Displaying Custom Fields
Use Display Custom Fields to show selected Joomla custom fields on article cards. Enter field IDs, names, or titles separated by commas.
Example: audience, level, location
Filtering by a Custom Field
Use Frontend Custom Field Filter to expose one custom field as a frontend text filter. Visitors can type a value and the module filters matching articles.
Field Matching
- Field ID is the most precise option.
- Field name is useful for portable configuration between sites.
- Field title works when editors recognize the label more easily than the field name.
Recommended Use Cases
- Audience or user type
- Difficulty level
- Location or region
- Department
- Product type
- Resource format
- Any structured article metadata stored in Joomla custom fields