Axxen Virtuemart Template Changelog
- Details
- Category: Template Change Log
- Change Log:
October 2, 2026
Version 5.4.9.1
Quickstart install fix. The quickstart now installs completely on MySQL databases. Before, the Joomla installer stopped part-way through on MySQL hosts; MariaDB hosts were not affected. Thanks to Iryna for reporting this.
Quickstart. Removed leftover files from the quickstart's top folder.
September 30, 2026Version 5.4.9
Joomla 5.4.9. Updated for Joomla 5.4.9, a security and bug-fix release. The quickstart now installs Joomla 5.4.9.
September 30, 2026Version 5.4.8.3
Fix for the previous update. After the security update of 28 September, pages the template shows in its "component" view stopped with a server error ("Call to undefined function phEsc()"). That view is used for print pages, pop-up windows and the VirtueMart cart and checkout steps. The helper those pages need is now included, and they work again. There are no other changes. Recommended for every site that installed the previous version.
September 28, 2026Version 5.4.8.2
Security update. Every template setting that is written into your pages is now escaped for the place it lands in (HTML, attributes, CSS and JavaScript), including the site name and slogan in image alt text, and module, menu and tab titles wherever the template prints them (module headings, title attributes and the mega menu). A setting or title containing a quote or markup can no longer break out of its place in the page. The error page escapes its message and title too. There are no visual changes. Recommended for all sites.
September 3, 2026Version 5.4.8.1
Maintenance release.
- Joomla 3 compatibility code removed throughout the template. The template's PHP now uses Joomla's current API everywhere — the template files, the component override and every layout override (cart, checkout, product details, login and the modules). The old code only worked while Joomla's Behaviour – Backward Compatibility plugin was switched on, and will not work at all on Joomla 6. The most serious case was the error page: when it failed, Joomla could not display any error page, so an ordinary “page not found” was served to your visitors as a 500 server error.
Both the template package and the Quick Start have been rebuilt for this release. Download the latest from your member area.
August 18, 2026Version 5.4.8
Axxen 5.4.8 — 2026-08-18
- Version numbering has changed. From this release the template version matches the Joomla version it is built and tested against, so this is the 5.4.8 build for Joomla 5.4.8. The previous number for this template was 5.4.1.3. Nothing about how you install or update the template changes, and Joomla still treats 5.4.8 as newer than 5.4.1.3.
- The Quick Start now installs Joomla 5.4.8. The previous Quick Start bundled Joomla 5.4.7. Starting a new site from the Quick Start now gives you the current Joomla release without an immediate update afterwards.
- VirtueMart has been updated to 4.8.0 — a security update. The Quick Start previously bundled VirtueMart 4.6.8. VirtueMart 4.8.0 is the current release from the VirtueMart team and carries their security fixes, so a site started from this Quick Start begins on the patched version. If you already run this template on an existing site, update VirtueMart there through Joomla's own Extensions → Update screen — the template package does not carry VirtueMart itself.
- Invisible characters were breaking the page's JavaScript. 672 zero-width characters (U+200B) had been scattered through
index.php, including inside a block of inline JavaScript. They cannot be seen in an editor and they survive copy-and-paste, but to a browser they are a syntax error, so the whole script block never ran. On this template they landed in the legacy browser-detection block. All 672 are gone and every inline script on the page now parses — 1 uncaught page error in the browser console, now 0. - The packaged changelog was missing its most recent entry.
CHANGELOG.htmlinside the template folder stopped at 5.4.1.2 whileCHANGELOG.mdbeside it already carried 5.4.1.3. Both files are now in sync. - The Quick Start no longer installs the retired
vmbasictemplate. VirtueMart's own package reinstates an oldvmbasicsite template. It was riding into the Quick Start as 88 files plus two registration rows, and appearing in your Site Template Styles list for no reason. It is gone. - A stray copy of the template itself has been removed from the Quick Start. A leftover
axxen.zip— a stale copy of this very template — was sitting in the Quick Start'stemplates/folder and being unpacked alongside the real one.
No template file other than
index.phpand the packaged changelog changed between 5.4.1.3 and 5.4.8.July 22, 2026Version 5.4.1.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.1.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!
Also neutralized a dormant legacy
behavior.frameworkcall in a parked override folder (never loaded, but a latent fatal if re-enabled).July 15, 2026Version 5.4.1.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 Axxen 5.4.1.Thank you, Zoltán, for taking the time to report this!
May 30, 2026Version 5.4.1
5.4.1 2026-05-30
Maintenance release — Quickstart and standalone rebuilt against VirtueMart 4.6.8 Pro. Quickstart now formally ships as a release artifact. Axxen 5.4.0 (2026-05-28) shipped standalone-only; a Quickstart bundle was assembled mid-modernization but never formally released. This 5.4.1 release formalizes the Quickstart as a first-class release artifact alongside the standalone template package, and rebuilds both against current VirtueMart 4.6.8 Pro (Revision 11258, March 12 2026).Changed — Quickstart bundle (
axxen-quickstart-J5.4.6-30.05.2026.zip)- Joomla: 5.4.6 (current stable release as of 26 May 2026).
- VirtueMart: 4.6.8 Pro (Revision 11258, March 12 2026).
- Axxen template: 5.4.1 (this release).
- Bundle ships with all 5.4.0 J5-native modernization in place — Bootstrap 5.3.8, Swiper 11 slideshow, vanilla-JS menu, modern social-network set, security helpers.
Changed — standalone template package (
pkg_axxen-5.4.1.zip)- Axxen template: 5.4.1.
- No code changes vs 5.4.0 inside the template tree itself — all 5.4.0 J5-native modernization work (Bootstrap 5.3.8, Swiper 11 slideshow, vanilla-JS menu, modern social-network set, security helpers) remains in place. This release is a rebuild against current VirtueMart + a version bump so the released package reflects ongoing maintenance activity.
- The standalone template installs cleanly on top of any Joomla 5 + VirtueMart 4.x site; for the cleanest maxdebug experience, run against VirtueMart 4.6.8 Pro (or newer).
Notes
- Server PHP version when this release was prepared: PHP 8.3.31 on green's
ea-php83handler.
May 29, 2026Version 5.4.0
5.4.0 2026-05-28
First Joomla 5 native release. Axxen has been rebuilt for Joomla 5.4.6 + VirtueMart 4.6.4 + PHP 8.x + Bootstrap 5.3.8 + vanilla JavaScript, with no carry-over of the Bootstrap 2 / jQuery 1.x / Camera.js / Superfish / Dropkick / Backstretch dependencies that defined the earlier 5.1.x-era codebase. This is the first Axxen release that ships with no template-side jQuery and no BS2 markup in any rendered output.Added
Joomla 5 native API
- Full Joomla 5 namespace compliance across template files, overrides, and helper utilities — every
Joomla\CMS\*class accessed through its namespaced form (Factory,Text,HTMLHelper,Uri,Route,ComponentHelper). templateDetails.xmlupdated to declare J5 compatibility (<extension version="5.0" ...>withmethod="upgrade") so existing Axxen customers can update in place without uninstall-first.
Bootstrap 5.3.8 native rendering
- Template now loads Joomla 5’s bundled
/media/vendor/bootstrap/css/bootstrap.min.cssdirectly. The three legacy BS2 stylesheets that previously loaded fromtemplates/axxen/css/(bootstrap.min.cssv2.3.2,bootstrap-responsive.min.css,bootstrap-extended.css) are no longer enqueued. css/axxen-fixups.cssships as the final cascade layer to harden VirtueMart 4 + Joomla 5 admin classes that have no BS2 equivalent (VM product-grid<ul>bullet resets, VM tab-module BS3-markup bridge,.vmdebugsuppression, menu-vanilla parent-arrow indicators, native currency-selector chrome).
Modern slideshow — Swiper 11
- Custom legacy Camera.js plugin replaced with Swiper 11.
templateDetails.xmlkeeps the existingcam_*template-parameter set (pagination, navigation, autoplay timings) so site-builder muscle memory is preserved; Swiper is configured from those same params at render time.- Slide markup migrated from
.camera_wrap/.camerasrc/.camera_captionto.swiper/.swiper-wrapper/.swiper-slide. - Slideshow container
id="ph-camera-slideshow"preserved so any external CSS targeting that ID continues to work; new classes.swiper.ph-swiper-slideshoware what the new Swiper config targets.
Vanilla JavaScript menu
- New
js/menu-vanilla.js— self-contained IIFE replacement for the legacysuperfish.js+supersubs.js+ inline jQuery menu handlers. - WeakMap-backed 500 ms mouse-out delay preserves the original menu-hover feel without any jQuery dependency.
- Parent-arrow indicators and submenu width handling moved to pure CSS in
axxen-fixups.css(replaces whatsupersubs.jscalculated dynamically).
CSS-driven background images
jquery.backstretchremoved. Section backgrounds (.panel1side-panel, hero areas) now use CSSbackground-image+background-size: cover+background-position: center— the standard modern technique that ships with no JS payload at all.
Native currency selector
jquery.dropkickremoved. The VirtueMart currency selector now renders as a styled native<select>element. Custom chrome (border, padding, custom SVG dropdown arrow, Axxen teal focus ring#29becc) lives inaxxen-fixups.cssso the visual integration with the rest of the template is preserved.
Modern social network support
- Seven new social services added to the Community Links section: Bluesky, Threads, Mastodon, TikTok, Pinterest, Discord, Instagram.
- X (the Twitter rebrand) replaces the legacy Twitter icon; per-link icon file
x.pngships with the template. - All new fields are surfaced in the template-options panel with show/hide toggles and URL entry, defaulting to
#TYPE-URL-HEREso site builders see a clear placeholder rather than a broken link. - Three locations in
index.phpupdated in lockstep (outer multi-lineORchain that gates the entire Community Links container, inner single-lineORchain that sets the$socialsflag, and the<ul id="social-links">rendered list) so a single missing show-toggle can no longer leave an orphan<li>in the rendered markup.
Security helpers
- New escape and validation helpers added to
index.php:phEsc()— HTML attribute escaping forhref,src,alt,title, and Swiper caption output.phHexColor()— color parameter validation (^#?[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$) with fallback to#000000on bad input.phCssDim()— dimension parameter validation acceptingpx / em / rem / % / vh / vw / pt / ex / ch / cm / mm / in.
- Active
.htaccessat the template root replacing the historicalhtaccess.txtplaceholder, with a<FilesMatch>403 rule for backup-extension patterns (.bak,.bak-*,pre-*,.orig,.old,.swp,.swo,.tmp,~).
Documentation
CHANGELOG.mdandCHANGELOG.htmlship inside the template tree.
Changed
J3 → J5 API migration
- Every deprecated
J*static class call migrated to its namespaced equivalent:JFactory→Factory,JText→Text,JHtml→HTMLHelper,JUri→Uri,JRoute→Route,JComponentHelper→ComponentHelper, etc. JDocumentHTML::countModules()→$this->countModules()(J3 helper static deprecated in J6).JModuleHelper::getModules()→\Joomla\CMS\Helper\ModuleHelper::getModules().new JRegistry()→new \Joomla\Registry\Registry().
Template-override architectural updates for Joomla 5 dispatcher
html/mod_login/default.php— added$type = $type ?? 'login';fallback at the top of the file. Joomla 5 splitmod_logininto two separate template files (default.phpfor login state,default_logout.phpfor logout state) and the dispatcher no longer passes$typetodefault.php. The legacy Axxen override carried anif ($type == 'logout')branch from the pre-Joomla-5 era when both states lived in one file; the fallback silences the resulting Undefined variable $type warning while preserving that branch as a safety net.html/mod_breadcrumbs/default.php— added$moduleclass_sfx = $moduleclass_sfx ?? '';fallback afterdefined('_JEXEC') or die;. Sibling pattern to themod_login$typefix — Joomla 5’smod_breadcrumbsdispatcher no longer passes$moduleclass_sfxto override templates that previously relied on it. (This finding has been recorded in Cybersalt’s J5-modernization skill as a reusable check for any future legacy template that overridesmod_breadcrumbs.)
VirtueMart 4 template overrides modernized for BS5
html/com_virtuemart/cart/default_pricelist.php— legacy<?php defined ('_JEXEC') or die('Restricted access'); ?>opener rewritten to a modern multi-line PHP header withuse Joomla\CMS\Router\Route;/use Joomla\CMS\Language\Text;/use Joomla\CMS\HTML\HTMLHelper;, and everyJText::_()/JRoute::_()/JHtml::_()call migrated to the corresponding namespaced helper. BS2hidden-phoneutility classes converted to BS5d-none d-md-table-cell.
Fixed
- PayPal plugin
plgVmDisplayLogin()fatal under VM4 + J5 namespace migration: dropped the legacyVmViewtype hint onplugins/vmpayment/paypal/paypal.phpline 285 (argument is passed as\VirtueMart\VmViewin the namespaced runtime). Same fix shipped in the Avant 5.4.0 release for the same upstream issue.
Removed
- Bootstrap 2.3.2 stylesheet block from
index.php(3 legacy<link>lines). - jQuery 1.8.1 and the
jquery.noConflict.jsshim — Joomla 5’s bundled jQuery slim build is loaded on demand by VirtueMart 4; the template itself has no jQuery dependency. - Camera.js slideshow vendor block — replaced by Swiper 11.
- Superfish + Supersubs menu plugins — replaced by
menu-vanilla.js. - jquery.backstretch — replaced by CSS
background-size: cover. - jquery.dropkick — replaced by native
<select>with custom CSS chrome. - Five retired social services: Google+, StumbleUpon, Digg, Blogger, and the legacy plain-Twitter slot (replaced by X). Associated icon files and language constants removed.
Security
- Active
.htaccessat the template root blocks direct HTTP access to common backup-file extensions, protecting against accidental exposure of.bak/.orig/ editor-swap-file content created during template customization.
Built against (VirtueMart + Joomla baseline)
- Joomla CMS: 5.4.6 (current as of release date)
- VirtueMart core: 4.6.4
- VirtueMart AIO: 4.6.4
- VirtueMart TcPdf Library: 6.8.2
- Akeeba Backup Core for Joomla: 10.3.3
- Weblinks Extension Package: 5.1.0
- Bootstrap (CSS): 5.3.8 (Joomla 5 bundled)
- PHP: 8.3.x verified (compatible with 8.2 / 8.3 / 8.4)
Package format
- Standalone template:
pkg_axxen-5.4.0.zip— Joomla package wrapper that installs thetpl_axxentemplate 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). - No Quickstart bundle: Axxen 5.4.0 ships standalone only. Customers install over an existing Joomla 5 + VirtueMart 4 site.
Known remaining warning at maxdebug — out of standalone-template scope. One PHP 8.2 deprecation still fires on the cart view aterror_reporting='maximum':Creation of dynamic property VirtueMartControllerCart::$address_type is deprecated in components/com_virtuemart/controllers/cart.php on line 87
This is a VirtueMart-core file, outside thetemplates/axxen/tree. Since this is a standalone template release (no Quickstart bundle), VM-core patches are intentionally not shipped — that’s upstream VirtueMart’s territory and is expected to be addressed in a future VirtueMart release. At the default Joomlaerror_reportinglevel (which is what production sites run), this deprecation is invisible.August 11, 2025Version 11.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 15, 2024Version 13.08.2024 5.1.2/4.2.12
- Upgraded - Now compatible Joomla 5
- Upgraded - Now compatible VirtueMart 4.2.12
- Fixed - Minor bugs
December 18, 2023Version 23.11.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 bug
- 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
September 9, 2022Version 09.09.2022 3.10.11/4.0.6
- Fixed - Joomla 3.10.11
- Fixed - Template updated for PHP 8.0
