VM Theon

Avant Shop Joomla Template For Virtuemart

Build a mobile friendly ecommerce website today with the Avant shop virtuemart template for Joomla

 
  • 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.description rows to point at the new template-local path.
    • Bridge CSS .row > .spanN twin: category-blog pages ship with a BS5 col-md-3 sidebar + a BS2 .span9 main-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 > .spanN and .row > .spanN in 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, 2026

    Version 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, 2026

    Version 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 a 500 - behavior::formvalidation not found error 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-native behavior.formvalidator.

    Found during the follow-up on the 2026-07-15 report — thank you again, Zoltán!

    July 15, 2026

    Version 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. The edit_address.php template override — and its Bootstrap-3 layout variant — now guard the optional user-fields block with !empty() instead of count(), 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, 2026

    Version 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 removedvmdefines.php, currencydisplay.php, and authorizenetcreditcards.php all carry the upstream-clean VirtueMart 4.6.8 Pro versions.
    • Maxdebug error_reporting status: 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_login override $type fallback 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.zip over 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 of jtext in Joomla core, and the round() null-parameter deprecation in VirtueMart core's prices.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-php83 handler.
    May 28, 2026

    Version 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 maxdebug error_reporting. No functional changes for end-users or site builders; this release silences a cluster of warnings that surface only when Joomla's error_reporting is set to maximum. 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.zip and 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.zip AND 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 split mod_login into two separate template files — default.php (login state) and default_logout.php (logout state) — and the dispatcher no longer passes $type to default.php. The legacy Avant override carried an if ($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_alias hardening — administrator/components/com_virtuemart/helpers/vmdefines.php

    • Wrapped each class_alias() call (for JFormField, 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's vmdefines.php runs class_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.php for its JFormFieldList alias.
    • 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_id as a class property on VirtueMart\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 __construct that 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 of jtext in libraries/loader.php:576 (Joomla CMS core), and round() null-parameter deprecation notices in components/com_virtuemart/sublayouts/prices.php (VirtueMart core).
    May 25, 2026

    Version 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.xml rewritten to the J5 manifest schema (type="template", client="site", <namespace>Joomla\Template\Avant\Site</namespace>, modernized <files> and <media> blocks).
    • method="upgrade" declared on both templateDetails.xml and pkg_avant.xml so 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.php to 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.js plugin replaced with Swiper 11, J5’s bundled slideshow library.
    • forms/module_mod_custom.xml extended 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 to en-GB.tpl_avant.ini for 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 legacy superfish.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.png ships with the template.
    • All new fields are surfaced in the template-options panel with show/hide toggles and URL entry, defaulting to #TYPE-URL-HERE so 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 for href, src, alt, title, and Swiper caption output.
      • phHexColor() — color parameter validation (^#?[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$) with fallback to #000000 on bad input.
      • phCssDim() — dimension parameter validation accepting px / em / rem / % / vh / vw / pt / ex / ch / cm / mm / in.
    • Active .htaccess at the template root replacing the historical htaccess.txt placeholder, with a <FilesMatch> 403 rule for backup-extension patterns (.bak, .bak-*, pre-*, .orig, .old, .swp, .swo, .tmp, ~).

    Documentation

    • CHANGELOG.md and CHANGELOG.html ship inside the template tree.

    Changed

    J3 → J5 API migration

    • Every deprecated J* static class call migrated to its namespaced equivalent: JFactoryFactory, JTextText, JHtmlHTMLHelper, JUriUri, JRouteRoute, JComponentHelperComponentHelper, 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.phpclass="icons hidden-phone"class="icons d-none d-md-block".
    • html/com_virtuemart/askquestion/bs3-form.php — 2 × btn-default btn-sm pull-rightbtn-secondary btn-sm float-end.

    Database-stored markup modernized

    • mod_custom modules 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.

    Layout & styling refinements

    • Module height scatter fixed: .moduletable* changed from height: 100% to height: auto in template.css so BS5 flex stretch no longer inflates module wrappers to fill column height.
    • Tab label concatenation fixed: visibility utilities switched from display: block !important to display: inherit !important so adjacent labels render side by side instead of stacking.
    • Module-suffix banners updated: moduleclass_sfx hidden-phone special-ribbon d-none d-md-block special-ribbon.
    • Standalone .spanN grid rules added to the fixups CSS for raw BS2 markup that has no .col-md-N partner (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 > a styling 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-container reset to list-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 legacy VmView type hint on line 285 (argument is passed as \VirtueMart\VmView in the namespaced runtime).
    • com_virtuemart cart override broken header in default_pricelist.php: ?> on line 1 followed by use statements rendered as literal HTML and triggered a Class "Text" not found 500 on the cart view — rewritten to a single open-PHP block.
    • VirtueMart debug leak suppressed via .vmdebug { display: none !important; } to hide vmRam() output that fires before the VM config check in vmdefines.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 #37bbe1 focus ring) replaces the JS-driven dropdown.
    • jQuery.backstretch.min.js — pure CSS background-size: cover; background-position: center center; on body, #welcome-box, footer replaces the JS background-fitter.

    Dead JavaScript

    • 22 unused legacy JavaScript libraries deleted from disk: jQuery Mobile customized build, camera.js unminified 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.php deleted (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 × colorN params, 3 × hex2rgb()-nested params, 3 × named colors, 14 × dimension params, 3 × background-image URLs.
    • 10 social-link href attributes hardened with phEsc() in index.php.
    • .htaccess defense-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.sql includes a leading TRUNCATE block for 10 structural tables (#__assets, #__usergroups, #__viewlevels, #__template_styles, #__modules, #__modules_menu, #__menu, #__menu_types, #__categories, #__content) before donor REPLACE INTO blocks 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 with home=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 the tpl_avant template 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, 2025

    Version 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, 2024

    Version 29.11.2024 5.1.2/4.2.12

    • Fixed - Minor bugs with cart
    August 19, 2024

    Version 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, 2024

    Version 17.01.2024 4.3.4/4.2.0

    • Fixed - Minor bugs
    December 19, 2023

    Version 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, 2023

    Version 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, 2023

    Version 16.06.2023 4.3.0/4.0.13

    • Fixed - Menu Params error for adding in image on menu
    May 21, 2023

    Version 20.05.2023 4.3.0/4.0.12

    • Fixed - Template updated to be compatible with Joomla 4.3
    September 10, 2022

    Version 09.09.2022 3.10.11/4.0.6

    • Fixed - Joomla 3.10.11
    • Fixed - Template updated for PHP 8.0