VM Theon

Square Shop Joomla Template For Virtuemart

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

 
  • Change Log:
    October 30, 2026

    Version 5.4.10

    Square Shop's first release as a Joomla 5 native template. The template has been rebuilt on Bootstrap 5 and the current Joomla API, its slideshow replaced, its Options screen made usable again, and a large amount of dead weight taken out of the download. The template tree goes from 268 files to 244: 13 files added, 37 removed and 64 changed. Built against Joomla 5.4.10, VirtueMart 4.8.4 and PHP 8.3, with Bootstrap 5 throughout.

    Two changes stand out for anyone who has run this template before. The home page slideshow now runs on Swiper 11 instead of the long-unmaintained camera.js, and the js folder has shrunk from 873 KB to 361 KB because 26 JavaScript libraries that nothing on the site ever loaded have been taken out of the package.

    Added

    Favicon tool

    • A Favicon tab in the template's Options, with a media picker and an in-browser crop tool. It writes the icon into the page head along with an apple-touch-icon and a fallback, so a site no longer needs a hand-placed favicon.ico in the root. With thanks to Gianluca, whose favicon question inspired this tool.

    Colour pickers on the Options screen

    • All 101 colour settings now show a real colour picker with a live swatch. On Joomla 5 every one of them rendered as an empty text box, so changing a colour meant knowing its hex code and typing it correctly.
    • The picker ships with the template (css/coloris.min.css, js/coloris.min.js, fields/colorpicker.php). Nothing is fetched from an outside site. The old Joomla 3-era jscolor library it used to rely on never loaded under Joomla 5 and has been retired.

    Show and hide on every password field

    • Login, registration and account forms have an eye icon that reveals what you have typed (js/cs-password-eyeball.js).

    Bootstrap 5 compatibility layer

    • css/bs2-bs5-bridge.css, the shared stylesheet that lets a Bootstrap 2 era layout render correctly on Bootstrap 5. This template carries revision 2026-10-21.162 with 42 template-specific blocks on top of it.
    • css/bs2-donor-base.css, which keeps this template's own Bootstrap 2 form rules so that selects and the address and contact fields stay the size they were designed to be.
    • js/cs-mobile-generic.js for the phone header, drawer and search panel, and js/cs-jq-compat.js, which restores the handful of jQuery 1.x methods that Joomla's current jQuery no longer provides.

    Swiper 11, bundled

    • js/vendor/swiper/swiper-bundle.min.js and its stylesheet ship with the template. A shipped template should not depend on an external content network to show its own slideshow.

    Changed

    The home page slideshow

    • The slideshow has been migrated from camera.js to Swiper 11. The slide markup is now .swiper-wrapper > .swiper-slide with the image as a CSS background, driven by a real Swiper instance.
    • Slideshow behaviour still comes from the template's own settings. Transition speed, auto-advance and its delay, the pagination dots and the prev/next arrows are all read from the existing slideshow parameters, so a configured site keeps the behaviour it had.
    • The pagination dots are square again, matching the original design, and on phones the caption uses the full width of the slide.
    • Please note one deliberate difference. camera.js sized the hero from each slide image's own aspect ratio; Swiper sizes it from the slideshow height you have configured. Where those two differ, the hero is now the configured height.

    Joomla 5 native throughout

    • Every removed Joomla 3 class alias is gone from the template: JFactory, JText, JHtml, JError and the rest are now the namespaced Joomla 4+ API, across index.php, component.php, error.php and all 63 VirtueMart and Joomla override files. An audit of the shipped tree finds none remaining. These aliases only ever worked while Joomla's Behaviour - Backward Compatibility plugin was enabled, and do not exist at all in Joomla 6.
    • The template's own settings now use Joomla 5 native switches. The 53 on/off settings in the Options screen were Joomla 3 era checkbox markup that Joomla 5 rendered inconsistently; none of the old style remains.
    • Form validation uses the current Joomla asset instead of the removed behavior.formvalidation, which silently stopped validating anything on Joomla 4 and later. With thanks to Zoltán Szász for reporting this.
    • The login module no longer asks Joomla for a module layout that has never existed. It was relying on Joomla's missing-layout fallback; the output is identical, and the behaviour is now explicit.

    Standalone install defaults

    • A fresh install of the template now links the logo to the home page and has the slideshow switched on and advancing by itself. These were correct on our demo but off in the package, so a new install did not look like the demo it was chosen from.

    Icons and fonts

    • Font Awesome 6.5.2 with the version 4 compatibility shims, replacing the Font Awesome 4.3.0 the template used to load.
    • The Options screen was loading its own icons from a content network that has since shut down. It now uses the same current icon set as the front end.

    Stylesheets reach visitors after an update

    • The template's stylesheets were served with no version marker, so a browser kept showing its cached copy after an update until the visitor cleared it by hand. Every stylesheet now carries one.

    Fixed

    Pages that did not work

    • The password reset and login pages showed a blank page instead of the form. A page with no menu item of its own borrowed the home page's template style, which hides the main content area. Those pages now show their content; the home page is unchanged.
    • The error page took the whole site's error handling down with it. error.php used removed Joomla 3 classes, so it fatalled while rendering; Joomla could then not render any error page at all and every 404 was served to the visitor as a 500.
    • Two layout tests could never be true. countModules('a && b') is a Joomla 3 condition that Joomla 4 and later read as a single position name, so the layouts behind them never appeared.
    • Two stylesheet rules were being ignored because their media queries used &&, which is not valid CSS.
    • A fragment of code was printing as visible text on the page.
    • Headings that contain markup printed it as text. The site title and subtitle fields are documented as accepting markup, but were being escaped, so a title like square<span>shop</span> appeared literally. They now allow markup while still stripping scripts, iframes and event handlers.

    VirtueMart

    • The header cart panel had no Checkout button. Once the cart had products the panel still offered only "Show Cart".
    • The "added to your cart" pop-up is now sized to read properly, with its two links as real buttons, and fits small phones. It used to be either narrower than its own text or wider than the screen.
    • "Ask a question" opens at its full size and the form fits inside it: labels on one line, fields within the pop-up, and the Send button no longer overlapping the character count.
    • The "Ask a question" form no longer draws a horizontal line above and below every row. The template's table-cell borders were applying to the form's layout table.
    • Registration and account forms no longer draw a line above and below every row.
    • A fatal error when editing a cart address on PHP 8. The address-edit override called count() on a value that can legitimately be empty, which is a fatal error on PHP 8 rather than the warning it was on PHP 7.
    • Product listings could collapse. The row around a product grid sometimes rendered a few pixels tall, letting the content below overlap the products.
    • The cart count badge changed colour and position as soon as the first item went in. The empty and filled states were two different elements; they are now the same colour in the same place, at the top right of the cart icon.
    • The My Account pop-up showed a scrollbar, because it was capped 350px shorter than the login form inside it.
    • The VirtueMart Login button matches the template's other buttons, and the login fields are a single width.
    • In the Cameras drop-down, the "Find out More" and "Buy Now" buttons sat flush against each other with no gap between them.

    Phones and tablets

    • The home page product tabs show their names instead of "0 1 2", and clear the carousel arrows.
    • The social tabs at the top right were invisible. They lost their brand-coloured tiles when the template moved to the current icon set.
    • The slideshow no longer covers the banner below it, and one slide's caption ran 20px off the right edge of the screen because it kept a desktop offset that left no room for it. Every slide's caption now fits the screen with a margin on both sides.
    • Content and footer text sit 20px from the edge, and the page can no longer be panned sideways.
    • The product grid was not centred - it sat 10px to the left, with part of the first tile off the screen.
    • The customer quotes had only a narrow column to use. The quote now uses the width of the screen rather than a 215px column inside it.
    • The alternating feature boxes kept their entrance-animation offset, so their text started off the left edge of the screen.
    • Page titles share the template's side margin instead of sitting 12px further in than everything else.
    • The header chrome no longer reserves empty space above the page, the search panel no longer shows a duplicate submit button, the cart is a proper control in the toolbar, and the menu button is filled in the template's own colour so it matches the buttons beside it.

    Desktop detail

    • The template's own form rules are back, so selects and the address and contact fields are their original size.

    The print view and VirtueMart's pop-ups

    • Both were still loading the pre-Joomla-5 stylesheet stack - in places, stylesheets that no longer exist and simply failed. They now load Bootstrap 5 before the template's own styles, and use the template's colours rather than Bootstrap blue.
    • Stylesheet requests for files that are no longer part of the template have been removed. Each one returned the site's "page not found" response on every single page load.

    The Options screen in the administrator

    • A jQuery is not defined error. Joomla's own colour field used to pull in jQuery as a side effect; with that field replaced, the older admin scripts that quietly depended on it began to fail. The template now declares the dependency itself.
    • The template's Details panel was unreadable in Joomla's dark admin theme - it shipped a hardcoded light treatment, grey text with a white shadow. It now follows whichever admin theme you have selected.
    • Joomla 5.4's "What's New" tour was set to start by itself and open at the dashboard, so on a fresh install every administrator link went to the dashboard instead of where you clicked. The tour still works; it just no longer starts on its own.

    Removed

    26 JavaScript libraries nothing loaded

    • The template shipped 26 JavaScript files, 511 KB in total, that no page ever requested: jQuery 1.8.1, jQuery Mobile, Superfish, Supersubs, Modernizr, Selectivizr, Backstretch, DropKick (twice over), NiceScroll, Selectric, Slick, iScroll, Stellar, EasyPaginate, Flexibility, imgSizer, plusAnchor, equalHeights, an EU cookie-law popup, Bootstrap 2's own JavaScript, and both copies of camera.js now that the slideshow runs on Swiper. The js folder is 361 KB where it was 873 KB.
    • Every file still referenced by the template was kept, confirmed both by reading the template's own load statements and by recording what the rendered pages actually fetch.

    Bootstrap 2

    • The whole unused css/bootstrap/ folder and the root css/bootstrap.css, neither of which anything loaded. print.css no longer imports them.
    • css/bootstrap-rtl.css, Bootstrap 2's right-to-left stylesheet. Its page-head link had already gone; the file itself was still in the download. The template loads Joomla's own Bootstrap 5 RTL stylesheet instead, and only when the site is actually right-to-left.

    Other

    • A development report file that was being included in the download, an unused html/modules.php, and an obsolete admin script.
    • Dead settings code: two colours read from settings that do not exist, replaced with the #000000 they always produced.

    Security

    • Template settings are escaped where they are printed into the page. The shipped tree has 186 escaping-helper call sites across its PHP, covering the colour, size, URL and text settings that reach the markup.
    • The two rich-text heading fields are filtered rather than escaped, through Joomla's own input filter in HTML mode, so documented markup keeps working while scripts, styles, iframes and on* event handlers are stripped.
    • Social links are emitted with rel="noopener" alongside target="_blank".
    • No known security gap ships in this release.

    Quickstart

    • The quickstart installs Joomla 5.4.10 with VirtueMart 4.8.4 and reproduces the demo site, including the home page's second template style, which hides the empty content area on that page.
    • Two third-party VirtueMart demo templates have been removed from the bundle - horme_3 and vmbeez3. They are not part of this product, and both carried broken error pages of their own, so a customer who activated either got a 500 instead of an error page.
    • Three menu links that pointed at # - including "Special Offers" and "Contact Us" - now open the shop front and the contact page.
    • "Ask a question" shows a guest the question form rather than only a login form.
    • The demo's article hit counters start at zero, Joomla's post-installation messages are set to the standard five, and the Smart Search index is built, so the search works on a fresh install.

    Package

    • Installable through Joomla's Extensions installer and updatable in place through the Update Manager while a VirtueMart Templates subscription is active.
    • Requires Joomla 5.1 or later and PHP 8.3 or later. Built and tested against Joomla 5.4.10, VirtueMart 4.8.4 and PHP 8.3.
    • The template tree ships 244 files, down from 268.

    With thanks to Michael Mullan, whose reports drove several of the fleet-wide fixes carried in this release.

    August 11, 2025

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

    Version 29.11.2024 5.1.2/4.2.12

    • Fixed - Minor bugs with cart
    August 15, 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
    December 18, 2023

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

    Version 16.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