Premium Joomla Templates for Joomla 5 and Joomla 6
Muble Store Energize Themes Templates Changelog
-
July 22, 2026
Version 5.4.1.2
Maintenance release — fixes for issues found in real-world use on a live production site. With thanks to Michael Mullan, whose Expression bug report led to this maintenance pass across our templates.
- Fixed: search-module icon rendered as a stray character — the Joomla 3 jui icon font was removed from Joomla core in Joomla 4, so the glyph fell back to a literal character and the dead font reference 404'd on every page. The icon is now a self-contained SVG.
- Fixed: pagination arrows (first/previous/next/last) rendered as empty squares — Joomla 4+ uses newer icon class names the template never mapped. Now self-contained SVGs.
- Fixed: featured/blog articles showing only their title — tall single-column intro articles were clipped by the blog layout CSS.
- Improved: search button sits snug against the search input.
- Fixed: the template version shown after install now tracks the real release version.
July 16, 2026Version 5.4.1.1
Bugfix release. Fixes a legacy Joomla 3 form-validation call (
behavior.formvalidation, removed in Joomla 5) in the VirtueMart login template override, which could cause a500 - behavior::formvalidation not founderror on pages where the login block is shown to guests — for example the cart, depending on your VirtueMart settings. The override now uses the Joomla 5-nativebehavior.formvalidator.Found during the follow-up on the 2026-07-15 report — thank you again, Zoltán!
Also fixed: legacy
behavior.modalcalls (helper removed in Joomla 4/5 — fatalbehavior::modal not found) in the VirtueMart login override and themod_virtuemart_productslick-slider override. Bootstrap 5'sdata-bs-toggle="modal"markup handles modal opening natively.July 9, 2026Version 5.4.1
Compatible with: Joomla 5.4.7 · VirtueMart 4.6.8 · PHP 8.3 · Bootstrap 5Maintenance release — login modal fix + mobile utility row + BS2 debt cleanup. Ships alongside the v5.4.0 modernization refresh. Install as an extension upgrade over v5.4.0 — template style params are preserved. Fixes a BS5 modal-structure gap that made the login popup silently fail to render on Joomla 5, and lifts the utility strip (cart / search / account / register / shop menu) onto the mobile viewport as a labeled second-header row matching the FashionShop standard.Fixed
Login modal — BS5 structure conversion
- Wrapped
#LoginForm's inner content in the required BS5.modal-dialog > .modal-contentstructure. Without this wrapping, BS5's Modal component calledSelectorEngine.findOne('.modal-dialog', null)and threw Illegal invocation — the backdrop dimmed on click but the form itself never rendered. - Replaced the legacy
.ahide.afadeclass combination with BS5's standard.fade. - Removed the inline
style="display: none;"on the modal wrapper (BS5 manages display via the.showclass). - Removed the legacy
jQuery("#LoginForm").toggle("fast")handler on the trigger anchor — was racing BS5's modal component. - Removed BS2-era
div.modal#LoginForm { width: 700px; margin-left: -350px }rule intemplate.cssthat was pinning the modal off-screen in BS5's viewport-fixed positioning model. - Bumped
#LoginForm .modal-content { margin-top: 135px }so the modal top clears the fixed header + the new mobile utility row without being hidden behind them.
REGISTER icon URL — PHP 8 compat
- The utility-row Register anchor was routing to
com_virtuemart&view=user&layout=editaddresswhich throwscount(): Argument #1 must be Countable, null givenon PHP 8+ for logged-out visitors. Changed to Joomla's corecom_users&view=registrationroute.
Search input clipped to 130px on mobile
template.csshas a mobile media query rule#search-position .inputbox { max-width: 130px }targeting the original BS2 utility strip. On the new full-width mobile search dropdown that clipped the input to a small box in the middle of the panel. Overridden withmax-width: none !important.
Added
Mobile utility row — FashionShop standard
- New second-header row on viewports ≤767px showing 5 icon columns: SHOP MENU · ACCOUNT · REGISTER · SEARCH · CART with icons on top and text labels below. Matches the FashionShop v5.4.0 pattern (standard for all *Store-family templates as of 2026-07-09).
#cl-handlerreleased from#st-navigation's mobiledisplay: nonevia abody:not(.mobile-menu-open)scope so the utility row shows on mobile while the main menu drawer still hides behind the hamburger.- Icons normalized to a 24x24 box via explicit
height: 24px !important; line-height: 24px !importanton the<i>elements — Font Awesome glyphs have varying intrinsic heights (fa-user+fa-pencilare ~18px vsfa-search+fa-shopping-basketat ~20px at the same font-size), which was landing the labels at different Y positions. - SHOP MENU column injected via Phase 6b JS as a 3-line CSS-only hamburger + label span (animates to X on drawer open).
- Inline text labels injected into the existing icon anchors after the FA
<i>element, matching FashionShop's mod_virtuemart_cart override HTML pattern without editing the overrides. - CSS
orderenforces the standard left-to-right sequence regardless of source-HTML order.
Two-drawer menu split (main vs shop)
- Top hamburger (
#mobile-menu-toggle) → main menu (Home / Shop / Using Joomla / Blog / Template Features / Contact Us) viabody.mobile-menu-open. - SHOP MENU (
#shop-menu-btn) → mega/shop menu (Chairs / Couches / Desks / New Offer / Sale / New Collection) via a newbody.mobile-showing-shopbody-class toggle. - Handlers clear the opposite mode class on open so drawers don't stack.
Search + Cart panels — full-viewport dropdowns
- Tapping SEARCH toggles a full-width input dropdown below the utility row (
body.searchpanel-openclass). - Tapping CART toggles a viewport-wide cart popup showing product count + close X (
body.cartpanel-openclass). - Camera.js applies
z-index: 2147483647(INT_MAX) to.camera_captionon the slideshow which was defeating any positive z-index we could set on the popup — neutralized viabody.cartpanel-open .camera_caption { z-index: 1 !important }. - Body-class handlers bound in the capture phase with
stopImmediatePropagation()so the template's original jQuery.click(() => .toggle("fast"))handlers are prevented from double-firing and overriding the body-class state.
Changed
Bootstrap 2 debt cleanup — bridge CSS
- Stripped all 11
.spanN { min-width: NNNpx }declarations frombs2-bs5-bridge.css. These match the BS2 970-grid default column pixel widths (60 / 140 / 220 / 300 / 380 / 460 / 540 / 620 / 700 / 780 / 860 px) and were preserving "prevent shrinking below content width" behaviour on desktop — but on mobile they forced horizontal overflow because.moduletable_style8.span6(the module tiles under#tab-modules) refused to shrink below 460px inside a 354px.tf-module.span12container. The percentage width declarations remain — desktop layout unchanged; mobile now flows responsively without patches. - Underlying principle codified as a new north-star rule for Skill 26 (2026-07-09): the goal is J5-native, not "J5-compatible via a permanent BS2 bridge." Every bridge CSS addition is technical debt to be eliminated over time.
Filemtime cachebuster on
template.css$doc->addStyleSheet($this->baseurl . '/templates/' . $this->template . '/css/template.css')was shipping without a version querystring — browser + Cloudflare cache served the stale CSS for hours after a hotfix landed. Extended to?v=' . @filemtime(__DIR__ . '/css/template.css')so any change totemplate.cssinvalidates immediately on the next request. Same discipline that was already applied tobs2-bs5-bridge.cssin v5.4.0.
Row containment on mobile —
#top .rownegative-gutter reset- Bootstrap's
.rowclass appliesmargin-left: -12px; margin-right: -12pxas a negative gutter. On mobile it was making#cl-handlerrender 24px wider than the viewport and adding a horizontal scroll. Reset.row { margin-left: 0; margin-right: 0; width: 100%; max-width: 100% }inside@media (max-width: 767px)scoped to#top.
Removed
templates/mublestore/js/jquery.mobile.customized.min.js— Joomla 3-era customized jQuery Mobile build that throwsTypeError: Cannot read properties of undefined (reading 'concat')on modern jQuery 3.7.1. Was still loading from a raw<script>tag inside the "Built-in Slideshow" conditional block; Phase 3b of the v5.4.0 modernization missed it because Phase 3b targets loader plugin functions, not raw script tags in inline HTML.- All 11
.spanN { min-width: NNNpx }BS2 970-grid remnants (see Changed section above). - Legacy
.log-panel li a i { font-size: 18px }rule from the bridge CSS — had higher specificity than the new 24px icon normalization and was leaving ACCOUNT + REGISTER labels 4px above SEARCH + CART.
Notes
- Joomla: 5.4.7. PHP: 8.3 (verified on 8.3.32). VirtueMart: 4.6.8. Bootstrap: 5. MubleStore template: 5.4.1.
- Install path: Extension Manager → Install → Upload Package File. Overlays v5.4.0 in place; existing template style params are preserved (
<extension type="template" method="upgrade">). - Deferred to a later cycle: VirtueMart's
jquery.ui.autocomplete.html.jsthrows on every page load because the template ships a slim jQuery UI build without the Autocomplete widget. Breaks VM's product-search autocomplete popup but doesn't block anything else. Slotted for the next MubleStore touch. Owl Carousel 1.x + Slick + camera.js → Swiper 11 migration also deferred until the whole cohort is up to date.
Package format
- Standalone template:
tpl_mublestore-5.4.1.zip— Joomla installable package. Installs cleanly over v5.4.0 without uninstall-first. - Quickstart bundle:
mublestore-quickstart-J5.4.1.zip— complete Joomla 5.4.7 install with MubleStore 5.4.1 pre-loaded, VirtueMart 4.6.8, StageIt + MCP for Joomla pre-installed, postinstall messages hidden, front-page demo content matching the template style catalog page.
July 6, 2026Version 06.07.2026 5.4.0/4.6.8
Modernization to Joomla 5-native. Full refresh targeting Joomla 5.4.6 + VirtueMart 4.6.8. Every fix from the modernization pipeline is enumerated below so nothing gets lost when the template is next touched. Complete change log ships in
CHANGELOG.mdat the template root.Joomla + VirtueMart stack
- Joomla core lifted to 5.4.6 native (no Joomla 3 residuals in the shipped code path).
- VirtueMart 4.6.8 build 11258 (May 2026 upstream) — matches every other modernized ET template.
- StageIt + MCP for Joomla pre-installed in the quickstart bundle.
- Post-install messages hidden by default so a fresh install ships clean.
Bootstrap 2 → Bootstrap 5 (bridge CSS)
- New
css/bs2-bs5-bridge.csstranslates every BS2.row-fluid/.span1..12/.offset*/.pull-left|right/.hidden-phone/.visible-phone/.btn-inverse/.btn-defaultclass to its BS5 equivalent — 33 BS2→BS5 class conversions inindex.phpnow render through this bridge without breaking donor markup. - Standalone
.spanNwidths converted from BS2's fixed 940-grid pixels to percentages so they scale correctly inside a 1170–1200px BS5 container. - List-style reset added for
ul.row-fluid,.menu-nav,#social-links, etc. (BS5 dropped the implicit list reset BS2 provided). - Testimonials + manufacturers / Owl slider containers preserved — those integrations depend on the BS2 grid math.
PHP 8 + security
- 175 XSS-hardening wraps applied via new
phEsc(),phHexColor(),phCssDim()helpers around every$this->params->get(…)echo. mod_loginoverride — added$typevariable fallback (Phase 3e), fixes the Undefined variable $type warning on Joomla 5 login modules.- Deprecated
jQuery.browserIE-detect shim block removed. - Font Awesome 6.5.2 loaded via CDN with the official V4 back-compat shim so legacy
<i class="fa fa-twitter">markup still resolves to brand icons.
Legacy front-end code paths cleaned up
- IE conditional blocks + selectivizr / modernizr / html5shiv polyfill loaders removed.
- Legacy
addStyleSheetcalls stripped (Phase 5d). - jQuery plugin loaders removed where the plugin is no longer used — Superfish, Supersubs, jQuery.backstretch.
- Legacy
class="switch"checkbox markup swept out oftemplateDetails.xmlin favour of Joomla-native switcher fields.
Social icon set
- Modern 13-network set brought to parity: Instagram, Threads, Bluesky, Mastodon, YouTube, TikTok, Pinterest, Discord all added.
- Dead networks retired: Google+, StumbleUpon, Digg, Blogger, MySpace.
Header layout
- Bridge-CSS restoration of the original 2-row header: main menu on the top row (position-1 module in
.responsive-menu), mega-menu with sub-categories below the logo. - Fixed-header stack lifted to z-index 100000+ so component overlays (VirtueMart lightbox, category-tile hover, hot-offer decoration) can't accidentally out-layer the mega-menu dropdown.
- Dropdown overflow-escape — replaces
.global-container { overflow: hidden }withoverflow: visibleon the escape path, and moves horizontal-scroll prevention tobodywhere it doesn't clip mega-menu descendants. #st-navigationoverflow changed tovisible— was hiding dropdown items 3+ at the header height boundary.- Logo container auto-expands to fit the customer's uploaded logo image (won't clip at desktop-scale
topheight). - Companion inline JS syncs
.body-innerwrapperpadding-top to actual rendered header height so a tall logo image doesn't overlap content beneath. - Site-Name Position X / Y sliders now work as visual offsets (were being ignored on image-logo mode).
- Logo Width now drives the space between the logo and menu — set the value low and the menu tucks up against the logo.
Mega-menu
CS-PATCH: nested-menu— MubleStore-family mega-menus ship with module-based dropdowns; this patch also renders Joomla-nativeparent_idchild menu items as<ul>dropdowns through the same foreach loop, so customers who prefer standard nested menu structure get dropdowns automatically.- Hover-gap eliminated — dropdowns now sit flush against the parent menu-item's bottom edge (no 70-pixel dead zone that used to time out the sfHover state before the user could reach the dropdown).
- Menu-item hard-hide selectors extended so first-hover reveal is instant.
Mobile hamburger + accordion menu (Phase 5m Expression pattern)
- Hamburger button injected into
#top-handler, togglesbody.mobile-menu-openclass. - Full-width off-canvas drawer with dim overlay behind so the site behind stays visible-but-shaded.
- Circular chip indicator with Font Awesome
fa-plus/fa-minusicons on parent items (replaces plain text glyphs); chip darkens on the expanded state. - Progressive-disclosure accordion — tap parent to expand children; single-branch-open (opening one branch closes any open sibling).
- Tap-to-toggle — the same parent tap opens then closes on the second tap (parent anchors don't navigate on mobile; leaf children carry the URLs).
- Mobile drawer background driven by the template style's Color 4 (theme-shaded tint) with
#212529slate fallback — reads as an intentional shaded version of the customer's chosen theme rather than a fixed slate. - Mobile drawer decoupled from the desktop mega-menu — the hamburger renders the position-1 main menu rather than duplicating the desktop mega-menu's utility items.
- Long menu labels wrap cleanly on mobile without descender clipping.
- Mobile content gets 15px left/right padding matching the hamburger's edge offset.
- mubleStore title vertically centered next to the hamburger on mobile (no longer drops below the header overlapping the slideshow).
Legacy off-canvas machinery
- Original
.open-off-canvashamburger +#offcanvaspanel +.menucanvasoutput hidden on mobile — Phase 5m is now the canonical mobile hamburger. - Classic
.responsive-menu(position-1 module output) stays visible on desktop (that's the second utility menu row) but hidden on mobile when the mobile drawer is showing.
Bootstrap 5 modal migration
data-toggle="modal"→data-bs-toggle="modal"on all login / register triggers.- Login modal renders as a proper centered popup (was rendering full-width inline pre-refresh).
Admin labels + template style tabs
- Every fieldset tab renamed to drop the redundant "Settings" suffix: Site Name and Slogan, Theme, Fonts, EU Cookie Law Window, Drop Down Menus, Template Header and Footer Custom Code, Colors, Built-in Slideshow, Slick Products Slider, OWL Products Slider, Testimonials Slider, Manufacturers Slider, Product Images, Side Pop Up Box.
- Section headers inside the Theme tab cleaned up: Basic, Top Pop Up Panel, Cart Module, Header Area, Slideshow Area, Advanced Fonts.
- Field labels renamed: Top Handler Height → Header Height; Top Handler Width → Logo Width.
- Template Version display in the Description tab now matches the actual shipped version — no more stale
28.06.2024 5.1.1/4.2.12string.
Not in this cycle (deferred to a later release)
- Owl Carousel 1.x + Slick + camera.js → Swiper 11 migration. Swiper 11 CDN is preloaded so a future release can migrate the testimonials, VirtueMart product carousels, manufacturer logo strip, and K2 slider incrementally without adding a new loader.
- Dedicated "Changelog" fieldset tab in the template style editor.
- Mobile menu hierarchy styling — the chip indicator + tinted drawer background are settled; per-level styling (left accent bar, section-heading feel on parent items) is planned for the next cycle.
July 2, 2025Version 02.07.2025 5.3.0/4.4.4
- Update - Template updated to Joomla 5.3.0
- Update - Template updated to Virtuemart 4.4.4
- Minor Bugs fixed
July 17, 2024Version 28.06.2024 5.1.1/4.2.12
- Update - Template updated to Joomla 5
- Compatible with Virtuemart pre-release Version 4.2.12
- Minor Bugs fixed
February 15, 2024Version 13.02.2024 5.0.2/4.2.6
- Update - Template updated to Joomla 5
- Compatible with Virtuemart pre-release Version 4.2.6
- Please Note: VirtueMart 4.2.4,is not compatible with the Joomla 5,
therefore no Joomla 5 Quickstart until VirtueMart Version 4.2.6 is publicly released.
April 10, 2023Version 01.04.2023 4.2.8/4.0.12
- Fixed - Template updated to be compatible with Joomla 4.2



