Skip to main content

68 templates now rebuilt for Joomla 5 + VirtueMart 4 on Bootstrap 5. See what changed

  • Change Log:
    • Release Date: 2026-10-31, Version: 5.4.10, Notes:

      Studio 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 274 files to 237: 15 files added, 52 removed and 59 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 844 KB to 483 KB because 18 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.

      The registration form on the account page

      • A visitor who followed "Register" reached the account page, saw the "Register" heading, and had nothing under it to fill in - only the login form for people who already had an account. The template was missing two of VirtueMart's own account-page layouts, so the part of the page that draws the registration fields was never reached. Both have been added and the full Billing details form is back.

      Colour pickers on the Options screen

      • All 20 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 38 template-specific blocks on top of it.
      • js/cs-mobile-generic.js for the phone header, drawer and search panel, js/cs-parallax.js for the scrolling background bands, and js/menu-vanilla.js, a plain-JavaScript menu that replaces the two jQuery plugins the drop-downs used to need.

      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.
      • 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 70 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.
      • The template's own settings now use Joomla 5 native switches. The 74 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.

      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, so the template's existing icon names keep working.
      • 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 header was invisible. It is fixed over a dark hero image and carried its positioning class from the moment the page loaded, which a shared rule read as "scrolled" and painted solid white - so a white logo and white menu text sat on a white band. The rule now keys off actual scrolling, and carries no specificity of its own, so a template that styles its own scrolled header still wins.
      • 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.
      • Four 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.
      • 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 studio<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, and when one was added the panel cut it off - it had a fixed 360px height. The panel now fits its contents.
      • The Show Cart pop-up was far wider than it needed to be - 520px against 340 to 360 on comparable templates. It is now 360px, and still centred.
      • The "added to your cart" pop-up is now sized to read properly, with its two links as real buttons, and fits small phones.
      • In the cart, the product thumbnail and the item name were touching. The thumbnail's wrapper was a fixed width narrower than the picture inside it, so the image overhung its own box and any spacing added to the wrapper was swallowed. They now sit clear of each other at both desktop and phone widths.
      • 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 number in the desktop cart badge was off-centre.
      • The VirtueMart administrator template was missing from this install and is now present, so the VirtueMart admin screens render with their intended styling.

      Phones and tablets

      • The footer's feature row ran its icons into its words - there was no gap at all between the icon and the first letter. They are now properly separated, and the label stays beside its icon instead of dropping underneath when it needs two lines.
      • Page titles share the template's side margin instead of sitting 12px further in than everything else, and the feature boxes and footer use the template's own 20px inset rather than 30px.
      • 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.
      • A stray menu button appeared on desktop. A leftover mobile script was adding its own, unstyled button at every screen size, including full-size desktop where it should never appear.

      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

      18 JavaScript libraries nothing loaded

      • The template shipped 18 JavaScript files, 361 KB in total, that no page ever requested: jQuery 1.8.1, jQuery Mobile, Superfish, Supersubs, Modernizr, Selectivizr, Backstretch, DropKick (twice over), NiceScroll, EasyPaginate, Flexibility, imgSizer, equalHeights, selectNav, the jQuery no-conflict shim, and both copies of camera.js now that the slideshow runs on Swiper. The js folder is 483 KB where it was 844 KB.
      • Every file the template still uses was kept. The list was settled by reading the template's own load statements and recording what the rendered pages actually fetch - several of these are still named in comments, which is not the same as being used.

      Other

      • Five leftover working copies of the template that were sitting in the sample data. They contained the pre-Joomla-5 version of its code and served no purpose in a shipped package.
      • An internal development report file that was being included in the download, and dead settings code - a tab-bar background image read from a setting that does not exist.

      Security

      • Template settings are escaped where they are printed into the page. The shipped tree has 142 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.
      • 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.
      • A third-party coupon component has been removed from the bundle too. AwoCoupon was installed on the demo this quickstart is built from - about 200 files and five database tables - but it is not part of this product, nothing in the demo used it (no menu item, no module, no reference from the template), and none of our other templates carries it. It had also lost its own installation manifest, so Joomla would have warned about it on a customer's site. The files and its registration were removed; the copy is kept on our side rather than deleted.
      • Two menu links that pointed at # - "Special Offers" and "Contact Us" - now open the shop front and the contact page.
      • 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 237 files, down from 274.

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

    • Release Date: 2025-07-08, Version: 08.07.2025 5.3.0/4.4.4, Notes:
      • Upgraded - Now compatible Joomla 5.3.0
      • Upgraded - Now compatible VirtueMart 4.4.4
      • Fixed - Minor bugs with cart
    • Release Date: 2024-11-29, Version: 29.11.2024 5.1.2/4.2.12, Notes:
      • Fixed - Minor bugs with cart
    • Release Date: 2024-08-08, Version: 07.08.2024 5.1.2/4.2.12, Notes:
      • Upgraded - Now compatible Joomla 5
      • Upgraded - Now compatible VirtueMart 4.2.12
      • Fixed - Minor bugs
    • Release Date: 2023-11-17, Version: 31.10.2023 4.3.4/4.2.0, Notes:
      • Upgraded - Now compatible with PHP 8.2
      • Upgraded - Now compatible Joomla 4.3.4
      • Upgraded - Now compatible VirtueMart 4.2.0
      • Fixed - Responsive Menu bug
    • Release Date: 2023-06-30, Version: 26.06.2023 4.3.0/4.0.13, Notes:
      • Fixed - VirtueMart Products Module issue
      • Fixed - Double ReCaptcha on VirtueMart Registration page
      • Fixed - Template toggle button not displaying
    • Release Date: 2023-06-23, Version: 16.06.2023 4.3.0/4.0.13, Notes:
      • Fixed - Menu Params error for adding in image on menu
    • Release Date: 2023-05-20, Version: 20.05.2023 4.3.0/4.0.12, Notes:
      • Fixed - Template updated to be compatible with Joomla 4.3
    • Release Date: 2022-08-24, Version: 24.08.2022 3.10.11/4.0.6, Notes:
      • Fixed - Joomla 3.10.11
      • Fixed - Template updated for PHP 8.0