Cosmo Virtuemart Template Changelog
- Details
- Category: Template Change Log
- Change Log:
October 19, 2026
Version 5.4.10.3
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 19, 2026Version 5.4.10.2
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.October 16, 2026Version 5.4.10.1
Store owners. The account page no longer shows an error when a store owner or vendor is logged in.
Cart. The cart icon always shows how many items are in the cart, not only on mouse-over.
Phones. The show-password button stays on the same line as the password field.
Articles. The Previous and Next buttons sit at opposite ends of the article.
Quickstart. Weblinks updated to 5.2.0.
October 15, 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.
Phones. Page text and the login form labels no longer touch the screen edge.
Category pages. The category description lines up with the products (no extra space at the sides).
Quickstart. A fresh install no longer lists stale update notices.
October 13, 2026Version 5.4.9.2
Breadcrumbs. Fixed a template bug that gave the breadcrumb trail the wrong CSS class, so the template's own breadcrumb styling did not apply.
JavaScript error fixed. Every page logged a script error because the template's copy of jQuery UI did not include the autocomplete widget that VirtueMart uses. The template now ships the full jQuery UI 1.13.2 that VirtueMart expects.
Quickstart. The quickstart includes MCP For J 2.8.3.
October 2, 2026Version 5.4.9.1
Quickstart install fix. The quickstart now installs completely on MySQL databases. Before, the Joomla installer stopped part-way through on MySQL hosts; MariaDB hosts were not affected. Thanks to Iryna for reporting this.
September 30, 2026Version 5.4.9
Joomla 5.4.9. Updated for Joomla 5.4.9, a security and bug-fix release. The quickstart now installs Joomla 5.4.9.
September 28, 2026Version 5.4.8.1
Security update. Every template setting that is written into your pages is now escaped for the place it lands in (HTML, attributes, CSS and JavaScript), including the site name and slogan in image alt text, and module, menu and tab titles wherever the template prints them (module headings, title attributes and the mega menu). A setting or title containing a quote or markup can no longer break out of its place in the page. The error page escapes its message and title too. There are no visual changes. Recommended for all sites.
September 11, 2026Version 5.4.8
First Joomla 5 native release. Cosmo has been brought forward from the previous download (07.08.2025 5.3.0/4.4.4, built for VirtueMart 4.4.4) to Joomla 5.4.8 + VirtueMart 4.8.4 + Bootstrap 5. Cosmo keeps its own Bootstrap 2 layout classes and renders on Joomla 5’s Bootstrap 5 through a compatibility stylesheet, so existing module and article markup keeps its layout. This release adds a phone header with a slide-in menu and a toolbar, a show/hide button on password fields, a colour picker for every colour setting, Joomla’s native on/off switches, a favicon tool and current social networks. 267 Joomla 3 API calls acrossindex.php, the print and error views and the overrides have been replaced, the template no longer loads its own Bootstrap 2 copy, its legacy browser shims or the Superfish, Supersubs and Backstretch plug-ins, and template settings written into the page now go through escaping helpers. Across the template, 10 files were added, 9 removed and 55 modified (276 → 277 files). The template version now matches the Joomla version it ships with.Added
Bootstrap 5 compatibility layer
- New
css/bs2-bs5-bridge.css(116CS-PATCHblocks), loaded as the last stylesheet in the head with a file-time version marker. It maps Cosmo’s Bootstrap 2 grid (.row-fluid,.spanN, offsets, column stacking on phones), thehidden-phone/visible-phoneutilities, tabs, collapse, tooltips and popovers and the modal shell onto Joomla 5’s Bootstrap 5, and keeps the page at the original 1170 px width on wide screens (CS-PATCH: container-1170-cap). - Joomla’s own icon classes (
icon-eye,icon-angle-left/-right/-double-left/-double-rightand others) are mapped to Font Awesome glyphs (CS-PATCH: joomla-icon-classes-to-fa6), so the password show/hide button and the pagination arrows draw an icon. - Bootstrap 2 marks an open dialog
.inwhere Bootstrap 5 uses.show; the bridge re-points those rules (CS-PATCH: bs2-fade-in-to-show,bs5modal-on-bs2) so the log-in dialog opens visible and centred.
jQuery 3 compatibility
- New
js/cs-jq-compat.js, loaded right after Joomla’s head scripts. It restores four jQuery 1.x features that Joomla 5’s jQuery 3.7 no longer has but Cosmo’s bundled scripts still use:.live()(the built-in slideshow’s play/stop controls incamera.min.js),.offset()on the window and.load(fn)as a load-event shortcut (both used by thejquery.stellarparallax bands), and$.browser, whichcamera.min.jsreads when it starts.
Phone layout
- New
js/cs-mobile-generic.js: at 767 px and below Cosmo gets a compact header with a 56×56 px menu button in the logo row that opens a slide-in menu drawer built from the site’s real nested menu, with a button to open each sub-menu. - One centred toolbar row in the header with six buttons: Section menu (the page’s sidebar menu, or the main menu’s top level where a page has none), Log in, Register, Search, Follow us (the social links) and the Cart. All six use Cosmo’s accent colour (
#b71b4f) with white icons, and the cart’s item count sits on the corner of the cart icon. - The phone search panel is full width and has a real Search button; its field uses a 16 px font and a 44 px height, so iPhones do not zoom the page when you tap into it.
- Open panels close when you tap the shaded area behind them, press Escape, or widen the window past phone size.
- The page cannot be pushed sideways on phones (
CS-PATCH: mobile-root-overflow-clip), and the layout stays edge to edge (cs-no-bs2-gutterbody class), as Cosmo’s own phone layout was. - All of this is hidden at 768 px and wider; the desktop layout is unchanged.
Password show/hide
- New
js/cs-password-eyeball.js: every password field (log-in dialog, log-in page, registration and account forms, including fields added after the page loads) gets an eye button that shows or hides what you have typed.
Colour picker
- New custom field
fields/colorpicker.phpwith the bundled Coloris picker (js/coloris.min.js,css/coloris.min.css). All 20 colour settings (color1–color12,sitenamecolor,slogancolor,cookiecolor1–cookiecolor4,cam_loaderColor,cam_loaderBgColor) changed from Joomla’s built-intype="color"field tocolorpicker, with a live swatch and keyboard support. Existing values carry over unchanged. - New
fields/adminui.php: a hidden field that loads the jQuery framework the Options screen’s scripts need, makes the template’s Details panel follow Joomla’s light or dark admin theme, and runs the Favicon tab’s help text across the top of the tab instead of squeezing it into the label column.
Favicon tool
- New Favicon tab (fieldset
faviconsettings) with a media field (favicon) and a crop tool (fields/favicontool.php): pick any image, drag a square over the part you want, and create the favicon. With thanks to Gianluca, whose favicon question inspired this tool. index.phpbuilds the set through two new helpers,phFaviconSet()andphIcoBytes(): a realfavicon.ico(16, 32 and 48 px), 32, 192 and 512 px PNGs and a 180 px Apple touch icon, cached inimages/favicon-generated/and linked automatically..icoand.svgfiles are used as they are; with no image chosen, the template’s ownfavicon.icois used.- 10 new language strings in
en-GB.tpl_cosmostore.ini(74 → 84), e.g.TPL_COSMOSTORE_FAVICON_TAB,TPL_COSMOSTORE_FAVICON_LABEL,TPL_COSMOSTORE_FAVICONTOOL_CREATE.
Modern social network support
- Five new social services, each with a URL field and an on/off switch: Threads, Bluesky, Mastodon, TikTok, Discord (fields
threads/threadsON…discord/discordON). - Twitter is now X: the
twitterfield is labelled “X (formerly Twitter)” and shows the X logo. - The header’s social links now cover 13 services (X, Facebook, Instagram, Threads, Bluesky, Mastodon, LinkedIn, YouTube, TikTok, Vimeo, Pinterest, Discord, RSS). Each is a Font Awesome 6 glyph (
fab fa-*,fas fa-rss) instead of a Socicon font glyph, has a screen-reader label and a title, and opens withrel="noopener". - The on/off switches are labelled “Show X (formerly Twitter)”, “Show Facebook” and so on.
Fonts and icons
- The front end loads Font Awesome 6.5.2 (
all.min.css) withv4-shims.min.cssfrom cdnjs.cloudflare.com, instead of Font Awesome 4.7.0 from MaxCDN. The template’s own icons use the Font Awesome 6 classes (fa fa-*inindex.php7 → 0; themod_menusub-menu arrows and the category grid/list switch usefas).
Security helpers
- Four new escaping helpers at the top of
index.php:phEsc()(HTML escaping),phHexColor()(colour values, falls back to#000000),phCssDim()(sizes, acceptingpx,em,rem,%,vh,vwand other units) andphRichText()(formatted text). Details under Security.
Changed
Joomla 5 platform
- Built for Joomla 5.4.8 and VirtueMart 4.8.4 (the previous download was built for VirtueMart 4.4.4).
- The template renders on Joomla 5’s bundled Bootstrap 5 (
/media/vendor/bootstrap/css/bootstrap.min.css, plusbootstrap.rtl.min.cssfor right-to-left sites) throughcss/bs2-bs5-bridge.css, instead of the three Bootstrap 2 stylesheets it used to load from its owncss/bootstrap/folder. - The print view and VirtueMart pop-up windows (
component.php, used for “Ask a question”, print and similar) and the error page (error.php) now load the same Bootstrap 5 base and compatibility stylesheet as the main layout, last in the cascade. Before, they rendered Cosmo’s Bootstrap 2 styling with no compatibility layer. templateDetails.xmlversion07.08.2025 5.3.0/4.4.4→5.4.8, creation date09/09/2022→2026-09-11; the version shown on the Options screen matches.method="upgrade"kept, so an existing install updates in place.
Log-in dialog on Bootstrap 5
- The log-in dialog is a Bootstrap 5 modal (
modal fadewithmodal-dialog-centeredandmodal-content, wasmodal ahide afadewith an inlinedisplay:none), opened withdata-bs-toggle/data-bs-target. - Both close controls use
data-bs-dismiss="modal"(wasdata-dismiss). The footer’s Close is now a button instead of a link that ranjQuery('#LoginForm').hide(); jQuery('#LoginForm').modal('hide');.
J3 → J5 API migration
- 267 Joomla 3 static calls replaced (
JRoute→Route,JText→Text,JURI→Uri,JFactory→Factory,JHtml/JHTML→HTMLHelper,JModuleHelper→ModuleHelper,JPluginHelper→PluginHelper,JComponentHelper→ComponentHelper,JDocumentHTML::countModules()→$this->countModules(),JError::raiseWarning()→new Exception()). These aliases exist only while Joomla’s Behaviour – Backward Compatibility plugin is enabled, and not at all in Joomla 6. index.php37 → 0, plus its 4jimport()calls;component.phpanderror.phpconverted.- Template overrides converted (calls per file):
html/mod_login/default.php20 (and it falls back to$type = 'login', which Joomla 5 no longer passes, instead of raising an “Undefined variable” warning).html/com_virtuemart/user/login.php14,edit_address.php6,bs3-edit_address.php5,bs3-edit_vendor.php4,edit.php3,bs3-edit.php3,edit_orderlist.php3,mail_raw_regvendor.php3,edit_vendor.php2,bs3-edit_shopper.php1,bs3-edit_address_userfields.php1,mail_html_reguser.php1,mail_raw_reguser.php1.html/com_virtuemart/productdetails/default.php16,default_images.php4,default_reviews.php4,default_addtocart.php3,default_customfields.php1,default_showcategory.php1.html/com_virtuemart/category/default.php7,productsviewarray.php4,categories.php1.html/com_virtuemart/virtuemart/default_products.php7,default_categories.php4,default.php1.html/com_virtuemart/cart/default_pricelist.php5,default_address.php2,default_coupon.php1;sublayouts/addtocart.phpandaddtocartbar.php1 each.html/com_virtuemart/askquestion/form.php3,bs3-form.php3,mail_html_question.php2.html/mod_virtuemart_product/single.php13,slick-slider.php13,default.php11;html/mod_virtuemart_category/default.php6;html/mod_virtuemart_cart/default.php3;html/mod_virtuemart_manufacturer/default.php2;html/mod_virtuemart_currencies/default.php1.html/mod_k2_content/Slider/default.php18;html/mod_articles_latest/default_items.php6;html/mod_menu/default.php2;html/mod_search/default.phpandhtml/mod_breadcrumbs/default.php1 each.
- In all, 49 of the 88 PHP overrides under
html/were modified.
Template Options screen
- 109 field type changes in
templateDetails.xml. The 89 remaining legacyclass="switch"checkboxes (e.g.RSSON,H1TitleImgText,OverrideDefaultSettings,AdditionalGFontON,cam_autoAdvance,botmodulescontentwidth) now use Joomla’s native on/off switchers (94 in all with the new social switches), and the 20 colour settings are colour pickers. - Fields 355 → 361, fieldsets 15 → 16. Tab names no longer end in “Settings”: “Fonts”, “Site Name & Slogan”, “Theme”, “EU Cookie Law Window”, “Drop Down Menus”, “Header & Footer Custom Code”, “Built-in Slideshow”, “Slick Products Slider”, “OWL Products Slider”, “Testimonials Slider”, “Manufacturers Slider”, “Product Images”, “Side Pop Up Box”, “Color”.
- The Options screen’s icon font now uses Font Awesome 6.5.2 + v4 shims from cdnjs instead of Font Awesome 4.6.3 from MaxCDN (
maxcdn2 → 0 across the template). The panel’sfa fa-*icons keep working through the shims.
Fonts
- The Google Fonts
WebFontConfigJavaScript loader (which fetchedwebfont.jsfrom ajax.googleapis.com before any font could load) is replaced by a direct stylesheet link for the same fonts, withpreconnecthints anddisplay=swap, in bothindex.phpandcomponent.php(WebFontConfig2 → 0).
Menus and background without old jQuery plug-ins
- Drop-down menus open on hover through CSS instead of the Superfish/Supersubs plug-ins, and each sub-menu is attached to its parent item so it stays open while the pointer moves onto it. The Drop Down Speed setting and the opacity, height and width animation switches applied only to those plug-ins and no longer have an effect; the 2- to 5-column widths still apply.
- The page background image (
bodybackgroundimage) is applied with CSSbackground-size: coverinstead of Backstretch. - None of these scripts is loaded any more. jQuery itself still loads for the slideshow, the carousels and the parallax bands.
Stylesheets
blog.css,template.css,template-rtl.css, the compatibility stylesheet and the new scripts carry a file-time version marker, so style changes show straight after an update instead of waiting for visitors’ browser caches to expire.css/template.css(216,860 → 223,923 bytes): 103 Bootstrap 5 selectors added beside their Bootstrap 2 originals (.row/.col-md-Nnext to.row-fluid/.spanN, e.g.#footer .col-md-6,#customers-box .col-md-8.offset-md-2), so Cosmo’s own layout rules apply to either markup.
Fixed
- Every “page not found” returned a server error when Joomla’s backward-compatibility plugin was off (and always on Joomla 6).
error.phpusedJError::raiseWarning()andJText; it now uses the Joomla 4+ API. - The VirtueMart login form could stop with “behavior::formvalidation not found”. The Joomla 3
behavior.formvalidationcall inhtml/com_virtuemart/user/login.phpis now the Joomla 5behavior.formvalidator(1 → 0). With thanks to Zoltán Szász, whose report found it. - The address form could fail on PHP 8.
html/com_virtuemart/user/bs3-edit_address.phpcalledcount($this->userFields['functions'])on a value that can be empty; it now uses!empty(). Also thanks to Zoltán Szász. - The built-in slideshow raised a script error.
jquery.mobile.customized.min.jsfails while starting up under jQuery 3.7 and nothing in the template uses it; it is no longer loaded. - Requests for stylesheets that do not exist were removed:
css/camera.css(on every page with the built-in slideshow),css/reset.css,css/text.cssandcss/typography.css(error page), andcss/template_rtl.css(print and error views on right-to-left sites). Each returned the site’s “page not found” response. - The Options screen’s icons were requested from MaxCDN, which has shut down (see Template Options screen).
- Fixes from a maintenance pass across our templates:
- The
@font-faceincss/template.csspointing at the removedmedia/jui/fonts/IcoMoon font is disabled; it returned 404s on every page. - The pagination arrows (Previous, Next, First, Last) and the password show/hide button could show as empty boxes; they now draw Font Awesome glyphs.
- Featured-article intro text in a single column is no longer clipped to its title (
.blog-featured .blog-items.columns-1). - The search button sits flush with its search box again (
CS-PATCH: cookstown-search-btn).
- The
Removed
Legacy scripts and stylesheets no longer loaded
- Scripts:
superfish.js,supersubs.js,jquery.backstretch.min.js,jquery.mobile.customized.min.js,modernizr.js,selectivizr-min.js, the remotehtml5.jsshiv from html5shiv.googlecode.com, and thewebfont.jsloader. The local files remain injs/but nothing loads them. - The inline
jQuery.browserInternet Explorer detection block that only Superfish used. - The Internet Explorer stylesheets
ie.cssandie6.cssand the conditional comments that loaded them and the shims. The files remain incss/. - Font Awesome 4.7.0 from MaxCDN (replaced by Font Awesome 6.5.2, above).
The template’s own Bootstrap 2 copy
css/bootstrap/:bootstrap.css,bootstrap.min.css,bootstrap-responsive.css,bootstrap-responsive.min.css,bootstrap-extended.css,bootstrap-rtl.css,bootstrap-tooltip-extended.css.index.phploaded three of them; Joomla 5’s Bootstrap 5 and the compatibility stylesheet take their place.
Dead module chromes
html/modules.php, which defined sevenmodChrome_functions (vmdefault,vmdefaultlogin,vmtab,testimonial,megamenu,parallax,slides). Joomla 5 has nomodChrome_code path; it uses the files of the same names inhtml/layouts/chromes/, which remain.
Unused files
html/com_content.zip, an archive of 24com_contentoverride files left inside the overrides folder.
Retired social services
- Four social slots removed with their switches: Google+ (
gplus), StumbleUpon, Digg, Blogger.
Security
- Template settings written into the page go through the new helpers at 182 call sites in
index.php: 126phEsc(), 48phHexColor(), 5phCssDim()and 3phRichText(). They cover the theme colours (color1–color12) and the size, font-size, parallax and position values in the inline<style>block, the 13 social link URLs and the five custom icon URLs, the logo and slogan image addresses and the Google Fonts family list. Unescapedecho $this->params->get()calls inindex.php: 209 → 36. - Site name and slogan text (
H1Title/H2Title) go throughphRichText(): formatting markup such as a styled second word still shows, but scripts, styles, iframes andon*event handlers are stripped. - Social links open with
rel="noopener", so the opened site cannot control the Cosmo tab.
Quickstart Installer
The Quickstart is a complete Joomla 5.4.8 site with VirtueMart 4.8.4 and Cosmo installed as the active template, with the demo content.
- It is now a standard Joomla installation package that runs Joomla’s own web installer, replacing the previous Akeeba backup archive (
cosmo-20250806-232811.jpa), so Akeeba Kickstart is not needed. - Bundled extensions: Joomla 5.4.8, VirtueMart 4.8.4, Akeeba Backup 10.4.0, Weblinks 5.1.0, Search 4.0.0, MCP For J 2.6.1, StageIt 5.7.3.
- Only the templates the site uses are included: the
templates/folder holdscassiopeia,cosmostoreandsystem. VirtueMart’s demo templateshorme_3,vmbasicandvmbeez3are gone;horme_3andvmbeez3carried error pages written with the removed Joomla 3 API, so activating either gave a server error. - Joomla 5.4’s “What’s New” guided tour (tour 15) no longer starts by itself (
autostart = 0). Before, it sent every administrator link to the dashboard on a fresh install. The tour is still available. - On the VirtueMart account page (menu item 566), the two left-column promo banners (“Left Banner 4”, NEW Collection, and “Left Banner 5”, 100% Pure Argan Oil) are no longer shown, so on phones the account form is no longer pushed below them. They still show everywhere else they did.
Package format
- Standalone template: Cosmo now installs as a Joomla package (
pkg_cosmostore-5.4.8.zip, manifestpkg_cosmostore.xml) that installs and registers thecosmostoretemplate extension, replacing the barecosmostore.zip. It declaresmethod="upgrade", so an existing Cosmo updates in place,<blockChildUninstall>true</blockChildUninstall>, so the template is removed through the package rather than on its own, and an update server for Joomla’s Update Manager. - Quickstart bundle:
Cosmo-5.4.8-Quickstart.zip, a complete Joomla 5.4.8 install with VirtueMart 4.8.4 and Cosmo pre-loaded as the active template.
Version numbering: from this release the first three digits of Cosmo’s version match the Joomla release it is built for (5.4.8 = Joomla 5.4.8). A later fix on the same Joomla release adds a fourth digit (5.4.8.1). The previous download was versioned07.08.2025 5.3.0/4.4.4.August 7, 2025Version 07.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, 2024Version 29.11.2024 5.1.2/4.2.12
- Fixed - Minor bugs with cart
August 15, 2024Version 15.08.2024 5.1.2/4.2.12
- Upgraded - Now compatible Joomla 5
- Upgraded - Now compatible VirtueMart 4.2.12
- Fixed - Minor bugs
November 17, 2023Version 31.10.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
July 22, 2023Version 22.07.2023 4.3.0/4.0.13
- Fixed - Template Upgrade option added
June 30, 2023Version 26.06.2023 4.3.0/4.0.13
- Fixed - VirtueMart Products Module issue
- Fixed - Double ReCaptcha on VirtueMart Registration page
- Fixed - Template toggle button not displaying
May 20, 2023Version 20.05.2023 4.3.0/4.0.12
- Fixed - Template updated to be compatible with Joomla 4.3
September 9, 2022Version 23.08.2022 3.10.11/4.0.6
- Fixed - Template updated for PHP 8.1
August 23, 2022Version 23.10.2022 3.10.11/4.0.6
- Fixed - Minor bug fixes for PHP 8.0
- New
