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-19, Version: 5.4.10.2, Notes:

      Security. The template's menu layouts printed a menu item's note and link exactly as entered, so markup typed into a menu item's Note or Link field reached the page. Both are now escaped, as Joomla's own menu layouts do.

      Colours with transparency. A colour chosen with the colour picker's opacity slider (saved as an 8-digit colour such as #rrggbbaa) was replaced with black. Colours with transparency are now used as chosen.

    • Release Date: 2026-10-19, Version: 5.4.10.1, Notes:

      VirtueMart login page. The VirtueMart login page, which shoppers who are not logged in reach from the cart and account links, returned a server error on Joomla 5. The template's login override used JDispatcher, a Joomla 3 class that Joomla 5 no longer has; it now uses Joomla's own event call.

    • Release Date: 2026-10-19, Version: 5.4.10, Notes:
      First Joomla 5 native release. Hyper Shop has been rebuilt for Joomla 5.4.10 + VirtueMart 4.8.4 + PHP 8 + Bootstrap 5. Every Joomla 3 class call is gone (205 calls in 42 files), the template options have a real colour picker and Joomla 5's own on/off switches, and there is a new phone layout with a slide-out menu and a fingertip-sized toolbar. Hyper Shop keeps its Bootstrap 2 layout classes and renders on Joomla 5's Bootstrap 5 through a compatibility stylesheet. jQuery still loads for the camera slideshow, the Owl product carousels and the cookie-law popup, while the old jQuery menu, background and polyfill plug-ins are no longer loaded. Compared with the previous download (25.09.2025): 274 → 281 files, 10 added, 3 removed, 64 modified. The template version is now 5.4.10, matching the Joomla version it ships with.

      Added

      Bootstrap 5 rendering through a compatibility stylesheet

      • New css/bs2-bs5-bridge.css, loaded last in the page head (one <link> immediately before </head>, with a file-time version marker) so it sits above the template's own CSS in the cascade. It lets Hyper Shop's Bootstrap 2 markup render correctly on Joomla 5's bundled Bootstrap 5:
        • Bootstrap 2 grid: .spanN widths and gutters, .row / .row-fluid clearfix so rows take the height of their floated columns, and .offsetN on nested fluid rows.
        • Phone stacking of every [class*="span"] column, plus the full Bootstrap 2 responsive utilities (hidden-phone, visible-phone, hidden-tablet, visible-tablet, hidden-desktop, visible-desktop).
        • Tab panels (.tab-content > .tab-pane hidden, .active shown), a body margin reset, centred clearfixed containers and Bootstrap 2 base typography (headings, paragraphs, lists).
      • The print view and every VirtueMart pop-up (component.php), and the error page (error.php), now load the Bootstrap 5 core and the compatibility stylesheet exactly like index.php. Before, they still carried the original pre-Joomla-5 head.
      • Right-to-left sites load Joomla's bootstrap.rtl.min.css.

      New phone layout

      • New js/cs-mobile-generic.js. On phones (up to 767 px) a menu button in the header opens the main menu as a slide-out panel.
      • A phone toolbar of six 44×44 buttons: Section menu (the shop categories), Log in, Register, Search, Follow us (the social links) and Cart.
      • A cart count badge on the cart icon, on phones and on desktop, shown whenever the cart holds items. The template's own count bubble no longer shows a "0" or a second number.
      • Tapping outside closes the cart panel, the login drop-down and any open dialog. The tap that closes a panel doesn't also follow a link underneath it.
      • The phone cart panel opens centred on the screen with dark, readable text. An empty cart reads "0 products" with no blank box above it.
      • Phone slideshow: each slide shows the whole banner picture at full width, nothing cropped. The title, price and buttons sit below it on white, the arrows sit mid-band and the pause button sits beside the buttons.
      • Phone product cards: the quantity box is the same 34 px height as the − and + buttons, with Add to Cart clear below it. The product page box matches.
      • Account pages on phones (login, registration, your account) show the page content first, with only the breadcrumbs and the store menu above it.
      • The phone header sits in the page flow: no blank band above or below it, no duplicate submit button in the search panel, and a menu button that always contrasts with its bar.
      • The search box uses 16 px text in a 44 px field, so iPhones no longer zoom the page in when you tap it.
      • The fixed social tabs on the left edge are hidden on phones, where they covered the cart and login fields. Social links are under Follow us instead.
      • Footer link lists and page content keep a proper inset from the phone edge.

      Password fields

      • New js/cs-password-eyeball.js: a show/hide eye on every password field (login, registration, account edit). On phones it stays inline beside the field.

      Error pages

      • "Page not found" (404) and "access denied" (403) pages now display inside the template, with its header, menus and footer, and fit a phone screen. style-error.css is no longer used.

      Favicon

      • New Favicon tab in the template options (fieldset faviconsettings, fields favicon and favicontool, field class fields/favicontool.php). Pick one image and the template creates and outputs the icon set (phFaviconSet(), phIcoBytes() in index.php). With thanks to Gianluca, whose favicon question inspired this tool.
      • 10 new language strings (TPL_HYPERSHOP_FAVICON_*, TPL_HYPERSHOP_FAVICONTOOL_*). The language file goes from 74 to 82 strings.

      Modern social network support

      • Five new social services, each with its own URL field and show/hide switch: Threads, TikTok, Bluesky, Mastodon and Discord (threads/threadsON, tiktok/tiktokON, bluesky/blueskyON, mastodon/mastodonON, discord/discordON).
      • Social icons are Font Awesome 6 brand glyphs (fab fa-*) in brand-coloured tiles.

      Vanilla JavaScript menu

      • The hover drop-down menus are opened by a small plain-JavaScript handler in index.php, in place of the superfish.js + supersubs.js jQuery plug-ins.

      Template options (administrator)

      • Colour picker: the open-source Coloris picker ships inside the template (css/coloris.min.css, js/coloris.min.js, field class fields/colorpicker.php), so nothing is fetched from another site.
      • New fields/adminui.php loads the Options-screen support code: the jQuery the older option scripts rely on, and a dark-theme style for the template's Details panel.

      Articles

      • Article Previous / Next buttons now sit at opposite ends of the article.

      Changed

      J3 → J5 API migration

      • 205 Joomla 3 static class calls in 42 files → 0. Each moved to its namespaced Joomla 4+ form: JFactory → Factory, JText → Text, JHtml → HTMLHelper, JRoute → Route, JUri → Uri, and the rest.
      • Heaviest files: html/mod_login/default.php (20), index.php (17), html/com_virtuemart/productdetails/default.php (16), html/com_virtuemart/user/login.php (14), html/com_virtuemart/virtuemart/default_products.php (9), html/mod_virtuemart_product/single.php (9).
      • Every VirtueMart override folder was converted: askquestion (4 files), cart (3), category (3), productdetails (6), sublayouts (2), user (14), virtuemart (3). So were mod_virtuemart_cart, _category, _currencies, _manufacturer, _product, mod_breadcrumbs, mod_login, mod_menu, mod_search and mod_articles_latest. In total 58 of the 85 PHP overrides changed.
      • error.php: JError::raiseWarning(404, …) → throw new \Exception(…, 404).
      • defined('_JEXEC') or die guards: 72 → 75 files.

      Template options (administrator)

      • 182 field type changes in templateDetails.xml:
        • 114 colour settings: type="color" → type="colorpicker". A real picker with a live swatch replaces the empty text boxes Joomla 5 showed, where you had to know and type the hex code.
        • 68 on/off settings: legacy checkbox → Joomla 5 radio switcher (for example OverrideDefaultSettings, RSSON, AdditionalGFontON, H1TitleImgText, cam_autoAdvance). With the retired social switches removed and five new ones added, the template now has 73 switchers and no legacy checkboxes (72 before).
      • Template options: 323 → 329 fields, 13 → 14 tabs.
      • The Options screen's Font Awesome 4.6.3 stylesheet came from MaxCDN, which has shut down. It is now Font Awesome 6.5.2 with v4 shims, so the panel's fa fa-* icons display again.
      • The template's Details panel follows Joomla's light or dark admin theme. It used to be grey text with a white shadow, unreadable on the dark theme.

      Icons and fonts

      • Front end: Font Awesome 4 from MaxCDN (font-awesome.min.css) → Font Awesome 6.5.2 (all.min.css + v4-shims.min.css). Older fa fa-* class names keep working. FA4 class names in the template went from 22 to 11, including the overrides com_virtuemart/category/default.php, category/productsviewarray.php and mod_virtuemart_cart/default.php.
      • Google Fonts load through a stylesheet link. The JavaScript WebFontConfig loader is gone (2 → 0).

      Stylesheets and scripts

      • Every local stylesheet link carries a version marker (?v=), so style changes appear straight after an update instead of waiting for visitors to clear their browser cache.
      • Template-side jQuery call sites: 147 → 106. The rest serve the camera slideshow, the Owl product carousels and the cookie-law popup. New js/cs-jq-compat.js supports those plug-ins on Joomla 5's jQuery.
      • Login and other dialogs open as Bootstrap 5 dialogs; Bootstrap 5 data-bs-* attributes went from 7 to 13.
      • Backgrounds set in the template options are sized with CSS (background-size: cover) in place of the jQuery Backstretch plug-in.
      • css/template.css: 163,613 → 165,611 bytes.

      Version

      • templateDetails.xml version 25.09.2025 5.3.0/4.4.4 → 5.4.10, matching the Joomla release it ships with. The version shown in the template description and the @version docblock in index.php match.
      • method="upgrade" is kept, so existing sites update in place.

      Fixed

      Pages that returned a server error

      • Error page: error.php used Joomla 3 class aliases. When Joomla's Behaviour - Backward Compatibility plugin is off, Joomla could not render any error page, so every "page not found" became a 500.
      • Store owner's account page: html/com_virtuemart/user/bs3-edit_vendor.php called JHtml::_('Select.…') with a capital S, which Joomla 5 cannot resolve ("HTMLHelper Select not found"). Shop owners and vendors got a 500 on their front-end account page.
      • Guest checkout address form on PHP 8: html/com_virtuemart/user/bs3-edit_address.php called count($this->userFields['functions']) on a value that is empty for guests, which is a fatal error on PHP 8. It now uses !empty(). With thanks to Zoltán Szász, whose report found it.
      • Login form validation: the VirtueMart login override called behavior.formvalidation, which Joomla 5 removed ("behavior::formvalidation not found", a 500). It now uses behavior.formvalidator. With thanks to Zoltán Szász, whose follow-up report led to this fix across our templates.

      Browser errors and dead requests

      • The home page showed 12 browser console errors on the previous version. It now shows none.
      • The print view and VirtueMart pop-ups requested 8 stylesheets that don't exist, and the home page requested a missing camera.css. Each returned the site's "page not found" response on every page load. All are removed.
      • The template Options screen loaded a dead jscolor <script> from the template description, which 404'd every time the screen opened. Removed.

      Maintenance pass

      • Featured articles: tall intro articles in the featured (home) view were clipped to their title. .blog-featured .blog-item now uses display:block; overflow:visible; height:auto.
      • Search button: the global button margin pulled the search button away from its input. #search-position .btn now has margin:0.
      • With thanks to Michael Mullan, whose Expression bug report led to this maintenance pass across our templates.

      Removed

      Legacy scripts no longer loaded

      • index.php, component.php and error.php no longer load superfish.js, supersubs.js, jquery.backstretch.min.js, jquery.mobile.customized.min.js, modernizr.js, selectivizr-min.js, html5.js or webfont.js. Most of the files remain in js/ (29 → 33 files) but nothing loads them.

      Legacy stylesheets no longer loaded

      • Bootstrap 2 (bootstrap.css, bootstrap-responsive.min.css, bootstrap-extended.css), the Internet Explorer sheets and conditional comments (ie.css, ie6.css, ie9-10.css), reset.css, the old Font Awesome sheets (font-awesome.min.css, all.css) and style-error.css. The compatibility stylesheet and Joomla's Bootstrap 5 take their place.

      Files removed

      • utils/admin-js.js: a Joomla 3-era admin script.
      • html/modules.php: Joomla 3 modChrome_ module chromes, which Joomla 5 never calls.
      • html/com_virtuemart/user/index.html.

      Retired social services

      • Four social slots removed with their switches: Google+ (gplus), StumbleUpon, Digg and Blogger.

      Download

      • An earlier download of this template contained a server error log. It served no purpose in a fresh install and exposed file paths from our own build server. It was taken out of that download, and the new packages do not contain it.

      Security

      • 13 output helpers added to index.php, used 316 times. Every template setting written into the page is escaped for where it lands:
        • phEsc(): HTML text and attributes.
        • phRichText(): the site-name and slogan fields, which may contain simple markup (for example <strong>HYPER</strong>Shop). Joomla's input filter keeps the markup but strips scripts, styles, iframes and on* event handlers.
        • phHexColor(), phCssDim(), phCssNum(), phCssFont(), phCssSelector(), phCssToken(), phCssUrl(): colours, sizes, fonts and image URLs written into the page's CSS.
        • phJsStr(), phJsLit(): values written into inline JavaScript.
        • phFaviconSet(), phIcoBytes(): favicon output.
      • Three alt="<?php echo strip_tags(…) ?>" echoes, where a quote in a setting could break out of the attribute, now go through phEsc(strip_tags(…)). 3 → 0.
      • Module, menu and tab titles are escaped in index.php and in the module chromes html/layouts/chromes/megamenu.php, slides.php, vmdefault.php and vmtab.php.
      • htmlspecialchars / escape calls in the template: 45 → 85. New ones are in mod_login, mod_menu, mod_custom, mod_articles_latest, mod_virtuemart_cart, the com_content category, featured and archive views, and the VirtueMart address-field overrides.
      • The error page escapes the error message and page title it prints.

      Quickstart Installer

      The Quickstart is a complete Joomla 5.4.10 site with VirtueMart 4.8.4 (previously 4.6.8) and Hyper Shop pre-configured as the active template.

      • Bundled extensions: MCP For J 2.8.3, Akeeba Backup 10.4.0, Weblinks 5.2.0.
      • The site templates/ folder holds only cassiopeia, hypershop and system. The third-party VirtueMart demo templates horme_3, vmbeez3 and vmbasic are gone; the first two had broken error pages of their own.
      • Joomla 5.4's "What's New" guided tour (tour 15) no longer starts by itself (autostart = 0). It used to redirect every administrator link to the dashboard on the first visits.
      • Joomla’s Statistics plugin is set to never send data.
      • A clean starting state: the action log is empty, the post-install messages are trimmed to the five worth keeping, and the template overrides are marked as reviewed (no “changes found” warning).

      Package format

      • Standalone template: now a Joomla package (pkg_hypershop.xml) that installs the Hyper Shop template and registers it in the package manager. It declares method="upgrade", so an existing Hyper Shop updates in place, and <blockChildUninstall>true</blockChildUninstall>, so the template is removed through the package rather than on its own.
      • Quickstart bundle: a complete Joomla 5.4.10 install with VirtueMart 4.8.4 and Hyper Shop pre-loaded as the active template.
      Earlier history: the previous download was dated 25.09.2025 (version string 5.3.0/4.4.4). It was the original Joomla 4/5-compatible build, still on Bootstrap 2 and Joomla 3 class calls. This 5.4.10 release is the first one rebuilt natively for Joomla 5.
    • Release Date: 2025-09-25, Version: 25.09.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
    • 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-15, Version: 13.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: 2024-05-07, Version: 07.05.2024 4.4.4/4.2.0, Notes:
      • Fixed - Template updated to be compatible with Joomla 4.4.4
    • Release Date: 2023-06-30, Version: 26.06.2023 4.3.0/4.0.13, Notes:
      • Fixed - VirtueMart Products Module bug
      • 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-23, Version: 23.08.2022 3.10.11/4.0.6, Notes:
      • Fixed - Joomla 3.10.11
      • Fixed - Template updated for PHP 8.0