VM Theon

VM Shop Green Joomla Template For Virtuemart

Open a store today with the VM Shop Green virtuemart template for Joomla

 
  • Change Log:
    October 31, 2026

    Version 5.4.10.3

    Checkout from the cart panel. The open cart panel offered only a Show Cart link. It now ends with a Check Out Now button, shown once the cart has products and kept in step when products are added without a page reload.

    Added-to-cart pop-up. Continue Shopping and Show Cart showed as bare text in a box sized to them. They are now proper buttons, and on a small phone the pop-up fits the screen.

    Ask a question. The question form no longer breaks its labels before the colon; on a phone the Send button and the character counter no longer overlap.

    Print view and shop pop-ups in the template's colours. The print view and VirtueMart's pop-up windows loaded Bootstrap after the template's own stylesheet, so their links and buttons came out in Bootstrap blue. They now use the template's colours.

    Checkout page on phones. The shipment and payment boxes ran their text against their own left edge. They now have the same inset as the rest of the page.

    Phone header. Opening a phone panel (search, account, cart) no longer dims the logo and menu buttons at the top of the page. The header no longer turns see-through over the grey overlay.

    Module positions. The template tested pairs of module positions (the two footer columns, the header pair) with a Joomla 3 expression that Joomla 4 and later read as a single position name, so the test always failed (3 places). Each position is now checked on its own.

    Shared stylesheet. The template's Bootstrap compatibility stylesheet is updated to the current version used across our templates. Your own template settings are not changed.

    Removed. 29 JavaScript and CSS files nothing loads (452 KB), among them jQuery 1.8.1, Superfish, Modernizr and old Internet Explorer stylesheets.

    October 23, 2026

    Version 5.4.10.2

    Page titles line up on phones. Titles on the home, login, password-reset and username-reminder pages now start 20px from the screen edge, in line with the text under them; an extra 12px indent had put them 32px in.

    Phone menu button in the theme colour. The main menu button is now filled like the row of buttons beside it, with white bars; it was a transparent outlined square.

    Removed unused files and code. The unused Bootstrap 2.2.1 stylesheet css/bootstrap.css (nothing loaded it) is gone. index.php no longer carries code for five custom social links that had no settings in the template options and so could never be switched on, or an empty hover-border rule for the boxed module style.

    October 23, 2026

    Version 5.4.10.1

    Checkout button in the cart panel. Opening the cart now ends with a full-width Checkout button under the total, on desktop and phones; it opens the cart page, where checkout happens. Before, the panel’s only action was a “Show Cart” link above the item list.

    One side inset on phones. The logo and breadcrumbs now line up 20px from the screen edge with the page content; they sat 30px in.

    October 23, 2026

    Version 5.4.10

    First Joomla 5 native release. VMShopGreen has been brought forward from its Joomla 3-era codebase to run on Joomla 5.4 / Joomla 6, VirtueMart 4.8 and PHP 8.3. The template’s overrides keep their established Bootstrap 2 class names — .spanN, .row-fluid and the rest — and render against Joomla’s bundled Bootstrap 5 through a compatibility stylesheet shipped with the template. That is a deliberate choice: it preserves every layout and override you may already have customised, instead of forcing a rewrite of your markup. Across the template, 265 removed Joomla 3 static API calls have gone to zero, the bundled Bootstrap 2 stylesheet stack is no longer shipped, the error page no longer fails, the phone layout has been rebuilt, the desktop frame widens to 1170 px on large screens, and the built-in slideshow is now on by default.

    Added

    Bootstrap 5 rendering through a compatibility stylesheet

    • css/bs2-bs5-bridge.css — a new stylesheet that translates the template’s Bootstrap 2 grid, form, button, navigation, tab, pagination and alert conventions onto Joomla’s bundled Bootstrap 5. index.php now loads /media/vendor/bootstrap/css/bootstrap.min.css (and bootstrap.rtl.min.css on right-to-left sites) instead of the template’s own Bootstrap 2 copy, and the bridge is linked immediately before </head>, last in the cascade, so it wins over the template’s own stylesheets.
    • css/bs2-donor-base.css — VMShopGreen’s original Bootstrap 2 form sizing, label columns and base typography, kept as a separate file and loaded straight after the Bootstrap 5 core, so the established look — including the horizontal login form with its labels on the left and the VirtueMart form field sizes — survives on the new foundation.
    • Bootstrap 5 data-bs-* attributes now appear where Bootstrap 5 components are used (7 → 15), alongside the legacy attributes the bridge still understands.

    Rebuilt phone layout

    • js/cs-mobile-generic.js — a vanilla-JavaScript phone layer with a slide-in menu drawer, a search panel and a toolbar row of 44 px touch controls for the account and the cart. The cart control shows its item count; the cart and account panels close with a tap outside them; the header gains a scrolled state as the page moves. The phone header reserves no empty band above the page, the search panel shows a single submit button, and the menu button always contrasts with the bar behind it.
    • A second phone menu button for the shop. A new hidden module position, cs-secondary, is declared in templateDetails.xml, and whatever menu module you place there opens from the second button instead of repeating the main menu. A new layout for the VirtueMart category module, html/mod_virtuemart_category/csmenu.php, lists the shop categories with a “+” on each to open its subcategories.
    • On phones the page has no side gutter: the content bands, promo cards and footer modules run edge to edge with square corners, like the header.

    Show / hide on password fields

    • js/cs-password-eyeball.js — login, registration and account-maintenance password fields gain an eye control to reveal what has been typed.

    Colour pickers on every colour setting

    • fields/colorpicker.php, css/coloris.min.css and js/coloris.min.js — all 78 colour options in the template Options rendered as plain text boxes on Joomla 5, because the old jscolor library they relied on never loaded, so a colour could only be changed by typing its hex code. Each now opens a real picker with a live swatch. The picker ships with the template, nothing is fetched from an outside site, and existing values carry over untouched.
    • fields/adminui.php — supporting field type for the Options screen. It declares the jQuery dependency the older Options scripts rely on, and makes the template’s Details panel follow Joomla’s dark administrator theme instead of a hardcoded light treatment of grey text with a white shadow.

    Favicon tool

    • fields/favicontool.php and a new Favicon tab (faviconsettings fieldset, fields favicon, faviconspacer, favicontool) — choose an image from the Media Manager and the template generates the site’s browser-tab icon from it. 10 new TPL_VMSHOPGREEN_FAVICON* language strings (72 → 82). With thanks to Gianluca, whose favicon question inspired this tool.

    Modern social networks

    • Instagram, Threads, Bluesky, Mastodon, TikTok, YouTube, Pinterest and Discord added to the social settings, each with its own on/off switch and URL field.
    • The Twitter link is shown as X; the stored twitter field key is unchanged, so your existing link carries over.
    • The social links render Font Awesome 6 brand icons.

    Supporting scripts

    • js/cs-jq-compat.js — a small shim restoring the jQuery 1.x conventions that the template’s bundled slideshow and other older libraries still call, so they keep working on the jQuery 3 that Joomla ships.

    Changed

    Joomla 3 → Joomla 5 API migration

    • 265 removed Joomla 3 static API calls reduced to zero across the template’s PHP files — JFactory, JText, JHtml, JError and the rest, each replaced with its namespaced Joomla\CMS\* equivalent. These aliases exist only while the Behaviour – Backward Compatibility plugin is enabled, and not at all in Joomla 6. The largest were html/com_virtuemart/cart/default_pricelist.php (22), html/mod_login/default.php (20), html/com_virtuemart/productdetails/default.php (17), html/com_virtuemart/productdetails/x_default.php (17) and html/com_virtuemart/user/login.php (14).
    • The legacy behavior.formvalidation call in the VirtueMart login override — removed in Joomla 5, and fatal when reached — is replaced with the current behavior.formvalidator.
    • 65 files were modified, 53 of the 77 PHP overrides among them, concentrated in html/com_virtuemart/user (14), html/com_virtuemart/productdetails (7), html/mod_menu (4), and the ask-a-question, cart, shop front page, content category, login and VirtueMart module overrides.

    Desktop frame, logo link and slideshow

    • Wider page. On screens 1200 px and wider the page now runs in a 1170 px frame; it was a fixed 960 px. The narrower desktop, tablet and phone widths are unchanged, and no width from 1400 down to 320 px scrolls sideways.
    • The site name / logo links to the home page. The template’s “logo linked” option (logoLinked) defaulted to off, so a fresh install showed an unlinked site name; its default in templateDetails.xml is now on.
    • The built-in slideshow is on by default, with autoplay. cam_turnOn, cam_autoAdvance and cam_mobileAutoAdvance now default to on, so the slideshow shows and advances on desktop and on phones.
    • The slideshow’s minimum height (cam_minHeight) now defaults to 0px instead of 200px. On phones the whole banner scales down instead of being cropped to its middle.

    Menus, scripts and fonts without the old jQuery plugins

    • Drop-down menus no longer depend on the Superfish / Supersubs jQuery plugins. The four Superfish animation options (drop-down opacity, height, width and speed) went with them.
    • The template no longer loads its own copy of jQuery 1.8.1, which was printed from inside a PHP string in index.php; it uses the jQuery that Joomla ships.
    • Google Fonts no longer wait for the WebFontConfig JavaScript loader, which fetched webfont.js from Google before any font could load (1 → 0).

    Error page, print view and pop-up windows

    • error.php uses the namespaced Joomla API. A “page not found” now renders as the template’s own error page with a real 404 status, on desktop and on phones.
    • component.php — the print view, which VirtueMart also uses for its “ask a question” and similar pop-up windows — together with error.php and offline.php, now loads the same Bootstrap 5 core and compatibility stylesheet as the main layout. These views were still running the original pre-Joomla-5 head; their IE conditional blocks and legacy Bootstrap links are gone.

    Template Options screen

    • 39 legacy checkbox switches (class="switch" type="checkbox") are replaced by Joomla 5’s native on/off switcher.
    • The Options screen’s icon font was loaded from MaxCDN, which has shut down, so its icons failed on every load; it now uses Font Awesome 6 with the v4 shims, so the icons the panel already uses keep working.
    • Fields 179 → 183 and fieldsets 9 → 10, after the additions and retirements listed in this entry.

    Stylesheets, icons and layout

    • Template stylesheets are now requested with a version marker, so a style change after an update reaches visitors immediately instead of waiting for them to clear a cached copy.
    • The front end now loads Font Awesome 6.5.2 with the v4 shims (all.min.css, v4-shims.min.css).
    • The desktop header cart shows a count badge on the cart glyph, beside the “Cart empty” / “1 product” label.
    • The shop category description no longer carries an extra 20 px side indent, so it lines up with the products below it.

    Version

    • templateDetails.xml <version> moves from the date-and-compatibility string 22.09.2025 5.3.0/4.4.4 to 5.4.10, matching the Joomla release it is built on. The <creationDate> (now 2026-10-23) and the version badge in the manifest description carry the same release, so the version shown in the administrator matches the download page.
    • <authorUrl> now uses https://, and <copyright> is a proper copyright line instead of a bare URL.

    Fixed

    Pages that returned a server error

    • Every “page not found” was served as a 500. error.php called JError::raiseWarning() and JText, which Joomla 5 no longer provides, so it failed — and Joomla cannot render any error page when the error template itself fails. It now raises a proper \Exception with the status code.
    • A missing article or contact requested by its id answered 500 instead of the 404 page, because Joomla’s Schema.org plugin reloaded the missing item while the error page was being built. The error page now clears the item id along with the menu item id, so these requests get the 404 page.

    Shop

    • Product-card option boxes were cut off. On the home page product modules (Latest, Featured and Random Products) the add-to-cart form was pinned to 128 px by vm-green.css, so a size or format select left 94 px for its text and cut options such as “DVD No additional charge”. The form and its select now fill the card on desktop and phones, while the quantity and Add to Cart row keeps its centred 128 px box.
    • Blank buttons on the cart page. The cart’s update-quantity and remove controls drew their icons from media/jui/img/glyphicons-halflings.png, which Joomla 4 removed, so they showed as empty boxes and the cart page logged a failed request. They now show Font Awesome 6 glyphs in the table’s own readable text colour.

    Requests for files that do not exist

    • Three dead @import rules in css/print.css — media/jui/css/bootstrap.min.css, bootstrap-responsive.min.css and bootstrap-extended.css, from a folder Joomla 4 deleted. Browsers fetch print stylesheets and their imports on every page, so each returned a “page not found” on every page load.
    • Stylesheet links to files that are no longer part of the template were removed; each returned the site’s “page not found” response and a browser warning.
    • The jscolor <script> tag in the manifest description pointed at utils/js_colourchanger/ and failed on every Options load; it is gone.

    Maintenance pass

    With thanks to Michael Mullan, whose Expression bug report led to this maintenance pass across our templates.
    • IcoMoon icon font 404s. An @font-face rule pointed at media/jui/fonts/, a location Joomla 4 removed, so the font failed on every page load and the search icon showed a stray character. The rule is disabled and the search icon uses the bundled icon set.
    • Pagination arrows rendered as empty squares. Joomla 4 and later emit .icon-angle-left, -right, -double-left and -double-right, which the legacy icon stylesheet did not define. They are now mapped to real glyphs.
    • Featured articles clipped to their title. A single-column featured view combined with blog.css overflow handling cut tall intro articles off; the featured list and its items now size to their content.
    • The search button detached from its input. A global button margin separated the search button from its field; the margin is now cleared inside search and finder modules.

    PHP 8 and form validation

    With thanks to Zoltán Szász, whose report led to the form-validation fix described under Joomla 3 → Joomla 5 API migration above and to the address-form fix below.
    • The checkout address form could stop with a PHP 8 error. html/com_virtuemart/user/bs3-edit_address.php guarded its user-field block with count(…) > 0, which throws a fatal TypeError on PHP 8 when there are no user-field functions; it now uses !empty(), as edit_address.php already did.

    Removed

    Legacy stylesheets no longer shipped or loaded

    • The entire bundled Bootstrap 2 stylesheet stack in css/bootstrap/: bootstrap.css, bootstrap.min.css, bootstrap-responsive.css, bootstrap-responsive.min.css, bootstrap-extended.css, bootstrap-rtl.css and bootstrap-tooltip-extended.css. Joomla’s own Bootstrap 5 is used instead.
    • The Internet Explorer conditional stylesheets ie.css, ie6.css and ie9-10.css are no longer loaded.

    Legacy scripts no longer loaded

    • superfish.js and supersubs.js (drop-down menus), jquery.backstretch.min.js (backgrounds), jquery.dropkick-1.0.0.js (select boxes), jquery.mobile.customized.min.js (slideshow touch support), jquery-1.8.1.min.js and jquery.noConflict.js, the IE helpers html5.js, modernizr.js and selectivizr-min.js, and Google’s webfont.js are no longer loaded by the template. No file was removed from js/: any of these that lived there is still there for custom code that references it.

    Files removed

    • html/modules.php — the Joomla 3 modChrome_* function file. Joomla 4 and later read module chromes only from html/layouts/chromes/.
    • html/layouts/chromes/toggleModule.php and toggleModule2.php — two module chromes built on MooTools addEvent, which Joomla 4 and later no longer ship (MooTools calls 4 → 0).
    • html/com_virtuemart/user_/ — a parked, unused copy of the VirtueMart account overrides (21 files). Joomla never read it; the live overrides in html/com_virtuemart/user/ remain.
    • utils/admin-js.js and the old colour-picker folder utils/js_colourchanger/ (jscolor.js and its four images), superseded by the current field types.
    • In total the shipped tree moves from 288 files to 263: 12 added, 37 removed, 65 modified.

    Retired options

    • Social slots for Google+, StumbleUpon, Digg, Blogger and MySpace, services that have closed or no longer offer profile links (gplus, stumbleupon, digg, blogger, myspace and their switches).
    • The four Superfish drop-down animation options (dropopacity, dropheight, dropwidth, dropspeed), plus dropdownhandler1 and colours_handlers.

    Security

    • Server paths no longer disclosed on error pages. Joomla’s own Newsfeeds component can turn a caught exception into a message that contains the site’s absolute filesystem path and a full stack trace, and the error page printed it to any visitor. Outside debug mode, error.php now replaces any such message with Joomla’s generic “An error has occurred” and keeps the status code.
    • Template parameters are escaped or validated before they reach the page. New helpers in index.php do the work: phEsc() (HTML attributes), phHexColor() (colours), phCssDim(), phCssNum(), phCssFont(), phCssToken(), phCssSelector() and phCssUrl() (values written into CSS), and phJsStr() / phJsLit() (values written into scripts) — 292 calls in all. htmlspecialchars and equivalent escaping calls across the template rise from 39 to 79.
    • The rich-text title fields (H1Title, H2Title) go through phRichText(), Joomla’s input filter in HTML mode, which strips script, style and iframe elements and on* event handlers while keeping the markup these fields are documented to accept.

    Quickstart

    • Bundles Joomla 5.4.10 and VirtueMart 4.8.4.
    • The built-in slideshow is switched on, with autoplay on desktop and phones.
    • A new “Store Categories (phone second hamburger)” module in the cs-secondary position, so the second phone menu button opens Automotive & Industrial, Clothes & Shoes, Electronics & Computers and Movies & Books, each with its subcategories.
    • Three unrelated Joomla templates that arrived with the original sample data — horme_3, vmbeez3 and vmbasic — are no longer part of the quickstart. None was the site default or assigned to any menu item, and two of them carried error pages built on the removed Joomla 3 class aliases, so activating either would have produced a 500 in place of an error page. Three leftover template styles for templates not included with this product (aeon, vmbusiness, vmshopblue) are gone too.
    • The dead VirtueMart 3 Klarna and Klarna Checkout payment plugins, which VirtueMart 4 no longer ships, are removed.
    • The Joomla 5.4 “What’s New” guided tour no longer launches itself on the first administrator visit, where it sent every administrator link to the dashboard. It remains available from the administrator.
    • Only five post-installation messages remain enabled, so a new administrator is not met with a backlog of legacy notices.
    • Dead and duplicate update sites are disabled: the retired FOF 3.x site on Akeeba’s old CDN, the Klarna Checkout site whose download link was a placeholder, and a duplicate VirtueMart update site that listed the same item twice in the Update Manager. Two update-site addresses that began with a line break and spaces are cleaned.

    Package

    • Installs as an upgrade over an existing copy. The template manifest’s opening tag read mange="update", a misspelling Joomla ignores, so it never declared an upgrade install. It now carries method="upgrade": no uninstall-first step, and your template settings are preserved.
    • Supplied as a standalone template package and as a quickstart; the Joomla 3 and Joomla 4 downloads remain available but are no longer recommended for new projects.
    September 22, 2025

    Version 22.09.2025 5.3.0/4.4.4

    • Upgraded - Now compatible Joomla 5.3.0
    • Upgraded - Now compatible VirtueMart 4.4.4
    • Fixed - Minor bugs
    November 29, 2024

    Version 29.11.2024 5.1.2/4.2.12

    • Fixed - Minor bugs with cart
    August 15, 2024

    Version 14.08.2024 5.1.2/4.2.12

    • Upgraded - Now compatible Joomla 5
    • Upgraded - Now compatible VirtueMart 4.2.12
    • Fixed - Minor bugs
    December 19, 2023

    Version 01.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, 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 27, 2023

    Version 26.06.2023 4.3.0/4.0.13

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

    Version 20.05.2023 4.3.0/4.0.12

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

    Version 09.09.2022 3.10.11/4.0.6

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