Furniture 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.Product module, Slick slider layout. Choosing the slider layout for the VirtueMart product module stopped the page with a server error: it called
behavior.modal, which Joomla 4 removed.October 16, 2026Version 5.4.10.1
Phones. The cart drop-down shows its items, prices and totals again (the text was white on white).
Articles. The Previous and Next buttons sit at opposite ends of the article.
October 16, 2026Version 5.4.10
First Joomla 5 native release. Furniture Store has been brought forward from the previous download (06.08.2025 5.3.0/4.4.4) to Joomla 5.4.10 + VirtueMart 4.8.4 + PHP 8 + Bootstrap 5. It keeps its Bootstrap 2 layout classes and renders on Joomla 5’s bundled Bootstrap 5 through a compatibility stylesheet, so existing module and article markup keeps its layout. This release adds a phone layout with a slide-out menu and a fingertip-sized toolbar, a colour picker for every colour setting, Joomla’s own on/off switches, a favicon tool, current social networks and the template’s own 404 page. The Joomla 3 class calls have been converted, and template settings written into the page are now escaped. jQuery still loads for the camera slideshow, the product carousels, the parallax bands and the cookie-law popup; the old jQuery menu, background and IE plug-ins are no longer loaded. Across the template, 10 files were added, 10 removed and 67 modified (269 files before and after). The template version now matches the Joomla version it ships with.Added
Bootstrap 5 compatibility layer
- New
css/bs2-bs5-bridge.css: maps Furniture Store’s Bootstrap 2 grid (.row-fluid,.spanN, offsets, thehidden-phone/visible-phone/hidden-tablet/visible-desktoputilities), tab panes, block-level.nav > li > aanchors, buttons, form fields and the login dialog shell onto Joomla 5’s Bootstrap 5. It is linked last in the page head, immediately before</head>, with a file-time version marker, so it sits in the right place in the cascade. index.php,component.php(print view and VirtueMart pop-ups) and the error page all load Joomla’s/media/vendor/bootstrap/css/bootstrap.min.css, plusbootstrap.rtl.min.csson right-to-left sites, and then the compatibility stylesheet.- New
js/cs-jq-compat.js: restores four jQuery 1.x calls that Joomla 5’s jQuery 3 dropped but the bundled camera slideshow and Stellar parallax scripts still use (.live(),.offset()on the window,.load(fn)as a load-event shortcut, and$.browser). It replaces the inlinejQuery.browsershim thatindex.phpused to carry.
Phone layout
- New
js/cs-mobile-generic.js: on phones (up to 767 px) a compact header with a menu button that opens the main menu as a slide-out panel. - A phone toolbar under the header with five 44×44 px buttons of matching size: Section menu (the shop categories), Log in, Search, Follow us (the social links) and Cart.
- A count badge on the cart icon whenever the cart holds items, on phones and on desktop. On desktop the number shows all the time, not only on mouse-over, and the template’s own hover bubble is hidden while it shows, so the count never appears twice.
- The cart drop-down and open dialogs close when you tap outside them. The login dialog, which is taller than a phone screen, closes with its ×.
- The phone search box uses 16 px text in a 44 px field, so iPhones do not zoom the page when you tap into it. The header sits in the page flow, with no empty band above the page and one submit button in the search panel.
- On account pages (login, registration, password reset, VirtueMart account), phones show the page content first, with only the breadcrumbs and the store menu above it.
- On the product page, the quantity box, Add to Cart “+” and up/down controls take their own 50 px row on phones. They used to sit on top of the “Ask a question about this product” button below them.
- On phones the page uses the full screen width (
cs-no-bs2-gutterbody class) while text keeps a side inset, and the page cannot be pushed sideways.
Password show/hide
- New
js/cs-password-eyeball.js: every password field (login module, login page, registration and account forms) gets an eye button that shows or hides what you have typed. It stays on the same line as the field, phones included.
Own error pages
- “Page not found” (404) and “access denied” (403) pages are shown inside the template, with its header, menus, phone toolbar and footer, instead of a bare page. They fit a phone screen and are marked
noindex. Server errors (5xx) still use Joomla’s minimal system page.
Colour picker
- New custom field
fields/colorpicker.phpwith the bundled Coloris picker (js/coloris.min.js,css/coloris.min.css). All 19 colour settings (e.g.sitenamecolor,slogancolor,cookiecolor1) are nowtype="colorpicker", with a live swatch and a picker that ships inside the template, so nothing is loaded from an outside site. - New
fields/adminui.php: loads the Options screen’s support code, declares the jQuery framework the older option scripts need, and makes the template’s Details panel follow Joomla’s light or dark admin theme.
Favicon tool
- New Favicon tab (fieldset
faviconsettings) with a media field (favicon) and a favicon tool (fields/favicontool.php). Pick one image and the template outputs a 32×32 PNG tab icon and a 180×180 Apple touch icon, generated intoimages/favicon-generated/; the template’sfavicon.icois the fallback. With thanks to Gianluca, whose favicon question inspired this tool. index.phpwrites the favicon links through two new helpers,phFaviconSet()andphIcoBytes().- 10 new language strings in
en-GB.tpl_furniturestore.ini, e.g.TPL_FURNITURESTORE_FAVICON_TAB,TPL_FURNITURESTORE_FAVICON_LABEL,TPL_FURNITURESTORE_FAVICONTOOL_CREATE. The file goes from 74 to 82 strings.
Modern social network support
- Five new social services, each with a URL field and a 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.
- Social icons are Font Awesome 6 brand glyphs (
fab fa-x-twitter,fab fa-facebook-f,fab fa-instagram…) in place of the oldsocicon-*icon classes. They keep the template’s own round monochrome style.
Security helpers
- 13 helper functions in
index.php(seven of them also incomponent.php):phEsc(),phRichText(),phHexColor(),phCssDim(),phCssNum(),phCssFont(),phCssSelector(),phCssToken(),phCssUrl(),phJsStr(),phJsLit(),phFaviconSet(),phIcoBytes(). They are used at 287 call sites. Details under Security.
Changed
Joomla 5 platform
- Built for Joomla 5.4.10 and VirtueMart 4.8.4. The previous download was built for Joomla 5.3.0 and VirtueMart 4.4.4.
component.phpused to load no Bootstrap at all, onlytemplate.cssand the colour preset. It now loads the same Bootstrap 5 base and compatibility stylesheet as the main layout.- The login dialog is a Bootstrap 5 dialog:
#LoginFormis wrapped in.modal-dialog/.modal-content, andindex.php’s login button, close buttons and home-page product tabs usedata-bs-toggle/data-bs-dismiss(Bootstrap 5data-bs-*attributes across the template: 7 → 16). templateDetails.xml: version06.08.2025 5.3.0/4.4.4→5.4.10, creation date18/04/2017→2026-10-16. The version shown in the template description and the@versiondocblock inindex.phpmatch.method="upgrade"is kept, so an existing install updates in place.
J3 → J5 API migration
- 249 Joomla 3 static class calls converted to the namespaced Joomla 4+ API in
index.php(37),error.php,component.phpand 45 overrides:JFactory→Factory,JText→Text,JHtml/JHTML→HTMLHelper,JRoute→Route,JURI→Uri,JModuleHelper→ModuleHelper,JPluginHelper→PluginHelper,JError::raiseWarning()→throw new \Exception(), and the rest. These aliases exist only while Joomla’s Behaviour – Backward Compatibility plugin is enabled, and not at all in Joomla 6. - Template overrides converted (calls per file):
html/mod_login/default.php20.html/com_virtuemart/productdetails/default.php16, plusdefault_images.php4,default_reviews.php4,default_addtocart.php3,default_customfields.php1,default_showcategory.php1.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.php,bs3-edit_address_userfields.php,mail_html_reguser.php,mail_raw_reguser.php1 each.html/mod_virtuemart_product/single.php13,slick-slider.php13,default.php11.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.html/com_virtuemart/askquestion/form.php3,bs3-form.php3,mail_html_question.php2;html/com_virtuemart/sublayouts/addtocart.phpandaddtocartbar.php1 each.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_articles_latest/default_items.php6,html/mod_menu/default.php2,html/mod_breadcrumbs/default.php1,html/mod_search/default.php1.
- In all, 61 of the 87 PHP overrides under
html/were modified.defined('_JEXEC')guards: 74 → 77 files.
Template Options screen
- 108 field type changes in
templateDetails.xml:- 89 on/off settings: the legacy
class="switch"checkboxes, which needed the jQuery scriptutils/admin-js.jsto draw them, are now Joomla’s native on/off switchers (type="radio",joomla.form.field.radio.switcher), for examplelogoLinked,H1TitleImgText,RSSON,OverrideDefaultSettings,AdditionalGFontON,cam_autoAdvance. With four retired social switches removed and five new ones added, the template has 94 switchers and no legacy checkboxes (93 before). - 19 colour settings:
type="color"→type="colorpicker".
- 89 on/off settings: the legacy
- Fields 352 → 358, tabs 15 → 16. Tab names no longer end in “Settings” (“Theme Settings” → “Theme”, “Fonts Settings” → “Fonts”, “Site Name And Slogan Settings” → “Site Name & Slogan”, “Built-in Slideshow Settings” → “Built-in Slideshow” and so on; “Template Header And Footer Custom Code” → “Header & Footer Custom Code”).
- The Options screen’s icon font is now Font Awesome 6.5.2 + v4 shims instead of Font Awesome 4.6.3 from the shut-down MaxCDN (
maxcdn1 → 0), so the panel’sfa fa-*icons display again.
Fonts and icons
- The Google Fonts
WebFontConfigJavaScript loader (webfont.jsfromajax.googleapis.com) is replaced by a direct font stylesheet link inindex.phpandcomponent.php(WebFontConfig2 → 0). - The front end loads Font Awesome 6.5.2 (
all.min.css+v4-shims.min.css) instead of Font Awesome 4.7.0 from MaxCDN. Olderfa fa-*class names keep working. FA4 class names in the template went from 21 to 11, including the overridescom_virtuemart/category/productsviewarray.phpandmod_virtuemart_cart/default.php. - Joomla’s own
icon-*classes (pagination arrows, the password eye) are mapped to Font Awesome 6 glyphs.
Menus and background without old jQuery plug-ins
- Drop-down and mega menus open on hover through CSS, with a short close delay and a hover bridge across the gap under the menu bar, instead of the Superfish/Supersubs plug-ins. A small inline script keeps the template’s open-parent highlight and sub-menu arrows.
- The body background image is sized with CSS
background-size: coverinstead of Backstretch. - Template-side jQuery call sites: 169 → 148.
Stylesheets and layout
- Every local stylesheet link carries a version marker (
?v=), so style changes show straight after an update instead of waiting for visitors’ browser caches to expire. - The VirtueMart category description no longer has side padding.
css/template.css: 208,245 → 213,733 bytes.
Fixed
Pages that returned a server error or showed nothing
- 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 account page showed an error for store owners and vendors.
html/com_virtuemart/user/bs3-edit_vendor.phpcalledJHtml::_('Select.genericlist')with a capital S (4 calls), which Joomla 5 cannot resolve. It now callsHTMLHelper::_('select.genericlist'). - 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. With thanks to Zoltán Szász, whose follow-up report led to this fix across our templates. - 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, whose report found it. - The password reset, login and username reminder pages showed a blank page when they had no menu item of their own. They borrowed the home page’s template style, which hides the main content on the home page.
index.phpnow shows the content on those pages; the home page is unchanged. - Breadcrumbs:
html/mod_breadcrumbs/default.phpprinted the result ofisset($moduleclass_sfx)(a true/false value) where the module class suffix belongs. It now prints the escaped suffix.
Browser errors and dead requests
- The previous version’s home page raised 14 JavaScript errors in the browser console on Joomla 5; this release raises none.
- Stylesheet links to files that are not in the template were removed:
css/camera.csson the home page,css/template_rtl.cssin the print view, andreset.css,text.css,typography.cssandtemplate_rtl.csson the error page. Each returned the site’s “page not found” response. - The Options screen requested Font Awesome 4.6.3 from MaxCDN, which has shut down, on every visit.
- The template’s Details panel was unreadable in the dark admin theme (grey text with a white shadow). It now follows the selected admin theme.
Maintenance pass
- The
@font-faceincss/template.csspointing at the removedmedia/jui/fonts/IcoMoon font is disabled; it returned 404s on every page. - Pagination arrows (
icon-angle-left/-right/-double-left/-double-right), which had no glyph and showed as empty squares, now show Font Awesome arrows. - Featured-article intro text is no longer clipped to its title (
.blog-featured .blog-item). - The search button sits flush with its search box again (
#search-position .btn). - With thanks to Michael Mullan, whose Expression bug report led to this maintenance pass across our templates.
Removed
Bootstrap 2 and Joomla 3 files
- 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) and the archivecss/bootstrap.zip. html/modules.php: Joomla 3modChrome_module chromes, which Joomla 5 never calls.utils/admin-js.js, the Joomla 3 jQuery script that drew the old on/off switches, and the<script>tag that loaded it from the template description.
Legacy scripts no longer loaded
superfish.js,supersubs.js,jquery.backstretch.min.js,jquery.mobile.customized.min.js, and the Internet Explorer scriptsmodernizr.js,selectivizr-min.jsandhtml5.js(from googlecode.com). The template’s own copies remain injs/(29 → 33 files) but nothing loads them.
Legacy stylesheets no longer loaded
- Bootstrap 2 (
bootstrap.min.css,bootstrap-responsive.min.css,bootstrap-extended.css), Font Awesome 4 (font-awesome.min.css),presets/style-error.css, and the Internet Explorer sheetsie.cssandie6.csswith their conditional comments. Joomla’s Bootstrap 5 and the compatibility stylesheet take their place.
Retired social services
- Four social slots removed with their switches: Google+ (
gplus), StumbleUpon, Digg and Blogger, plus the two Blogger language strings.
Security
- Template settings written into the page are escaped for where they appear, through the new helpers (287 call sites):
phEsc()for HTML text and attributes.phHexColor()for colours.phCssDim(),phCssNum(),phCssFont(),phCssToken(),phCssSelector()andphCssUrl()for values inside inline<style>.phJsStr()andphJsLit()for values inside inline JavaScript.
- Site-title fields (
H1Title/H2Title) go throughphRichText(): formatting markup is kept, but scripts, styles, iframes andon*event handlers are stripped. - Social links used to echo their URLs unescaped. All 18
hrefs (the named services, RSS and the five custom slots) now go throughphEsc(), and the links carryrel="noopener". - Image
alttext built withstrip_tags()did not escape quotes; the 3 occurrences inindex.phpare now escaped. - The error page escapes the error message it prints.
- Module, menu and tab titles are escaped in
index.php, the module chromes (html/layouts/chromes/megamenu.php,parallax.php,slides.php,testimonial.php,vmdefault.php,vmdefaultlogin.php,vmtab.php) and the overrides.htmlspecialchars/escape calls across the template rose from 50 to 98, includingmod_login,mod_custom,mod_menu,mod_breadcrumbs,mod_articles_latest,mod_virtuemart_cart, thecom_contentcategory, featured and archive views, and the VirtueMart address-field overrides.
Quickstart Installer
The Quickstart is a complete Joomla 5.4.10 site with VirtueMart 4.8.4 and Furniture Store installed as the active template, with the demo content. It is now a zip that installs through Joomla’s own installer, in place of the previous Akeeba
.jpaarchive and Kickstart.- Bundled extensions: Joomla 5.4.10, VirtueMart 4.8.4, MCP For J 2.8.3, Akeeba Backup 10.4.0, Weblinks 5.2.0.
- Only the templates the site uses are included: the
templates/folder holdscassiopeia,furniturestoreandsystem. - Joomla 5.4’s “What’s New” guided tour (tour 15) no longer starts by itself (
autostart = 0). Otherwise it sends every administrator link to the dashboard on a fresh install. - 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 there are no template override records (no “changes found” warning).
Package format
- Standalone template: Furniture Store now installs as a Joomla package (
pkg_furniturestore.xml, downloadpkg_furniturestore-5.4.10.zip) that installs and registers thefurniturestoretemplate extension. It declaresmethod="upgrade", so an existing Furniture Store updates in place, and<blockChildUninstall>true</blockChildUninstall>, so the template is removed through the package rather than on its own. The package names an update server for Joomla’s Update Manager. The previous download was the bare template folder (furniturestore.zip). - Quickstart bundle: a complete Joomla 5.4.10 install with VirtueMart 4.8.4 and Furniture Store pre-loaded as the active template.
Version numbering: from this release the first three digits of Furniture Store’s version match the Joomla release it is built for (5.4.10 = Joomla 5.4.10). A later fix on the same Joomla release adds a fourth digit (5.4.10.1). The previous download was versioned06.08.2025 5.3.0/4.4.4.August 6, 2025Version 06.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
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
June 23, 2023Version 16.06.2023 4.3.0/4.0.13
- Fixed - Menu Params error for adding in image on menu
May 20, 2023Version 20.05.2023 4.3.0/4.0.12
- Fixed - Template updated to be compatible with Joomla 4.3
August 23, 2022Version 23.08.2022 3.10.11/4.0.6
- Fixed - Joomla 3.10.11
- Fixed - Template updated for PHP 8.0
- New

