Premium Joomla Templates for Joomla 5 and Joomla 6
Xeon Shop Energize Themes Templates Changelog
-
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. The panel also grows to fit it: it was capped at 360px and cut the new button off at its bottom edge.
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.
Phone header. Opening a phone panel (search, account, cart) no longer dims the logo and menu buttons at the top of the page.
Home tabs. The product tab strips on the home page now switch when a tab is clicked; with Joomla 5's Bootstrap they stayed on the first tab.
Phone cart count. With products in the cart, the phone's cart button now shows the number of items.
Slideshow arrows. The previous / next arrows sat 3px above the middle of their round buttons; they are centred.
Ask a question and menu links. Guests can now use Ask a question without logging in first, and the demo's Contact Us and Special Offers menu items, which pointed nowhere, open the contact page and the shop (Quickstart).
Parallax settings work again. The template's parallax options (slideshow and section backgrounds) had done nothing since Joomla 5, because their old jQuery plugin no longer runs. A small modern script now drives the same settings.
Tablet and phone layout rules. Two blocks of the template's own tablet and phone styles were written with
&&instead ofand, so browsers ignored them; they now apply as designed.Forms. On the login page the username box was narrower than the password field beside it. Every text field in the login, registration and account forms now takes the full row.
Phone headings. On the contact page and the article pages the page heading started 32px in on a phone (two paddings stacked); it now lines up with the text at 20px.
Module positions. The template tested pairs of module positions (the two footer columns, positions 3 and 4) with a Joomla 3 expression that Joomla 4 and later read as a single position name, so the test always failed; each position is now checked on its own.
Print view on phones. The print view had no mobile viewport, so on a phone it showed a shrunken desktop page; it now fits the screen.
Error page. An error caused by a missing item no longer prints the server's file paths.
Defaults for a fresh install. The site name / logo now links to the home page and the slideshow is switched on with autoplay on desktop and phones (
logoLinked,cam_turnOn,cam_autoAdvance,cam_mobileAutoAdvancedefault to on). Existing sites keep their saved settings.Quickstart. The contact page's image pointed at a file that does not exist; it is cleared. The sample menu links Parks and Shop pointed at pages that do not exist; they are unpublished.
K2 leftovers removed. The template still carried stylesheets for K2, which is not part of the Joomla 5/6 template:
css/k2.cssandcss/k2.print.css. They are removed.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. 19 JavaScript and CSS files nothing loads (281 KB), among them jQuery 1.8.1, Superfish, Modernizr and old Internet Explorer stylesheets; the old jQuery parallax plugin (
js/jquery.stellar.min.js), replaced by the script above; 9 template options nothing read (old drop-down menu effect settings and similar); template code that read settings the template never offered; stylesheet references to 11 images that do not exist, and links to stylesheets that do not exist.October 19, 2026Version 5.4.10.2
Template Options screen. The icons on the template's Options screen came from Font Awesome 4.6.3 on MaxCDN, which no longer serves it, so they were missing. They now load Font Awesome 6.5.2 with its version 4 name shims from cdnjs.
Quickstart. Joomla's Language Overrides search list shipped filled with several thousand strings indexed on the original developer's computer, file paths included. It is now empty; Joomla fills it again when you refresh it in Language Overrides.
October 19, 2026Version 5.4.10.1
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.October 14, 2026Version 5.4.10
Joomla 5.4.10. The Quickstart now installs Joomla 5.4.10 (Joomla 5.4.10 release notes), and the template version is now 5.4.10 to match.
Error pages. "Page not found" and "access denied" pages now show inside the template, with its header, menus and footer, and fit a phone screen.
Account pages. The password reset, login and username reminder forms show again when they have no menu item of their own (the home page layout was hiding them).
Phones. The testimonials heading no longer touches the screen edge.
Quickstart. A fresh install no longer lists stale update notices.
October 2, 2026Version 5.4.9.1
Quickstart fix. The Quickstart no longer fails to install on MySQL hosts with a "prepared statement protocol" error. Thanks to Iryna for reporting this. The template itself is unchanged apart from its version number.
October 2, 2026Version 5.4.9
First Joomla 5 native release. Xeon Shop has been rebuilt for Joomla 5.4.9 + VirtueMart 4.8.4 + PHP 8 + Bootstrap 5. There was no Joomla 5 download of Xeon Shop before this one: the previous download is the Joomla 4 package (xeon.zip, version string26.06.2023 4.3.0/4.0.13, built for Joomla 4.3 and VirtueMart 4.0.13), and everything below is measured against it. Every Joomla 3 class call is gone (240 calls in 36 files), the template options use Joomla 5's own on/off switches and a real colour picker, every template setting written into the page is escaped, and there is a new phone layout with a slide-out menu and a fingertip-sized toolbar. The page layout inindex.phpnow uses Bootstrap 5 columns, while the VirtueMart overrides and module content keep their Bootstrap 2 classes and render on Joomla 5's Bootstrap 5 through a compatibility stylesheet. jQuery still loads (Joomla's own copy) for the camera slideshow, the Owl and Slick product sliders, the Selectric drop-downs, the cookie notice and the parallax bands; the old jQuery menu, background and polyfill plug-ins are no longer loaded. Template files: 241 → 237, with 9 added, 13 removed and 47 modified. The template version is now 5.4.9, matching the Joomla version it ships with.Added
Bootstrap 5 rendering through a compatibility stylesheet
index.phploads Joomla 5's bundled Bootstrap 5 (/media/vendor/bootstrap/css/bootstrap.min.css) before the template's own stylesheets, sotemplate.cssstill wins the cascade.- New
css/bs2-bs5-bridge.css, linked last in the page head (immediately before</head>, on every page, with a file-time version marker). It lets Xeon Shop's Bootstrap 2 markup render correctly on Bootstrap 5:- Bootstrap 2 grid:
.row-fluid/.spanNwidths and gutters, nested spans and.offsetN, row clearfix, and phone stacking of every span column. - The Bootstrap 2 responsive utilities (
hidden-phone,visible-phone,hidden-tablet,visible-tablet,hidden-desktop,visible-desktop), tab panes, collapse,.well/.page-headerand Bootstrap 2 base typography. - A Bootstrap 5 modal shell, and Joomla 4/5 icon classes (pagination arrows, the password eye and others) mapped to Font Awesome 6 glyphs.
- Bootstrap 2 grid:
- New
js/cs-jq-compat.js: restores three jQuery 1.x calls that Joomla 5's jQuery 3.7 removed but the bundledcamera.min.jsslideshow andjquery.stellar.min.jsparallax still use (.live(),.offset()on the window, and.load(fn)as a load-event shortcut).
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, with submenus opening in place. - A phone toolbar of six 44×44 px buttons: Section menu, Log in, Register, Search, Follow us (the social links) and Cart. The buttons take the template's accent colour on every page.
- Section menu opens the shop categories. It reads a new module position,
cs-secondary(declared intemplateDetails.xmland output in a hidden holder inindex.php), so any menu module published there appears behind that button. - Cart page on phones: each product row becomes a card with labelled price, quantity, tax and total (they were printed as bare, unlabelled values), the totals become label/value lines, and the billing, shipping and checkout buttons run full width at 44 px. Nothing runs off the screen.
- Account pages on phones (login, registration, your account) show the page content first, with only the breadcrumbs and the store category menu above it.
- Blog and category page numbers wrap onto a second line on phones, with "Page 1 of N" above them instead of running under the buttons.
- The login and cart form fields use 16 px text on phones, so iPhones no longer zoom the page in when you tap them.
- The slideshow's previous / next arrows are visible on touch screens.
camera.jsships them atopacity: 0until the mouse hovers, which never happens on a phone. - The footer bands (
#bottom-bgand#footer) inset their text 20 px on phones, the same as the content column. Their backgrounds stay full width.
Favicon
- New Favicon tab in the template options (fieldset
faviconsettings, fieldsfaviconandfavicontool, field classfields/favicontool.php). Pick one image and the template outputs the icon set (phFaviconSet(),phIcoBytes()inindex.php); the template's ownfavicon.icostays as the fallback. With thanks to Gianluca, whose favicon question inspired this tool. - 10 new language strings (
TPL_XEON_FAVICON_*,TPL_XEON_FAVICONTOOL_*). The language file goes from 74 to 84 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). - The Twitter slot is now X (formerly Twitter) with the X logo. The full set is X, Facebook, Instagram, Threads, Bluesky, Mastodon, LinkedIn, YouTube, TikTok, Vimeo, Pinterest, Discord and RSS, plus the five custom social slots.
- Social icons are Font Awesome 6 brand glyphs (
fa-x-twitter,fa-bluesky,fa-threadsand so on) in place of the oldsocicon-*icon font, and each of the 13 network links carries a title.
Template options (administrator)
- Colour picker: the open-source Coloris picker ships inside the template (
css/coloris.min.css,js/coloris.min.js, field classfields/colorpicker.php), so nothing is fetched from another site. - Custom CSS field (
customcss, on the Header & Footer Custom Code tab), and support for acss/custom.cssfile. Both load after the compatibility stylesheet, so your rules win. The file is deliberately not listed in the package, so a template update can never overwrite or remove it, and the field is stored in the database. - New
fields/adminui.php: help rows in the options run the full width of the form instead of a narrow column, and the template's Details panel follows Joomla's light or dark admin theme.
Changed
Joomla 5 platform
- Built for Joomla 5.4.9 and VirtueMart 4.8.4 (previous download: Joomla 4.3, VirtueMart 4.0.13).
templateDetails.xmlversion26.06.2023 4.3.0/4.0.13→5.4.9and creation date28/02/2018→2026-10-02. The version shown in the template description and the@versiondocblock inindex.phpmatch.method="upgrade"is kept, so an existing install updates in place.
Layout grid
- The page layout in
index.phpnow uses Bootstrap 5 rows and columns:.row-fluid32 → 3,.spanN57 → 8,.col-md-N0 → 49.css/template.csscarries matching.col-md-Nselectors (102) beside its.spanNones, so the module-row widths carry over to the new columns. - The VirtueMart overrides and the module content keep their Bootstrap 2 classes (
.row-fluid16,.spanN30 inhtml/), rendered by the compatibility stylesheet.
J3 → J5 API migration
- 240 Joomla 3 static class calls in 36 files → 0. Each moved to its namespaced Joomla 4+ form:
JFactory→Factory,JText→Text,JHtml→HTMLHelper,JRoute→Route,JUri→Uri,JModuleHelper→ModuleHelper, and the rest. 219 calls were converted in 34 files; the other 21 went with two removed files (see Removed). - Heaviest files:
index.php(37),html/mod_login/default.php(20),html/com_virtuemart/user/login.php(19),html/com_virtuemart/productdetails/default.php(16),error.php(13),html/mod_virtuemart_product/single.php(13),html/mod_virtuemart_product/slick-slider.php(13),html/mod_virtuemart_product/default.php(11). - Also converted:
JDispatcher::getInstance()->trigger()→Factory::getApplication()->triggerEvent()inuser/login.phpanduser/edit_address.php;JDocumentHTML::countModules()→HtmlDocument::countModules()andnew JRegistry()→new Registry()inindex.php(2 each); the fourjimport()calls removed;JError::raiseWarning(404, …)→new Exception(…, 404)inerror.php. - Every VirtueMart override folder was converted:
askquestion,cart,category,productdetails,sublayouts,userandvirtuemart, plusmod_virtuemart_cart,_category,_currencies,_manufacturer,_product,mod_loginandmod_search. In total 41 of the 51 PHP overrides changed.
Template options (administrator)
- 100 field type changes in
templateDetails.xml:- 80 on/off settings: the legacy
class="switch" type="checkbox"→ Joomla 5'sradioswitcher (for exampleOverrideDefaultSettings,RSSON,AdditionalGFontON,H1TitleImgText,cam_autoAdvance,breadcrumbcontentwidth). With the retired social switches removed and five new ones added, the template has 85 switchers and no legacy checkboxes (84 before). - 20 colour settings:
type="color"→type="colorpicker", with a live swatch.
- 80 on/off settings: the legacy
- Template options: 338 → 345 fields, 15 → 16 tabs. Eleven tab names lose their trailing "Settings" (for example Built-in Slideshow, Drop Down Menus, Color), and the social labels read "Show X (formerly Twitter)", "Show Facebook", "Show RSS" and so on instead of "… ON/OFF".
Icons and fonts
- Front end: Font Awesome 4.6.3 from MaxCDN → Font Awesome 6.5.2 (
all.min.css+v4-shims.min.cssfrom cdnjs). The template's existingfa fa-*class names keep working through the shims. - Google Fonts load through a stylesheet
<link>(withpreconnectanddisplay=swap) inindex.phpand incomponent.php(print view and VirtueMart pop-ups). TheWebFontConfigJavaScript loader, which fetchedwebfont.jsfromajax.googleapis.com, is gone (2 → 0).
Menus, backgrounds and dialogs
- The hover drop-down menus are driven by CSS instead of the Superfish/Supersubs jQuery plug-ins. A closing drop-down waits 0.6 s and submenus are attached to their parent item, so the drop-down stays open while the pointer moves down to it.
- The background image set in the template options is sized with CSS (
background-size: cover) instead ofjQuery.backstretch(). - The login dialog is a Bootstrap 5 modal (
.modal-dialog.modal-dialog-centered>.modal-content) opened and closed withdata-bs-toggle/data-bs-target/data-bs-dismiss(0 → 8); its Close control is a real button. - Template-side jQuery call sites: 174 → 148.
Store pages
- Category descriptions no longer carry 30 px of side padding (
.category_description), so the text lines up with the Ordering bar and the products below it, on desktop and phones. css/template.css: 219,016 → 223,228 bytes.
Fixed
Pages that returned a server error on Joomla 5
- Shop login page:
html/com_virtuemart/user/login.phpcalledJDispatcher,behavior.modalandbehavior.formvalidation, none of which exist in Joomla 5, so the VirtueMart login page returned a 500. It now usestriggerEvent()andbehavior.formvalidator, and the modal call is gone. With thanks to Zoltán Szász, whose follow-up report led to theformvalidationfix across our templates. - Checkout address form:
html/com_virtuemart/user/edit_address.phpcalledJDispatcherandbehavior.framework, andcount($this->userFields['functions'])on a value that is empty for guests, which is a fatal error on PHP 8. Editing the billing or shipping address during checkout returned an error. It now usestriggerEvent()and!empty(). With thanks to Zoltán Szász, whose report found the PHP 8 crash. - Slick product slider layout:
html/mod_virtuemart_product/slick-slider.phpcalledbehavior.modal, which Joomla 5 removed, so any product module set to that layout stopped the page. Removed. - Error pages:
error.phpusedJErrorandJText. When Joomla's Behaviour - Backward Compatibility plugin is off, and always on Joomla 6, Joomla could not render any error page, so every "page not found" became a 500.
Add to Cart
- Add to Cart did nothing on the home page and category listings: the button showed a spinner that never finished and nothing was added. The template's
html/com_virtuemart/sublayouts/addtocart.phpleft out the security token VirtueMart requires, so the request was redirected instead of answered. The token is added.
Requests for files that do not exist
- The home page requested
css/camera.css, which the template has never contained. Removed. - The error page requested
css/reset.css,css/text.cssandcss/typography.css, none of which exist. Removed, and on right-to-left sites it now loads the template's realtemplate-rtl.css(it asked for a missingtemplate_rtl.css).
Maintenance pass
- The
@font-faceincss/template.csspointing at Joomla 3'smedia/jui/fonts/IcoMoon font, which Joomla 4 removed, is disabled. - Pagination arrows: Joomla 4/5's
icon-angle-left/-right/-double-left/-double-rightbuttons had no mapping in the template's icon CSS, so they showed no arrow. They now show Font Awesome 6 arrows. - Featured articles: in a one-column featured (home) view, tall intro articles were clipped to their title.
.blog-featured .blog-items.columns-1 .blog-itemnow usesdisplay:block; overflow:visible; height:auto. - Search button: the global button margin pulled the search button away from its box.
#search-position .btnnow hasmargin:0. - With thanks to Michael Mullan, whose Expression bug report led to this maintenance pass across our templates.
Removed
Files removed
- Bootstrap 2: the whole
css/bootstrap/folder (bootstrap.css,bootstrap.min.css,bootstrap-responsive.css,bootstrap-responsive.min.css,bootstrap-extended.css,bootstrap-rtl.css,bootstrap-tooltip-extended.css). Joomla 5's Bootstrap 5 and the compatibility stylesheet take its place. js.zip: a 147 KB archive of 26 old script files that sat in the template root.utils/admin-js.js: a Joomla 3-era admin script.html/mod_k2_content/(Slider/default.phpand twoindex.htmlfiles): an override for K2, which the template does not use.html/com_virtuemart/productdetails/default_addtocart.php: nothing called it, and it built its own cart form without the security token.
Legacy scripts no longer loaded
index.phpandcomponent.phpno longer loadsuperfish.js,supersubs.js,jquery.backstretch.min.js(loaded twice before),jquery.mobile.customized.min.js,modernizr.js,selectivizr-min.js, thehtml5.jsshim or the Googlewebfont.jsloader. The local files remain injs/(30 → 33 files) but nothing loads them.
Legacy stylesheets no longer loaded
- Font Awesome 4.6.3 (
font-awesome.min.css), and the Internet Explorer sheetsie.css/ie6.csswith their conditional comments (the files remain incss/).
Retired social services
- Four social slots removed with their switches: Google+ (
gplus), StumbleUpon, Digg and Blogger.
Security
- 13 output helpers added (defined in
index.php; the CSS and JavaScript ones also incomponent.phpanderror.php), used at 285 call sites. Every template setting written into the page is escaped for where it lands:phEsc()(97 uses): HTML text and attributes.phRichText(): the site-name and slogan fields, which may contain simple markup. Joomla's input filter keeps the markup but strips scripts, styles, iframes andon*event handlers.phHexColor()(47 uses),phCssToken(),phCssNum(),phCssDim(),phCssFont(),phCssSelector(),phCssUrl(): colours, sizes, fonts, selectors and image URLs written into the page's CSS.phJsStr(),phJsLit(): values written into inline JavaScript.phFaviconSet(),phIcoBytes(): favicon output.
- Raw
echo $this->params->get(…)output: 211 inindex.phpand 4 incomponent.php→ 2, the Header and Footer Custom Code fields, which are administrator-only by design. - Three
alt="<?php echo strip_tags(…) ?>"echoes, where a quote in a setting could break out of the attribute, now go throughphEsc(strip_tags(…)). - Module, menu and tab titles and module class suffixes are escaped in the module chromes
html/layouts/chromes/megamenu.php,parallax.php,slides.php,testimonial.php,vmdefault.php,vmdefaultlogin.phpandvmtab.php, inhtml/modules.php,mod_menu,mod_customandmod_virtuemart_cart, and inindex.php(the login dialog and the left/right header panels). Module background-image URLs inparallax.php,testimonial.phpandmod_customare escaped or sanitised for the attribute or CSS they land in. - The 18 social links escape their URL and open with
rel="noopener". - The colour-theme name used in
component.php's stylesheet path is filtered to a plain token. - The error page escapes the error message and page title it prints, and casts the error code to a number.
htmlspecialchars/ escape calls in the template: 6 → 53.
Quickstart Installer
The Quickstart is a complete Joomla 5.4.9 site with VirtueMart 4.8.4 and Xeon Shop pre-configured as the active template, installed with Joomla's own web installer. The Joomla 4 download was an Akeeba
.jpaarchive restored with Kickstart.- Bundled extensions: Akeeba Backup 10.4.0, Weblinks 5.1.0, MCP For J 2.7.5.
- The site
templates/folder holds onlycassiopeia,systemandxeon. VirtueMart's demo templateshorme_3,vmbeez3andvmbasicare not included; the first two had error pages that returned a server error. - The two VirtueMart 3 Klarna payment plug-ins (
plg_vmpayment_klarna,plg_vmpayment_klarnacheckout), which VirtueMart 4 no longer ships, are not included. - A CATEGORIES module (
mod_virtuemart_category) is published atcs-secondary, so the phone's Section menu button opens the shop categories. - The site-level language file
language/en-GB/en-GB.tpl_xeon.iniis the current one, so the template options show their labels, including the new favicon strings. - Joomla 5.4's "What's New" guided tour (tour 15) does not start by itself (
autostart = 0), and Joomla's Statistics plugin is set to never send data. - A clean starting state: the action log is empty, and the post-installation messages are trimmed to Joomla's five new-site advisories (welcome, action logs, privacy, multi-factor authentication, automated updates).
Package format
- Standalone template: now a Joomla package,
pkg_xeon-5.4.9.zip(pkg_xeon.xml), that installs the Xeon Shop template (tpl_xeon.zip) and registers it in the package manager. It declaresmethod="upgrade", so an existing Xeon Shop updates in place, and<blockChildUninstall>true</blockChildUninstall>, so the template is removed through the package rather than on its own. The Joomla 4 download was a plain template zip. - Quickstart bundle:
xeon-quickstart-J5.4.9.zip, a complete Joomla 5.4.9 install with VirtueMart 4.8.4 and Xeon Shop pre-loaded as the active template.
Earlier history and version numbering: before this release Xeon Shop was available only for Joomla 4 (latest download dated 26.06.2023, version string4.3.0/4.0.13, the Joomla and VirtueMart versions it was built for). That package stays in the download area under LEGACY - Joomla 4 - Not Recommended For New Projects. From 5.4.9 the first three digits of the template version match the Joomla release it is built for; a later fix on the same Joomla release adds a fourth digit (5.4.9.1).April 10, 2023Version 01.04.2023 4.2.8/4.0.12
- Fixed - Template updated to be compatible with Joomla 4.2



