Skip to content

v4.4.0

Choose a tag to compare

@sampoyigi sampoyigi released this 15 Aug 11:59
· 34 commits to master since this release
f2d437f

This release introduces new theme template features, a dedicated currency validation rule, and several bug fixes for form fields, cache handling, and dependency management.

Added

  • Introduced a views/files template type for arbitrary nested theme templates wired into the Template Editor and Theme Manager.
  • Added a dedicated currency validation rule that accepts numbers formatted with the default currency's decimal and thousand separators.
  • Added a ComposerScripts post-autoload-dump hook that boots a minimal application and removes the cached addons path so it regenerates on the next run.

Fixed

  • Fixed "Select All" / "Select None" links in checkbox list fields, which had been non-functional since the v4 rewrite; a delegated event handler now toggles checkboxes and fires change events so dependsOn bindings react correctly.
  • Fixed the currency cache not being invalidated when a currency is saved or deleted, which previously caused newly created or edited currencies to not appear on the storefront until the app cache was manually cleared.
  • Fixed the currency form field rejecting localized price input (e.g. values using a comma as a decimal separator) under the numeric validation rule; the field's hardcoded pattern attribute now also accepts the configured decimal sign.
  • Fixed unescaped output being incorrectly blocked in TemplateSandbox for theme templates.
  • Fixed the ColorPicker widget to normalize saved hex values, expanding 3-digit hex shorthand and rejecting invalid input; a linked text input is now shown alongside the color swatch and kept in sync.
  • Fixed composer operations to exclude dev dependencies by adding --no-dev to the outdated command and --update-no-dev to require and remove commands.

Changed

  • Replaced the SafeMailTemplateContent sandbox with SafeThemeTemplateContent across page, layout, partial, and content models; TemplateSandbox now scans actual PHP regions instead of blanket-blocking object calls, app()/resolve(), and static calls.