Theon Virtuemart Template Changelog
- Change Log:
- Release Date:
2026-10-31, Version:
5.4.10, Notes:
Theon Shop's first release as a Joomla 5 native template. The template has been rebuilt on Bootstrap 5 and the current Joomla API, its Options screen made usable again, its phone layout reworked, and a large amount of dead weight taken out of the download. The template tree goes from 294 files to 252: 11 files added, 53 removed and 68 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 whole Bootstrap 2 stylesheet set and 17 JavaScript libraries that nothing on the site ever loaded have been taken out, shrinking the
jsfolder from 976 KB to 660 KB; and the phone layout has had a proper pass, from the product tab titles that used to read "0 1 2" to the side margins that were being applied up to three times over.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-iconand a fallback, so a site no longer needs a hand-placedfavicon.icoin the root. With thanks to Gianluca, whose favicon question inspired this tool.
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 Joomla 3-erajscolorlibrary it used to rely on never loaded under Joomla 5 and has been retired. - With Joomla's own colour field gone, the older admin scripts that had been getting jQuery from it as a side effect started failing with jQuery is not defined. The template now declares that dependency itself rather than relying on a coincidence.
A Checkout button in the cart panel
- The header cart panel offered only "Show Cart". Once the cart has something in it, it now offers Check Out Now as well, so a customer can go straight to checkout from the panel.
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 revision2026-10-21.162with 17 template-specific blocks on top of it.js/cs-mobile-generic.jsfor the phone header, drawer and panels,js/cs-parallax.jsfor the scrolling background bands, andjs/cs-jq-compat.js, a small shim described under Changed.
Changed
Joomla 5 native throughout
- Every removed Joomla 3 class alias is gone from the template:
JFactory,JText,JHtml,JError,JRoute,JUri,JRegistryand the rest are now the namespaced Joomla 4+ API, acrossindex.php,component.php,error.phpand all 77 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 81 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 product slider no longer calls
behavior.modal, removed in Joomla 4. Bootstrap 5 handles the pop-outs natively.
The slideshow stays on camera.js
- This template has not been migrated to Swiper. Its home page slideshow still runs on camera.js, which is what the layout and its settings are built around, and both
js/camera.jsandjs/camera.min.jscontinue to ship. - That is why
js/cs-jq-compat.jsis included. camera.js calls$.browserand$.fn.live, two pieces of jQuery removed years ago and not present in the jQuery Joomla 5 ships. The shim restores just those two so the slideshow keeps working.
Icons and fonts
- Font Awesome 6.5.2 with the version 4 compatibility shims, so the template's existing icon names keep working.
- A second icon library has been dropped. The template was downloading Line Awesome from an outside content network on every page load, on top of the Font Awesome it actually uses. Nothing referenced it. One fewer external file to fetch, and one fewer outside service the template depends on to look right.
- The Options screen was loading its own icons from MaxCDN, which has since shut down, so those icons returned a 404 on every load. It now uses the current icon set.
- The Google web font loader that ran as JavaScript has been replaced by an ordinary stylesheet link with preconnect hints, so fonts no longer wait on a script.
- The social links cover 13 networks, not 5. X, Bluesky, Mastodon, Threads, TikTok and Discord are in; the retired ones are gone.
Stylesheets reach visitors after an update
- The template's stylesheets and scripts were served with no version marker, so a browser kept showing its cached copy after an update until the visitor cleared it by hand. The local ones now carry one, taken from the file's own modification time.
VirtueMart's own scripts
- The template shipped a cut-down jQuery UI build that was missing pieces VirtueMart's scripts expect. It now ships the full jQuery UI 1.13.2.
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.
Fixed
Pages that did not work
- Every error page was served as a blank 500.
error.phpcalledJError::raiseWarning(), a Joomla 3 class that no longer exists, so the error page itself crashed while trying to render. A visitor who hit a missing page got a server error instead of the template's 404, and the real reason was never shown. The file has been converted to the current API and now renders properly. - Stylesheet links pointing at files that are not in the template. Each returned Joomla's 404 page, which the browser then refused as the wrong content type, on every page load. All of them have been removed.
- Two menu links in the demo pointed at
#and went nowhere. "Special Offers" now opens the shop front and "Contact Us" the contact page.
Phones and tablets
- The product tab bar read "0 1 2". On phones the home page tabs showed their index instead of their names; they now read Storage, House Decor and Coffee Cups, and a title no longer breaks mid-word.
- The second phone menu button repeated the main menu. It now lists the shop categories, as the demo's phone menu does.
- Page content sat up to 68 px in from the edge. Every nested container was adding its own 24 px side gutter, so titles, the breadcrumb and the footer each ended up indented by a different amount. The margin is applied once now.
- The product grid sat inside a doubled gutter, leaving a 200 px card on a 375 px screen. The cards now line up with the page title and the Sort by control, and long option text fits.
- The phone header band covered only part of the logo row, so the logo and menu button sat on different backgrounds.
- The desktop corner badges (NEW / FEATURED / HOT) printed as extra lines inside the phone menu.
- Add to Cart buttons were 30 px tall - too small to tap reliably. They are 44 px now. Please note this needed a second pass: the first one set the height without making room for it, and the taller button was then cut off by the product tile, losing 24 px including the bottom of its own label. The row it sits in now grows to fit.
- Opening a phone panel no longer dims the logo and the menu button at the top of the page.
- The page cannot be panned sideways at any width down to 320 px.
VirtueMart
- The cart panel cut off its own Checkout button - it had a fixed 360 px height. It now fits its contents.
- The "added to your cart" pop-up is sized to read properly, with its two links as real buttons. 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 lines through the "Ask a question" form are gone, both the horizontal ones between rows and the vertical ones between columns. The donor's table-cell borders were drawing a grid around what is meant to read as a form.
- Guests can use "Ask a question", instead of being shown only a login form.
- Product option boxes cut their text off. A choice such as "S-M No additional charge" showed as "S-M No additional charg" and ran under the drop-down arrow.
- Product rows could collapse to a few pixels tall, letting content below overlap the product tiles.
- Prices in the lower product band had no space to their right, sitting hard against the edge of their tile.
- Required fields were narrower than the optional ones beside them on the login, registration and account forms. In the cart's sign-up fields, Password and Confirm Password now sit under their labels at full width.
- The login field icons showed as crossed boxes - the icon font that drew them had been removed. They are Font Awesome glyphs now.
The home page
- The last row of product tiles overlapped the black divider below it, with 1 px of clearance. There are 23 px now.
- The tile rows had no vertical gap at all, so rows ran together while the columns were spaced. The row gap now matches the column gap.
- The mega menu panel showed no descriptions, and its panel was crushed and mispositioned.
The print view and VirtueMart's pop-ups
component.php- the layout Joomla uses for the print view, and VirtueMart for its pop-up windows - anderror.phpwere still carrying the template's pre-Joomla-5 head: Bootstrap 2, no compatibility layer, and links to stylesheets that no longer exist. Both now load the same current stack as the main page, in the right order, so the pop-ups use the template's colours rather than Bootstrap's blue.
The Options screen in the administrator
- Joomla's guided tour hijacked the administrator. Joomla 5.4 ships a "what's new" tour set to start by itself and point at the dashboard, which sent every administrator request there. It no longer starts on its own.
- The Details panel was unreadable in the dark admin theme - it shipped a hardcoded light treatment, grey text with a white shadow. It now follows whichever admin theme you have selected.
Carried over from a customer report
- The search icon font was loaded from
media/jui/, a folder Joomla 4 removed, giving four 404s per page and a stray character in place of the icon. - Pagination arrows rendered as empty squares, because Joomla 4 and later emit icon names the template's icon stylesheet did not know.
- Tall single-column intro articles in the featured view were clipped to their title.
- The search button was detached from its input box by a global button margin.
- With thanks to Michael Mullan, whose Expression bug report led to this maintenance pass across our templates.
Removed
17 JavaScript libraries nothing loaded
- The
jsfolder has gone from 976 KB to 660 KB. Removed:jquery-1.8.1.min.js,jquery.nicescroll.min.js,dropkick.js,jquery.dropkick-1.0.0.js,bootstrap.min.js,flexibility.js,jquery.mobile.customized.min.js,jquery.stellar.min.js,selectivizr-min.js,modernizr.js,jquery.equalHeights.js,jquery.backstretch.min.js,superfish.js,supersubs.js,imgSizer.js,easypaginate.jsandjquery.noConflict.js. - Every one was checked against what the template actually loads, not against its name: each
<script>tag and eachaddScriptcall in the template's PHP was read, and the requests made by the rendered home, category, product, cart, login, register, search and error pages were recorded at desktop and phone widths. Nothing on the site asked for any of them. A second copy of jQuery, two drop-down plugins and two menu plugins were all shipping unused.
The bundled Bootstrap 2 stylesheets
- The whole
css/bootstrap/folder -bootstrap.css,bootstrap.min.css,bootstrap-responsive.css,bootstrap-responsive.min.css,bootstrap-rtl.cssandbootstrap-extended.css. The template is on Bootstrap 5 now and these were not being loaded.
Other
html/mod_virtuemart_product.zip, an archive sitting inside the shipped template, and an unusedhtml/modules.php.html/mod_menu_, an override folder with a trailing underscore that Joomla never reads, and a stray.php_file.- Twenty-six unused VirtueMart account overrides, including a parallel
bs3-set left from the Bootstrap 3 era. - The
utils/js_colourchanger/folder, which only the deadjscolorscript referred to. security-sweep-3f-report.md, an internal development report that had been riding along inside the shipped template tree.- Two third-party VirtueMart demo templates,
horme_3andvmbeez3, that are not part of this product and were bundled in the quickstart. Both also had broken error pages of their own, so activating either produced a 500 instead of an error page.
Security
- Template settings are escaped where they are printed into the page, so a value typed into the Options screen cannot inject markup into the front end. The handful of settings that are meant to contain markup - the heading titles this template family documents as accepting it - are passed through Joomla's HTML filter instead, which still strips scripts, styles, iframes and event handlers.
- The removed Joomla 3 API calls matter here too: a template that fatals in
error.phpcannot show a controlled error page, and what a server shows instead is outside the template's control. - Two fewer outside services are contacted at render time, with the Line Awesome content network and the MaxCDN icon link both gone.
Quickstart
- Built on Joomla 5.4.10 with VirtueMart 4.8.4, replacing the Akeeba
.jpaand Kickstart pair the previous download used. It installs like an ordinary Joomla site, with no extra restore tool to run first. - It arrives as a clean install rather than a copy of our demo: article hit counters at zero (they carried 25,724 views), product sales counters at zero, no action log, and no leftover user, session or order rows.
- The administrator shows only Joomla's own feature introductions, not the stack of postinstall messages the demo had accumulated.
- Four template styles are present - Cassiopeia, Theon, Atum and the VirtueMart administrator template - and nothing else. The donor's spare templates have been removed along with their database rows, so Joomla does not list a template that is not there.
- The update sites it ships with have been cleaned: one had stray whitespace in its URL, one still contained unreplaced build placeholders, and one was a duplicate.
- The demo's own mail-from address and sender name match the live demo.
Package
- The standalone template package installs on Joomla 5 and is built from the same tree as the quickstart.
templateDetails.xmlcarries a single semantic version. The previous download identified itself with a combined date-and-version string,15.11.2023 4.3.4/4.2.0, which Joomla cannot compare for updates.- The version shown on the template's own Options screen, the version in the manifest and the version in this changelog are now written from one source at build time, so they cannot drift apart.
- The copyright line is a real copyright statement rather than a bare link, and the author URL is
https.
- 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
- 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
- Release Date:
2024-11-29, Version:
29.11.2024 5.1.2/4.2.12, Notes:
- Fixed - Minor bugs with cart
- Release Date:
2023-11-17, Version:
08.10.2024 5.1.4/4.2.12, Notes:
- Upgraded - Now compatible with PHP 8.2
- Upgraded - Now compatible Joomla 5.1.4
- Upgraded - Now compatible VirtueMart 4.2.12
- 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 - Mobile Menu bug
- Fixed - Improvements on mobile header display
- 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-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-09-09, Version:
23.08.2022 3.10.11/4.0.6, Notes:
- Fixed - Template updated for PHP 8.1
- Release Date:
2022-08-23, Version:
23.10.2022 3.10.11/4.0.6, Notes:
- Fixed - Minor bug fixes for PHP 8.0
- Release Date:
2026-10-31, Version:
5.4.10, Notes: