Dynamic Virtuemart Template Changelog
- Change Log:
July 22, 2026
Version 5.4.0.3
Maintenance release — fixes for issues found in real-world use on a live production site. With thanks to Michael Mullan, whose Expression bug report led to this maintenance pass across our templates.
- Fixed: search-module icon rendered as a stray character — the Joomla 3 jui icon font was removed from Joomla core in Joomla 4, so the glyph fell back to a literal character and the dead font reference 404'd on every page. The icon is now a self-contained SVG.
- Fixed: pagination arrows (first/previous/next/last) rendered as empty squares — Joomla 4+ uses newer icon class names the template never mapped. Now self-contained SVGs.
- Fixed: featured/blog articles showing only their title — tall single-column intro articles were clipped by the blog layout CSS.
- Improved: search button sits snug against the search input.
- Fixed: the template version shown after install now tracks the real release version.
July 16, 2026Version 5.4.0.2
Bugfix release. Fixes a legacy Joomla 3 form-validation call (
behavior.formvalidation, removed in Joomla 5) in the VirtueMart login template override, which could cause a500 - behavior::formvalidation not founderror on pages where the login block is shown to guests — for example the cart, depending on your VirtueMart settings. The override now uses the Joomla 5-nativebehavior.formvalidator.Found during the follow-up on the 2026-07-15 report — thank you again, Zoltán!
July 15, 2026Version 5.4.0.1
Bugfix release. Fixes a PHP 8 fatal error (
count(): Argument #1 ($value) must be of type Countable|array, null given) on the cart "Bill To / Ship To" address edit page. Theedit_address.phptemplate override — and its Bootstrap-3 layout variant — now guard the optional user-fields block with!empty()instead ofcount(), so guest checkout address editing works on all PHP 8 versions. Recommended update for everyone running Dynamic 5.4.0.Thank you, Zoltán, for taking the time to report this!
June 1, 2026Version 5.4.0
5.4.0 2026-06-01
First Joomla 5 native release. Dynamic has been rebuilt from the ground up for Joomla 5.4.6 + VirtueMart 4.6.8 Pro + PHP 8.3 + Bootstrap-grid CSS + vanilla JavaScript, with no carry-over of the legacy Bootstrap 2 / jQuery menu and slideshow dependencies that defined the earlier 3.x / 4.x-era codebase. This is the first Dynamic release that ships with full Joomla 5 namespace compliance, modern FontAwesome 6 icons, the current social-network set, and a hardened quickstart database.Added
Joomla 5 native API
- Full Joomla 5 namespace compliance across all template files, overrides, and helper utilities — every
Joomla\CMS\*class accessed through its namespaced form. templateDetails.xmlrewritten to the J5 manifest schema withmethod="upgrade"declared so existing customers can update in place without uninstall-first. Extension-version declaration bumped to5.0.- VirtueMart 4 helper integration refactored end-to-end for J5 namespace resolution.
Bootstrap-grid CSS
- Joomla 5 stopped auto-loading Bootstrap CSS for templates; Dynamic now ships a minimal in-template Bootstrap-equivalent grid utility block (
.rowflex container +.col-md-Nbreakpoint rules + mobile fallback) so the existing.col-md-*markup renders correctly out of the box. - Phase 5i.1 grid block + Phase 8b inner-row width fix together restore proper side-by-side footer + bottom-row layout on Joomla 5.
FontAwesome 6.7.2 + v4 shims
- Upgraded FontAwesome from 6.5.2 to 6.7.2 with the v4-shims stylesheet loaded alongside, so legacy
fa fa-Xsyntax in customer content keeps rendering while newfa-brands fa-square-X/fa-solid fa-square-rssglyphs are used in template-managed markup. - Bluesky, Threads, Mastodon, TikTok, Discord glyphs now available (added in FA 6.6.0+).
Modern social-network support
- Social-media set parity — added Instagram, Threads, Bluesky, Mastodon, YouTube, TikTok, Pinterest, Discord.
- Removed dead networks: Google+, StumbleUpon, Digg, Blogger, MySpace.
- X (the Twitter rebrand) replaces the legacy Twitter icon.
- Social-block parameter set extended: each network now has its own
*ONvisibility toggle plus URL field, with 5 reservedcustomSoc1–5slots for ad-hoc additions. - Quickstart defaults populate all
*ONkeys so the social row renders out of the box with placeholder URLs ready for customer fill-in.
Restructured footer layout
- New two-row footer markup: social icons centered across the top row, with copyright left + payment icons right on the second row.
- Mobile fallback (
<768px) stacks all three blocks vertically and centers each. - Higher-specificity CSS overrides ensure the layout wins over historic template.css rules without removing legacy declarations.
Menu hover bridges (Phase 6f + 6h)
- Top menu (Superfish): dropdown tightened to
top: 34pxflush with parent<a>'s bottom edge +padding-top: 8pxinvisible hover bridge +::afterbelt-and-braces pseudo-bridge. Mouse can now move from parent down into the dropdown without the menu closing mid-transit. - Mega-menu: same pattern retargeted to
ul.menu-nav#mega-menu— dropdown totop: 30px+padding-top: 10pxbridge.
CSS cache-busting (Phase 6i)
templates/dynamic/css/template.cssandblog.cssare now loaded with a?v=<filemtime>suffix appended automatically. Every CSS deploy produces a fresh URL so browsers and CDNs fetch new styles immediately, eliminating the historic "I updated the CSS but customers see the cached version" failure mode.
Security helpers (XSS hardening)
- Active
.htaccessat the template root with a<FilesMatch>403 rule for backup-extension patterns (.bak,.bak-*,pre-*,.orig,.old,.swp,.swo,.tmp,~) so accidental on-server backup files cannot be HTTP-fetched. strip_tags()null-safety on parameter echoes (PHP 8.1+ deprecation fix).
Changed
J3 to J5 API migration
- Every deprecated
J*static class call migrated to its namespaced equivalent:JFactorytoFactory,JTexttoText,JHtmltoHTMLHelper,JUritoUri,JRoutetoRoute,JComponentHelpertoComponentHelper, etc.
Modernization swaps (Phase 5)
- Legacy jQuery menu helpers replaced with Joomla 5 + Bootstrap-grid native rendering.
- Footer countModules call corrected from invalid
'footer-left && footer-right'string-argument to proper boolean expression, so the side-by-side footer layout fires correctly when both modules are published. - Template radio-switcher fields all rewritten with JOFF-first / JON-second ordering matching Joomla 5 convention (red-left / green-right semantics).
- Contact Us footer module (
mod_custom #120) icons rewritten from FA4fa fa-X-squaresyntax to canonical FA6fa-brands fa-square-X; "Joomla 3.7 / VirtueMart 3" tagline refreshed to "Joomla 5 / VirtueMart 4".
Category banner images (Phase 7d)
- Category top-row banner images (e.g. "New products", "Sale", "Hot products" stylized graphics) now render at the source
560x560square aspect ratio viaaspect-ratio: 1/1; object-fit: contain, fixing the "squished" appearance reported under the J5 grid CSS.
Quickstart database hardening (Phase 5)
- Phase 5h: Orphan
vmadminadmin template fully removed —jos_extensions,jos_template_styles,jos_update_sites_extensions,jos_template_overrides(88 rows), and theadministrator/templates/vmadmin/directory all cleaned.administrator/templates/now contains only the Joomla 5 stockatum+systemtemplates. - Phase 5j: Article hits counter reset. All
#__content.hitsvalues reset to 0 (was 18,627) before quickstart export so customers install with clean view-counts. - Phase 5k.0: Full template-override security review — 88 disk files + 50
jos_template_overridesrows scanned with zero high-severity findings (noeval, nobase64_decode, no raw$_GET/$_POST/$_REQUESTechoes, no untrusted file inclusions). 15 medium-severity flagged-for-review items all dispositioned as benign controller-level / sublayout-parent token patterns. - Phase 5k.1–5k.3: All 50 Dynamic template overrides marked as checked.
Removed
- Orphan
vmadminadmin template tree (administrator/templates/vmadmin/, 3.5 MB) — legacy VM3-era admin theme no longer needed under Joomla 5 + Atum. - Phase 3e and Phase 5i backup files (
*.bak-*) cleaned from the template tree before quickstart export. - Stale Akeeba
.jpadonor backups from the canonical download path.
Notes- Joomla: 5.4.6. VirtueMart: 4.6.8 Pro. PHP: 8.3. Dynamic template: 5.4.0 (this release).
- Dynamic 5.4.0 is the first Dynamic release packaged in the modern
pkg_dynamicJoomla update-server format. Existing 5.1.2 / 4.2.12 customers can installpkg_dynamic-5.4.0.zipover the top via the Extensions Manager — no uninstall-first required thanks to themethod="upgrade"manifest declaration.
Package format
- Standalone template:
pkg_dynamic-5.4.0.zip— Joomla package wrapper that installs thetpl_dynamictemplate extension and registers it under the package manager.<blockChildUninstall>true</blockChildUninstall>prevents customers from removing the template directly via the Extensions Manager (must uninstall the package instead). - Quickstart bundle: Dynamic-J5.4.6-Quickstart — complete Joomla 5.4.6 install with VirtueMart 4.6.8 Pro and Dynamic pre-loaded as the active template.
August 6, 2025Version 06.08.2025 5.3.0/4.4.4
- Upgraded - Now compatible Joomla 5
- Upgraded - Now compatible Virtuemart 4.4.4
- Fixed - Minor bugs
November 29, 2024Version 29.11.2024 5.1.2/4.2.12
- Fixed - Minor bugs with cart
August 8, 2024Version 08/08/2024 5.1.2/4.2.12
- Upgraded - Now compatible Joomla 5
- Upgraded - Now compatible VirtueMart 4.2.12
- Fixed - Minor bugs
November 17, 2023Version 31.10.2023 4.3.4/4.2.0
- Updated - Compatible with PHP 8.2
- Updated - Compatible with Joomla 4.3.4
- Updated - Compatible with VirtueMart 4.2.0
- Fixed - Minor bugs
June 30, 2023Version 26.06.2023 4.3.0/4.0.13
- Fixed - VirtueMart Products Module issue
- Fixed - Double ReCaptcha on VirtueMart Registration page
- Fixed - Template toggle button not displaying
June 23, 2023Version 16.06.2023 4.3.0/4.0.13
- Fixed - Menu Params error for adding in image on menu
May 20, 2023Version 20.05.2023 4.3.0/4.0.12
- Fixed - Template updated to be compatible with Joomla 4.3
August 23, 2022Version 23.08.2022 3.10.11/4.0.6
- Fixed - Joomla 3.10.11
- Fixed - Template updated for PHP 8.0
