Release Notes
Changes and improvements in JReviews v6
JReviews 6 is a seamless upgrade from JReviews 5 with no backward-breaking changes. Your existing site continues working exactly as before, while giving you access to powerful new features when you're ready.
Version 6.1.0 (06-13-2026)
This release expands JReviews 6 with a unified widget workflow, seven additional Early Access pages, and three new widget types built on the redesigned search and filter system.
Site Widgets
A new admin area under Setup → Site Widgets where you build a widget configuration once in JReviews and then deploy the same widget to multiple places by selecting it from a dropdown:
- A single Joomla JReviews Universal Module replaces juggling a dozen per-type modules.
- A single WordPress (JReviews) Universal Widget for the classic widgets screen.
- A new JReviews Widget block for the WordPress block editor with server-side rendered preview.
- The shortcode
[jreviews type="widget" id="..."]for use in articles, posts, banner custom fields, and template overrides.
A Where Used disclosure on each widget lists every Joomla module, WordPress sidebar, block instance and shortcode placement currently referencing it, so unpublishing or deleting a widget is no longer a guessing game. A standalone preview page under Support → Site Widgets Preview lets you walk through several preview scenarios per widget type, with a dark-mode toggle, before deploying.
When creating a new widget you can copy settings from any existing V6 widget or import from a legacy Joomla module instance or WordPress sidebar widget. The legacy per-type Joomla modules and WordPress widgets remain fully supported and coexist on the same site.
See Site Widgets for the full walkthrough.
Widget Types
The full set of widget types available in Site Widgets:
- Listings — lists of listings with filtering, ordering, and customizable card layouts.
- Comments — lists of comments and reviews with filtering and ordering.
- Media — photo and video grids drawn from listing media.
- Directories — directory cards with optional category trees and listing counts.
- Totals — aggregate counts for listings, reviews, members, and add-on extension content.
- Fields — lists of custom field values that link to filtered search results.
- Calendar — interactive month/week calendar driven by listing date custom fields.
- Reviewer Rank — top reviewers leaderboard with podium and list layouts.
- Favorite Users — authors with the most favorited listings.
- Listing Search — search form with cascading directory → listing type → category dropdowns, combobox multi-select, optional clear-all, live results panel, and a Content Block element for free-form layout. Replaces the legacy
mod_jreviews_advsearchmodule / WordPress advanced search widget. - Listing Filters — sidebar (or dialog, on smaller viewports) with grouped active filter chips, dependency cascading, autosuggest for large option lists, and a configurable Filter Builder. URLs update live on V6 list pages; on legacy list pages the form submits as a normal search.
- Comment Filters — the counterpart to Listing Filters for comment and review list pages, with dedicated Category and Listing Type filter elements scoped to the comment context.
The Listings, Media, Totals and Comments widgets each include a Content Source setting that limits the widget to a specific add-on extension's content. The search and filter widgets each include a Default Sort Order setting for the destination list page.
YOOtheme Pro Add-on
Two additions to the YOOtheme Pro integration:
- JReviews Site Widget element — a new YOOtheme builder element that places any published Site Widget into a YOOtheme layout, with a widget selector, live preview in the customizer, an Edit-in-JReviews shortcut, and a hide-title option. The YOOtheme equivalent of the WordPress Gutenberg block.
- Media ordering in dynamic content — the YOOtheme Media dynamic source now exposes an
Orderingfield on photos, videos, audio and attachments, so galleries and grids can be sorted by the manual media order set in JReviews.
See the YOOtheme Pro article for the full Site Widget element walkthrough.
Maps Add-on
The Maps add-on (5.6.0) is rebuilt for the JReviews V6 architecture:
- Proximity search — a new location-based search filter and widget search element with a "Use my location" geolocation button, an adjustable radius, and address autocomplete.
- Interactive map panel on list pages — an embedded map that stays in sync with the displayed results, powering the map split-view on the new V6 Listing List Pages.
- The map widget is rebuilt for V6 with marker clustering, sidebar and bottom listing cards, responsive layouts, and dark-mode-aware styling.
Other Improvements
- RSS feeds for listings, reviews, and comments, with legacy URL compatibility.
- Structured data enrichment — new
additionalTypeandadditionalPropertyschema settings, plus Schema.org structured data added to the comment detail and "view all reviews" pages. See Structured Data Setup. - Redesigned Early Access settings presented as a grouped features grid, and add-ons can now register their own Early Access features.
- PHP 8.4 compatibility.
- Refreshed V6 frontend theme and control panel with refined cards, footers, and comprehensive dark mode support.
- Media uploads from URLs are hardened against SSRF and restricted to allowed targets.
Early Access Features
Seven new Early Access flags become available in this release, each gating a complete rewrite of an existing front-end page:
- Directory Page — rewritten directory list with CMS-agnostic alpha index URLs.
- Listing List Pages — category listings, featured, latest, popular, top rated, search results and all other list page types. Adds a layout switcher, table layout, map split-view, configurable RSS feeds, and a redesigned toolbar.
- Advanced Search Page — rewritten advanced search with numeric range and date range field components, Any/All match toggles, and configurable date presets.
- Comments/Reviews List Pages — rewritten review list pages, with the legacy
my-reviewsURL automatically routed to the new V6 page. - Discussion Pages — rewritten discussions list and detail pages.
- Media Pages — rewritten dedicated photo and video gallery pages with full-screen Swiper modal, lazy loading, and Schema.org structured data.
- Reviewer Rank Page — rewritten reviewer leaderboard with podium and list layouts.
See the Early Access Features article for the full list and migration guidance.
Version 6.0.1 (02-17-2026)
- New early access setting for the rewritten listing comparison page.
Version 6.0.0 (02-11-2026)
Early Access Features
The following early access settings are available:
- Listing detail page
- Listing form
- YOOtheme Pro - 11 new custom elements for comments/reviews, ratings, and listing management (requires Early Access listing detail)
The development work required to rewrite just these two frontend areas was substantial. The listing detail page includes numerous core features—such as comments, favorites, manage actions, media layouts, and related listings—along with integrations for multiple addons: AssistAI, EngageUsers, ListingResources, Maps, MyLists, and PaidListings.
To learn more detail about the early access features and other important changes related to template customizations and hooks read the Early Access features article.
Blade Template Formatting for Custom Fields (Early Access)
When the Early Access listing detail page is enabled, custom field output formatting uses a new Blade template-based system with different syntax and variables:
- Use Blade directives (
@foreach,@if, etc.) instead of PHP tags (<?php ?>) - Field data is available in the
$datavariable (pre-parsed for FormBuilder fields) - Use
{{ $variable }}for output instead of<?php echo $variable; ?> - Declare expected variables with
@props(['data', 'listing']) - Template files use
.blade.phpextension instead of.thtml
The system supports both inline code and template files:
- "Blade template code" setting - Write Blade syntax directly in the field settings
- "Field output Blade template" setting - Select from
.blade.phptemplates infields_phpformat/
Migration Note: When you enable Early Access, the legacy PHP format system (php_format, php_format_theme) is replaced by the Blade template system. Existing PHP format customizations will be ignored and fields will fall back to their default Output Format until migrated to Blade syntax. The standard PHP format system continues to work when Early Access is disabled.
See the Custom Field PHP Formatting documentation for complete examples and step-by-step migration guidance.
PHP 8.2
Minimum PHP 8.2 required (upgrade from 8.1)
JSON Query Builder
JReviews 6 introduces a new JSON Query Builder that replaces the legacy Custom Where/Order SQL system with a secure, structured, and validated approach. The JSON Query Builder prevents SQL injection vulnerabilities, works across different modules/pages, and is easier to maintain.
In this version the feature is only available in detail page related listing widgets.
See the JSON Query Builder documentation for complete usage details.
Migrating from Legacy Custom Where/Order
If you're currently using Custom Where/Order settings in JReviews 5, you can migrate them to the new JSON Query Builder using the patterns below. These patterns show common SQL queries and their JSON equivalents.
Pattern 1: Simple WHERE Condition
Legacy (Joomla):
Listing.state = 1
JSON:
{
"where": [
{
"column": "state",
"operator": "=",
"value": 1
}
]
}
Pattern 2: Multiple AND Conditions
Legacy (Joomla):
Listing.state = 1 AND Listing.catid = 5 AND Field.jr_price >= 100
JSON:
{
"where": [
{
"column": "state",
"operator": "=",
"value": 1
},
{
"column": "catid",
"operator": "=",
"value": 5
},
{
"column": "field_data.jr_price",
"operator": ">=",
"value": 100
}
]
}
Pattern 3: OR Conditions
Legacy (Joomla):
Listing.state = 1 AND (Field.jr_city = 'New York' OR Field.jr_city = 'Los Angeles')
JSON:
{
"where": [
{
"column": "state",
"operator": "=",
"value": 1
},
{
"logic": "OR",
"conditions": [
{
"column": "field_data.jr_city",
"operator": "=",
"value": "New York"
},
{
"column": "field_data.jr_city",
"operator": "=",
"value": "Los Angeles"
}
]
}
]
}
Pattern 4: IN Operator
Legacy (Joomla):
Listing.catid IN (5, 6, 7, 8)
JSON:
{
"where": [
{
"column": "catid",
"operator": "IN",
"value": [5, 6, 7, 8]
}
]
}
Pattern 5: LIKE Pattern
Legacy (Joomla):
Listing.title LIKE '%hotel%'
JSON:
{
"where": [
{
"column": "title",
"operator": "LIKE",
"value": "%hotel%"
}
]
}
Pattern 6: Date Functions
Legacy (Joomla):
Listing.created >= DATE_SUB(NOW(), INTERVAL 30 DAY)
JSON:
{
"where": [
{
"column": "created",
"operator": ">=",
"value": "DATE_SUB(NOW(), INTERVAL 30 DAY)"
}
]
}
Pattern 7: Date Extraction
Legacy (Joomla):
MONTH(Field.jr_eventdate) = MONTH(NOW()) AND YEAR(Field.jr_eventdate) = YEAR(NOW())
JSON:
{
"where": [
{
"column": "MONTH(field_data.jr_eventdate)",
"operator": "=",
"token": "current_month"
},
{
"column": "YEAR(field_data.jr_eventdate)",
"operator": "=",
"token": "current_year"
}
]
}
Pattern 8: Dynamic Tokens
Legacy (Joomla):
Listing.created_by = {user_id}
JSON:
{
"where": [
{
"column": "created_by",
"operator": "=",
"token": "user_id"
}
]
}
Pattern 9: Ratings/Aggregates
Legacy (Joomla):
Totals.user_rating >= 4.5 AND Totals.user_rating_count >= 10
JSON:
{
"where": [
{
"column": "aggregates.user_rating",
"operator": ">=",
"value": 4.5
},
{
"column": "aggregates.user_rating_count",
"operator": ">=",
"value": 10
}
]
}
Pattern 10: ORDER BY
Legacy Custom Order (Joomla):
Totals.user_rating_rank DESC, Listing.created DESC
JSON:
{
"order": [
{
"column": "aggregates.user_rating_rank",
"direction": "desc"
},
{
"column": "created",
"direction": "desc"
}
]
}
Pattern 11: Subqueries (Same Author)
Legacy (Joomla):
Listing.id != {listing_id} AND Listing.created_by = (SELECT created_by FROM #__content WHERE id = {listing_id})
JSON:
{
"where": [
{
"column": "id",
"operator": "!=",
"token": "listing_id"
},
{
"column": "created_by",
"operator": "=",
"subquery": {
"select": "created_by",
"from": "#__content",
"where": [
{
"column": "id",
"operator": "=",
"token": "listing_id"
}
]
}
}
]
}