This website is using cookies
×
  • 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, 2026

    Version 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 a 500 - behavior::formvalidation not found error 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-native behavior.formvalidator.

    Found during the follow-up on the 2026-07-15 report — thank you again, Zoltán!

    Also fixed: legacy behavior.modal calls (helper removed in Joomla 4/5 — fatal behavior::modal not found) in the VirtueMart login override and the mod_virtuemart_product slick-slider override. Bootstrap 5's data-bs-toggle="modal" markup handles modal opening natively.

    July 9, 2026

    Version 5.4.1

    Compatible with: Joomla 5.4.7 · VirtueMart 4.6.8 · PHP 8.3 · Bootstrap 5
    Maintenance 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-content structure. Without this wrapping, BS5's Modal component called SelectorEngine.findOne('.modal-dialog', null) and threw Illegal invocation — the backdrop dimmed on click but the form itself never rendered.
    • Replaced the legacy .ahide.afade class combination with BS5's standard .fade.
    • Removed the inline style="display: none;" on the modal wrapper (BS5 manages display via the .show class).
    • 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 in template.css that 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=editaddress which throws count(): Argument #1 must be Countable, null given on PHP 8+ for logged-out visitors. Changed to Joomla's core com_users&view=registration route.

    Search input clipped to 130px on mobile

    • template.css has 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 with max-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-handler released from #st-navigation's mobile display: none via a body: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 !important on the <i> elements — Font Awesome glyphs have varying intrinsic heights (fa-user + fa-pencil are ~18px vs fa-search + fa-shopping-basket at ~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 order enforces 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) via body.mobile-menu-open.
    • SHOP MENU (#shop-menu-btn) → mega/shop menu (Chairs / Couches / Desks / New Offer / Sale / New Collection) via a new body.mobile-showing-shop body-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-open class).
    • Tapping CART toggles a viewport-wide cart popup showing product count + close X (body.cartpanel-open class).
    • Camera.js applies z-index: 2147483647 (INT_MAX) to .camera_caption on the slideshow which was defeating any positive z-index we could set on the popup — neutralized via body.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 from bs2-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.span12 container. 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 to template.css invalidates immediately on the next request. Same discipline that was already applied to bs2-bs5-bridge.css in v5.4.0.

    Row containment on mobile — #top .row negative-gutter reset

    • Bootstrap's .row class applies margin-left: -12px; margin-right: -12px as a negative gutter. On mobile it was making #cl-handler render 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 throws TypeError: 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.js throws 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, 2026

    Version 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.md at 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.css translates every BS2 .row-fluid / .span1..12 / .offset* / .pull-left|right / .hidden-phone / .visible-phone / .btn-inverse / .btn-default class to its BS5 equivalent — 33 BS2→BS5 class conversions in index.php now render through this bridge without breaking donor markup.
    • Standalone .spanN widths 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_login override — added $type variable fallback (Phase 3e), fixes the Undefined variable $type warning on Joomla 5 login modules.
    • Deprecated jQuery.browser IE-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 addStyleSheet calls 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 of templateDetails.xml in 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 } with overflow: visible on the escape path, and moves horizontal-scroll prevention to body where it doesn't clip mega-menu descendants.
    • #st-navigation overflow changed to visible — 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-innerwrapper padding-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-native parent_id child 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, toggles body.mobile-menu-open class.
    • 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-minus icons 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 #212529 slate 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-canvas hamburger + #offcanvas panel + .menucanvas output 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 HeightHeader Height; Top Handler WidthLogo 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.12 string.

    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, 2025

    Version 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, 2024

    Version 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, 2024

    Version 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, 2023

    Version 01.04.2023 4.2.8/4.0.12

    • Fixed - Template updated to be compatible with Joomla 4.2
×

logo


TOP
Connect