fix: overlay on gradient modes, dlid support, changelog #68

Merged
jmiller merged 3 commits from dev into main 2026-06-04 22:32:52 +00:00
2 changed files with 109 additions and 5 deletions
+105 -4
View File
@@ -1,12 +1,15 @@
# Changelog
## [Unreleased]
## [01.17.00] --- 2026-06-04
## [01.17] - 2026-06-04
## [01.16.00] --- 2026-06-04
### Added
- Download key support (`dlid`) in module manifest for update server authentication
- Auto-remove deprecated system plugin (`plg_system_mokojoomhero`) on install/upgrade
## [01.15.00] --- 2026-06-04
### Fixed
- Skip overlay background on solid colour and gradient hero modes — gradient was invisible behind 50% black overlay
## [01.14] - 2026-06-04
@@ -23,3 +26,101 @@
- Restructure from package extension back to standalone site module
- Remove system plugin (`plg_system_mokojoomhero`) and package wrapper
- Simplify build target for module ZIP
## [01.12] - 2026-06-04
### Changed
- Remove static `updates.xml` and `update.xml` from repository
- Update server now managed by Gitea release system
## [01.11] - 2026-06-04
### Changed
- Clean up `updates.xml` — remove stale dev/alpha/beta/rc entries
## [01.10] - 2026-06-04
### Added
- A/B testing with weighted random variation selection and session-sticky assignment (#21)
- Hero scheduling with start/end datetime fields and site timezone support (#22)
## [01.09] - 2026-06-04
### Added
- Licensing system with free/pro tier constant (free tier — no key required)
## [01.08] - 2026-06-04
### Added
- Solid colour and gradient hero background modes
- Configurable slide transitions: crossfade, slide, fade-to-black, zoom (Ken Burns)
- Vertical text alignment (top/center/bottom) (#53)
- Mobile-specific hero height via CSS custom property (#55)
- Gradient overlay direction (dark at bottom/top/left/right) (#54)
- Prefers-reduced-motion accessibility support (WCAG 2.1 AA) (#49)
- Scroll-down indicator with bounce animation (#50)
- Video poster image fallback (#51)
- Content entrance animations: fade-in, slide-up, slide-left, slide-right (#52)
- Parallax scroll effect with configurable speed (#48)
- Article content source — pull hero content from a Joomla article (#56)
- Per-slide unique content via subform repeatable field (#57)
### Changed
- Restructure from standalone module to package extension with system plugin
- Hardcode package description in manifest
### Fixed
- CSS injection prevention on `heroHeight` with regex validation
- Hex colour validation for all colour parameters
- Allowlist validation for textAlign, fadeType, overlayType
- `video.play()` promise rejection handling
- `iframe.contentWindow` null guards on postMessage calls
- `DirectoryIterator` try-catch for filesystem errors
- Article content filtered through `HTMLHelper::content.prepare` for XSS prevention
- Null guards on scroll indicator and mute toggle DOM elements
- Logging for article query, image folder, and JSON decode failures
- Plugin manifest `<languages>` folder attribute and display name
- Missing language keys in `.sys.ini` files
- SPDX license headers on all PHP files
- Consistent tab indentation throughout
## [01.07] - 2026-06-02
### Added
- Package extension structure (`pkg_mokojoomhero`)
- System plugin for license key validation
## [01.06] - 2026-05-30
### Added
- Deploy target in Makefile with language file sync
## [01.05] - 2026-05-30
### Added
- Card fade-in delay with configurable timing
- Video mute/unmute toggle button
## [01.04] - 2026-05-30
### Added
- Local video mode with Joomla Media Manager picker
## [01.03] - 2026-05-30
### Added
- Video pause/resume on viewport exit via IntersectionObserver
- Module title rendered inside hero card
- WebAsset registration fix and iframe video cover
## [01.02] - 2026-05-30
### Added
- Card fade-in delay and video mute toggle (#39, #40)
## [01.01] - 2026-05-30
### Fixed
- WebAsset registration and iframe video cover
- Hero card title rendering
- Video viewport pause/resume
+4 -1
View File
@@ -62,7 +62,10 @@ $overlayDirections = [
'gradient-right' => 'to right',
];
if ($overlayType !== 'solid' && isset($overlayDirections[$overlayType])) {
// Skip overlay on solid colour/gradient modes — background is already a controlled design choice
if ($heroMode === 'color' || $heroMode === 'gradient') {
$overlayBg = '';
} elseif ($overlayType !== 'solid' && isset($overlayDirections[$overlayType])) {
$dir = $overlayDirections[$overlayType];
$overlayBg = "background: linear-gradient($dir, $rgbaTransparent, $rgbaOpaque);";
} else {