Avant Virtuemart Template Changelog
- Change Log:
August 5, 2026
Version 5.4.2.4
Point release — repaired the 5 legacy Joomla 2.5 Bluestork admin-template image references that ship inside Joomla's stock sample-data category descriptions (Components / Modules / Templates / Languages / Plugins). Bluestork was removed from Joomla core in J3+, so on every J4/J5/J6 install those<img>tags 404 on any category-blog page that renders the Extensions category tree.Fixed
- Sourced the 5 original 48×48 PNGs from the canonical Joomla 2.5.28 archive (component / module / templates / language / plugin icons).
- Relocated them under the template's own
images/legacy-bluestork/folder so the reference travels with the template and survives future Joomla-core admin-template changes. - Rewrote the 5 sample-data
_categories.descriptionrows to point at the new template-local path. - Bridge CSS
.row > .spanNtwin: category-blog pages ship with a BS5col-md-3sidebar + a BS2.span9main-content column in the same.row. The mixed grid caused the main column to wrap BELOW the sidebar at desktop. Bridge now handles both.row-fluid > .spanNand.row > .spanNin the same rule set.
Notes
- No breaking changes. Existing customer overrides untouched.
- Fix confirmed by rendering the Extensions category-blog page on the demo — all 5 icons now paint at the correct locations; two-column layout side-by-side.
July 22, 2026Version 5.4.2.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.2.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.2.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 Avant 5.4.2.Thank you, Zoltán, for taking the time to report this!
May 30, 2026Version 5.4.2
Compatible with: Joomla 5.4.6 · VirtueMart 4.6.8 Pro · PHP 8.x (verified on PHP 8.3.31)Maintenance release — Quickstart and standalone rebuilt against VirtueMart 4.6.8 Pro. The three bundled VirtueMart hardenings that 5.4.1 carried inside the Quickstart are now upstream-fixed and have been dropped. As predicted in the Avant 5.4.1 release notes (“the bundled hardenings inside future Avant builds will become redundant”), that prediction came true with VirtueMart 4.6.8 Pro (Revision 11258, March 12 2026).Changed — Quickstart bundle (
avant-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).
- Avant template: 5.4.2 (this release).
- Bundled VirtueMart hardenings from 5.4.1 are now removed —
vmdefines.php,currencydisplay.php, andauthorizenetcreditcards.phpall carry the upstream-clean VirtueMart 4.6.8 Pro versions. - Maxdebug
error_reportingstatus: clean on the Quickstart's default install.
Changed — standalone template package (
pkg_avant-5.4.2.zip)- Avant template: 5.4.2.
- No code changes vs 5.4.1 inside the template tree itself — the
mod_loginoverride$typefallback and all 5.4.0 / 5.4.1 architecture work remain in place. This release is a rebuild against current VirtueMart + a version bump so the released package reflects ongoing maintenance activity. - Standalone customers installing
pkg_avant-5.4.2.zipover an existing Joomla 5 + VirtueMart 4.6.8 Pro site will also see clean maxdebug behaviour from the VirtueMart side — same outcome that 5.4.1 reached only inside the Quickstart bundle.
Notes
- The two upstream warnings that 5.4.1 explicitly left unpatched (the
JLoader::applyAliasFor()re-declaration ofjtextin Joomla core, and theround()null-parameter deprecation in VirtueMart core'sprices.php) — status TBD against 4.6.8 Pro, to be confirmed during the post-release maxdebug verification pass. - Server PHP version when this release was prepared: PHP 8.3.31 on green's
ea-php83handler.
May 28, 2026Version 5.4.1
Compatible with: Joomla 5.x · VirtueMart 4.x · PHP 8.x (verified on PHP 8.3.31)Maintenance release — deprecation and re-declaration warning cleanup at maxdebugerror_reporting. No functional changes for end-users or site builders; this release silences a cluster of warnings that surface only when Joomla'serror_reportingis set tomaximum. At the default reporting level (which is what production sites run), behaviour is unchanged from 5.4.0.Scope
The five maxdebug warnings traced back to four files: one is an Avant template override that needed updating for Joomla 5's architecture, and ships in both the standalone
pkg_avant-5.4.1.zipand the Quickstart. Three are VirtueMart core / plugin files — not the Avant template's code to fix, but bundled inside the Quickstart so brand-new installs get a clean maxdebug experience today instead of waiting for VirtueMart's next patch release.As VirtueMart and Joomla CMS release upstream fixes for these warnings, the bundled hardenings inside future Avant builds will become redundant and the warnings will simply disappear on their own.
Fixed — in the Avant template (ships in BOTH the standalone
pkg_avant-5.4.1.zipAND the Quickstart)mod_login template override (
templates/avant/html/mod_login/default.php)- Added
$type = $type ?? 'login';fallback at the top of the file. Cause: Joomla 5 splitmod_logininto two separate template files —default.php(login state) anddefault_logout.php(logout state) — and the dispatcher no longer passes$typetodefault.php. The legacy Avant 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. - This fix permanently belongs in Avant — it's an architectural change in Joomla 5 that any pre-Joomla-5 override needs to adapt to, not something for upstream to fix.
Fixed — bundled VirtueMart hardenings (ship inside the Quickstart ONLY)
These three patches modify files that live outside
templates/avant/— they sit inside the VirtueMart component and the AuthorizeNet payment plugin. They are included in the Quickstart's pre-configured Joomla + VirtueMart install so that brand-new sites built from the Quickstart get a clean maxdebug experience from day one. They are expected to become redundant as VirtueMart upstream releases its own fixes for the same warnings, at which point we'll drop the bundled hardenings from future Avant builds.VirtueMart
class_aliashardening —administrator/components/com_virtuemart/helpers/vmdefines.php- Wrapped each
class_alias()call (forJFormField,JPluginHelper,JText, and\VirtueMart\JForm) in a pre-autoload + re-check pattern. Cause: as of Joomla 5.4.6, the CMS autoloader side-loads the J3-name aliases as a byproduct of resolving the source class — so by the time VirtueMart'svmdefines.phprunsclass_alias($source, $j3name), the J3 name is already present in the symbol table, producing a re-declaration warning. - Same pattern applied to
plugins/vmpayment/authorizenet/authorizenet/fields/authorizenetcreditcards.phpfor itsJFormFieldListalias. - Expected to disappear when: VirtueMart's next patch release adapts to the new Joomla autoloader behaviour.
VirtueMart PHP dynamic-property declaration —
administrator/components/com_virtuemart/helpers/currencydisplay.php- Declared
$_vendorCurrency_idas a class property onVirtueMart\CurrencyDisplay, alongside its already-declared siblings ($_vendorCurrency,$_vendorCurrency_code_3,$_vendorCurrency_numeric). Cause: PHP 8.2 deprecated “Creation of dynamic property” — assigning a property in__constructthat wasn't declared in the class body now fires a deprecation notice (and continues to do so unchanged on PHP 8.3 and 8.4). The class declared three of its four currency properties; this one was missed. - Expected to disappear when: VirtueMart's next patch release declares the property.
Two upstream warnings remain visible at maxdebug and are intentionally NOT patched in this release because they live in upstream code that should be fixed upstream rather than worked around inside Avant:JLoader::applyAliasFor()redeclaration ofjtextinlibraries/loader.php:576(Joomla CMS core), andround()null-parameter deprecation notices incomponents/com_virtuemart/sublayouts/prices.php(VirtueMart core).May 25, 2026Version 5.4.0
First Joomla 5 native release. Avant has been rebuilt from the ground up for Joomla 5.x + VirtueMart 4.x + PHP 8.x + Bootstrap 5.3.8 + vanilla JavaScript, with no carry-over of the Bootstrap 2 / jQuery 1.x dependencies that defined the earlier 3.x-era codebase. This is the first Avant 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 all template files, overrides, and helper utilities — every
Joomla\CMS\*class accessed through its namespaced form. templateDetails.xmlrewritten to the J5 manifest schema (type="template",client="site",<namespace>Joomla\Template\Avant\Site</namespace>, modernized<files>and<media>blocks).method="upgrade"declared on bothtemplateDetails.xmlandpkg_avant.xmlso existing customers can update in place without uninstall-first.
Bootstrap 5.3.8 native rendering
- Template now renders directly against J5’s bundled
/media/vendor/bootstrap/css/bootstrap.min.css— no separate Bootstrap copy, no compatibility shim CSS in the final shipped tree. - Full CSS rewrite across 10 template files: 87 grid selectors migrated (
.spanN→.col-md-N,.row-fluid→.row) via word-boundary-protected regex to avoid mangling custom class names. - Inline JavaScript class-name walker added to
index.phpto alias residual BS2 class references at render time, ensuring third-party content posted by site editors (e.g. blog HTML pasted from legacy templates) continues to lay out correctly.
Modern slideshow — Swiper 11
- Custom legacy
camera.jsplugin replaced with Swiper 11, J5’s bundled slideshow library. forms/module_mod_custom.xmlextended with new per-slide fields:slide_cta_text,slide_cta_url,slide_cta_style,slide_caption_position,slide_overlay_darkness.- Matching
TPL_AVANT_SLIDE_*language strings added toen-GB.tpl_avant.inifor in-admin labels. - Per-slide CTA button styling, caption positioning, and overlay darkness now controllable from the module-edit UI rather than requiring code edits.
Vanilla JavaScript menu
- New
js/menu-vanilla.js— a 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.
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.
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. - VirtueMart 4 helper integration refactored end-to-end for J5 namespace resolution.
Template overrides modernized for VirtueMart 4 + BS5
html/com_virtuemart/cart/default_pricelist.php— 8 ×class="hidden-phone"→class="d-none d-md-table-cell".html/com_virtuemart/productdetails/default.php—class="icons hidden-phone"→class="icons d-none d-md-block".html/com_virtuemart/askquestion/bs3-form.php— 2 ×btn-default btn-sm pull-right→btn-secondary btn-sm float-end.
Database-stored markup modernized
mod_custommodules used by Avant’s default content layout rewritten from BS2 grid markup to BS5 grid markup:- “Top Icons” —
.row-fluid→.row, 3 ×.span4→.col-md-4. - “Our Hot Offer Line” —
.row-fluid→.row,.span4→.col-md-4,.span8→.col-md-8. - “HOW TO BUY” —
.row-fluid→.row, 4 ×.span3→.col-md-3.
- “Top Icons” —
Layout & styling refinements
- Module height scatter fixed:
.moduletable*changed fromheight: 100%toheight: autointemplate.cssso BS5 flex stretch no longer inflates module wrappers to fill column height. - Tab label concatenation fixed: visibility utilities switched from
display: block !importanttodisplay: inherit !importantso adjacent labels render side by side instead of stacking. - Module-suffix banners updated:
moduleclass_sfxhidden-phone special-ribbon→d-none d-md-block special-ribbon. - Standalone
.spanNgrid rules added to the fixups CSS for raw BS2 markup that has no.col-md-Npartner (site-builder content pasted from older sites), with mobile-collapse override at< 768 px. - VirtueMart 4 tab module BS3-markup bridge added:
.nav-tabs > li > astyling so VM’s tab HTML (<ul class="nav nav-tabs"><li><a class="tab_heading">without.nav-item/.nav-link) displays correctly under BS5. - VirtueMart 4 product grid list-style resets:
ul.vmproduct,ul.sl-products,ul.vm-product-list-containerreset tolist-style: none; padding-left: 0;(BS5 Reboot is stricter than BS2 about list defaults).
Fixed
- PayPal plugin
plgVmDisplayLogin()fatal under VM4 + J5 namespace migration: dropped the legacyVmViewtype hint on line 285 (argument is passed as\VirtueMart\VmViewin the namespaced runtime). com_virtuemartcart override broken header indefault_pricelist.php:?>on line 1 followed byusestatements rendered as literal HTML and triggered aClass "Text" not found500 on the cart view — rewritten to a single open-PHP block.- VirtueMart debug leak suppressed via
.vmdebug { display: none !important; }to hidevmRam()output that fires before the VM config check invmdefines.php.
Removed
Legacy frameworks
- Bootstrap 2.3.2 — local copy and references removed; template renders against J5-bundled BS 5.3.8.
- jQuery 1.8.1 template dependency eliminated. All template-side jQuery code paths replaced with vanilla JavaScript or pure CSS equivalents.
- jQuery 3 compatibility shims (
jQuery.browser,event.props,attrFn) — no longer needed. dropkick.js— native HTML<select>styled with light CSS (custom SVG arrow via data URI, Avant-teal#37bbe1focus ring) replaces the JS-driven dropdown.jQuery.backstretch.min.js— pure CSSbackground-size: cover; background-position: center center;onbody,#welcome-box, footer replaces the JS background-fitter.
Dead JavaScript
- 22 unused legacy JavaScript libraries deleted from disk: jQuery Mobile customized build,
camera.jsunminified copy, Modernizr 2.5.3,owl.carousel,scrollReveal,slick,selectricjs,elevateZoom,plusanchor,stellar,nicescroll,easing,eu-cookie-law, plus several editor backup copies.
Retired social services
- Five social-link slots removed: Google+, StumbleUpon, Digg, Blogger, and the legacy plain-Twitter slot (replaced by X).
Editor noise
- 15 stale
.bak/.orig/.pre-*editor backup files deleted from the template tree. - Orphaned
utils/bss_fontchanger.phpdeleted (zero references anywhere in the codebase).
Joomla 3-era residue
- Deprecated J3 API calls.
- IE-era polyfills and legacy compatibility shims.
- Dead-weight code paths inherited from the 1.x → 3.x lineage.
Security
- 134 inline-
<style>parameter echoes wrapped with the new validation helpers: 114 ×colorNparams, 3 ×hex2rgb()-nested params, 3 × named colors, 14 × dimension params, 3 × background-image URLs. - 10 social-link
hrefattributes hardened withphEsc()inindex.php. .htaccessdefense-in-depth:<FilesMatch>rule denies HTTP access to backup-extension patterns at the template root.
Quickstart Installer
The Avant template ships as both a standalone install package (
pkg_avant-5.4.0.zip) and bundled inside the VMT Quickstart installer (Joomla 5.4.5 base + VirtueMart 4.93 + Avant pre-configured), so new sites can deploy a working demo with a single wizard pass.installation/sql/mysql/custom.sqlincludes a leadingTRUNCATEblock for 10 structural tables (#__assets,#__usergroups,#__viewlevels,#__template_styles,#__modules,#__modules_menu,#__menu,#__menu_types,#__categories,#__content) before donorREPLACE INTOblocks load. This eliminates a wizard-install corruption pattern where base-install rows (e.g. J5.4+ Guest usergroup id 9, default Cassiopeia + Atum template styles withhome=1) persisted alongside donor rows, breaking nested-set tree integrity and producing “404 Component not found” on the homepage and admin after wizard completion.
Package format
- Standalone template:
pkg_avant-5.4.0.zip— Joomla package wrapper that installs thetpl_avanttemplate 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: Avant-J5.4.5-Quickstart — complete Joomla 5.4.5 install with VM 4.93 and Avant pre-loaded as the active template.
Earlier history (pre-5.4.0): The Avant template originated as a Joomla 1.x / VirtueMart 2.x design and was carried forward through major-version compatibility passes (1.5 → 2.5 → 3.x → 4.x). Pre-5.x releases were not packaged in the modern Joomla update-server format and detailed release notes for those builds are not maintained in this file.August 19, 2025Version 18.08.2025 5.3.0/4.4.4
- Upgraded - Now compatible Joomla 5
- Upgraded - Now compatible Virtuemart 4.4.4
- Fixed - Minor bugs
November 30, 2024Version 29.11.2024 5.1.2/4.2.12
- Fixed - Minor bugs with cart
August 19, 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
January 18, 2024Version 17.01.2024 4.3.4/4.2.0
- Fixed - Minor bugs
December 19, 2023Version 07.12.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
July 1, 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 24, 2023Version 16.06.2023 4.3.0/4.0.13
- Fixed - Menu Params error for adding in image on menu
May 21, 2023Version 20.05.2023 4.3.0/4.0.12
- Fixed - Template updated to be compatible with Joomla 4.3
September 10, 2022Version 09.09.2022 3.10.11/4.0.6
- Fixed - Joomla 3.10.11
- Fixed - Template updated for PHP 8.0
