diff --git a/CLAUDE.md b/CLAUDE.md index e38f998..4a20818 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -32,26 +32,21 @@ composer install # Install PHP dependencies ## Architecture -This is a Joomla **package** extension (`pkg_mokojoomhero`) containing two sub-extensions: +This is a Joomla **site module** (`mod_mokojoomhero`). -### mod_mokojoomhero (Site Module) - Random hero image slideshow or background video with content overlay - Supports image folders, YouTube, Vimeo, local video, solid colour, gradient - Configurable overlay, text alignment, card animation, parallax, content animations -- Works independently — no plugin dependency required - -### plg_system_mokojoomhero (System Plugin) -- License check — free tier (no key required), pro tier warns if download key missing -- Controlled by `LICENSE_TYPE` constant ('free' or 'pro') in the Extension class -- Auto-enabled on package install via `pkg_script.php` -- Namespace: `Joomla\Plugin\System\MokoJoomHero` +- A/B testing with weighted variations, scheduling with start/end datetime +- Article content source, per-slide unique content via subform ### Key files -- `src/pkg_mokojoomhero.xml` — package manifest -- `src/pkg_script.php` — auto-enables system plugin on install -- `src/packages/mod_mokojoomhero/` — hero module source -- `src/packages/plg_system_mokojoomhero/` — system plugin source -- `updates.xml` — Joomla update server (includes legacy module entries for migration) +- `src/mod_mokojoomhero.xml` — module manifest +- `src/mod_mokojoomhero.php` — module entry point +- `src/tmpl/default.php` — template +- `src/media/` — CSS, JS, and web asset registry +- `src/language/` — en-GB and en-US translations +- `src/script.php` — install script (creates default image folder) ## Rules @@ -66,7 +61,4 @@ This is a Joomla **package** extension (`pkg_mokojoomhero`) containing two sub-e ## Coding Standards - PHP 8.1+ minimum -- Joomla 5/6 DI container pattern: `services/provider.php` → Extension class -- Legacy stub `.php` file required for plugin loader but empty -- `SubscriberInterface` for event subscription (not `on*` method naming) - SPDX license headers on all PHP files diff --git a/Makefile b/Makefile index 5819862..3649143 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ # Extension Configuration EXTENSION_NAME := mokojoomhero -EXTENSION_TYPE := package +EXTENSION_TYPE := module # Options: module, plugin, component, package, template EXTENSION_VERSION := 1.0.0 @@ -156,29 +156,11 @@ clean: ## Clean build artifacts .PHONY: build build: clean ## Build extension package - @echo "$(COLOR_BLUE)Building Joomla package extension...$(COLOR_RESET)" - @mkdir -p $(DIST_DIR) $(BUILD_DIR)/packages - - @# --- Build each sub-extension as a separate ZIP --- - @for EXT_DIR in $(SRC_DIR)/packages/*/; do \ - EXT_NAME=$$(basename "$$EXT_DIR"); \ - [ "$$EXT_NAME" = "index.html" ] && continue; \ - echo " Packaging $$EXT_NAME..."; \ - cd "$$EXT_DIR" && $(ZIP) -r "$(CURDIR)/$(BUILD_DIR)/packages/$${EXT_NAME}.zip" . \ - -x "*.git*" -x "*/index.html" 2>/dev/null; \ - cd "$(CURDIR)"; \ - done - - @# --- Build the outer package ZIP --- - @echo " Assembling pkg_$(EXTENSION_NAME)..." - @cp $(SRC_DIR)/pkg_mokojoomhero.xml $(BUILD_DIR)/pkg_mokojoomhero.xml - @cp $(SRC_DIR)/pkg_script.php $(BUILD_DIR)/pkg_script.php - @cd $(BUILD_DIR) && $(ZIP) -r "$(CURDIR)/$(DIST_DIR)/pkg_$(EXTENSION_NAME)-$(EXTENSION_VERSION).zip" \ - pkg_mokojoomhero.xml pkg_script.php packages/ - - @echo "$(COLOR_GREEN)✓ Package created: $(DIST_DIR)/pkg_$(EXTENSION_NAME)-$(EXTENSION_VERSION).zip$(COLOR_RESET)" - @echo " Contents:" - @unzip -l "$(DIST_DIR)/pkg_$(EXTENSION_NAME)-$(EXTENSION_VERSION).zip" | tail -n +4 | head -20 + @echo "$(COLOR_BLUE)Building Joomla module extension...$(COLOR_RESET)" + @mkdir -p $(DIST_DIR) + @cd $(SRC_DIR) && $(ZIP) -r "$(CURDIR)/$(DIST_DIR)/mod_$(EXTENSION_NAME)-$(EXTENSION_VERSION).zip" . \ + -x "*.git*" -x "*/index.html" 2>/dev/null + @echo "$(COLOR_GREEN)✓ Module created: $(DIST_DIR)/mod_$(EXTENSION_NAME)-$(EXTENSION_VERSION).zip$(COLOR_RESET)" .PHONY: package package: build ## Alias for build diff --git a/src/packages/index.html b/src/language/en-GB/index.html similarity index 100% rename from src/packages/index.html rename to src/language/en-GB/index.html diff --git a/src/packages/mod_mokojoomhero/language/en-GB/mod_mokojoomhero.ini b/src/language/en-GB/mod_mokojoomhero.ini similarity index 100% rename from src/packages/mod_mokojoomhero/language/en-GB/mod_mokojoomhero.ini rename to src/language/en-GB/mod_mokojoomhero.ini diff --git a/src/packages/mod_mokojoomhero/language/en-GB/mod_mokojoomhero.sys.ini b/src/language/en-GB/mod_mokojoomhero.sys.ini similarity index 100% rename from src/packages/mod_mokojoomhero/language/en-GB/mod_mokojoomhero.sys.ini rename to src/language/en-GB/mod_mokojoomhero.sys.ini diff --git a/src/packages/mod_mokojoomhero/index.html b/src/language/en-US/index.html similarity index 100% rename from src/packages/mod_mokojoomhero/index.html rename to src/language/en-US/index.html diff --git a/src/packages/mod_mokojoomhero/language/en-US/mod_mokojoomhero.ini b/src/language/en-US/mod_mokojoomhero.ini similarity index 100% rename from src/packages/mod_mokojoomhero/language/en-US/mod_mokojoomhero.ini rename to src/language/en-US/mod_mokojoomhero.ini diff --git a/src/packages/mod_mokojoomhero/language/en-US/mod_mokojoomhero.sys.ini b/src/language/en-US/mod_mokojoomhero.sys.ini similarity index 100% rename from src/packages/mod_mokojoomhero/language/en-US/mod_mokojoomhero.sys.ini rename to src/language/en-US/mod_mokojoomhero.sys.ini diff --git a/src/packages/mod_mokojoomhero/language/en-GB/index.html b/src/language/index.html similarity index 100% rename from src/packages/mod_mokojoomhero/language/en-GB/index.html rename to src/language/index.html diff --git a/src/packages/mod_mokojoomhero/language/en-US/index.html b/src/media/css/index.html similarity index 100% rename from src/packages/mod_mokojoomhero/language/en-US/index.html rename to src/media/css/index.html diff --git a/src/packages/mod_mokojoomhero/media/css/mod_mokojoomhero.css b/src/media/css/mod_mokojoomhero.css similarity index 99% rename from src/packages/mod_mokojoomhero/media/css/mod_mokojoomhero.css rename to src/media/css/mod_mokojoomhero.css index fd357f3..7ce860f 100644 --- a/src/packages/mod_mokojoomhero/media/css/mod_mokojoomhero.css +++ b/src/media/css/mod_mokojoomhero.css @@ -6,7 +6,7 @@ * DEFGROUP: MokoJoomHero.Module.Assets * INGROUP: MokoJoomHero.Module * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero - * PATH: /src/packages/mod_mokojoomhero/media/css/mod_mokojoomhero.css + * PATH: /src/media/css/mod_mokojoomhero.css * VERSION: 01.10.00 * BRIEF: Hero module stylesheet — slideshow, video, colour/gradient, overlay, card, mute toggle, responsive */ diff --git a/src/packages/mod_mokojoomhero/language/index.html b/src/media/index.html similarity index 100% rename from src/packages/mod_mokojoomhero/language/index.html rename to src/media/index.html diff --git a/src/packages/mod_mokojoomhero/media/joomla.asset.json b/src/media/joomla.asset.json similarity index 100% rename from src/packages/mod_mokojoomhero/media/joomla.asset.json rename to src/media/joomla.asset.json diff --git a/src/packages/mod_mokojoomhero/media/css/index.html b/src/media/js/index.html similarity index 100% rename from src/packages/mod_mokojoomhero/media/css/index.html rename to src/media/js/index.html diff --git a/src/packages/mod_mokojoomhero/media/js/mod_mokojoomhero.js b/src/media/js/mod_mokojoomhero.js similarity index 99% rename from src/packages/mod_mokojoomhero/media/js/mod_mokojoomhero.js rename to src/media/js/mod_mokojoomhero.js index 5f68e5e..528aee9 100644 --- a/src/packages/mod_mokojoomhero/media/js/mod_mokojoomhero.js +++ b/src/media/js/mod_mokojoomhero.js @@ -7,7 +7,7 @@ * DEFGROUP: MokoJoomHero.Module.Assets * INGROUP: MokoJoomHero.Module * REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero - * PATH: /src/packages/mod_mokojoomhero/media/js/mod_mokojoomhero.js + * PATH: /src/media/js/mod_mokojoomhero.js * VERSION: 01.10.00 * BRIEF: Hero module JavaScript — slideshow crossfade, video viewport control, mute toggle */ diff --git a/src/packages/mod_mokojoomhero/mod_mokojoomhero.php b/src/mod_mokojoomhero.php similarity index 100% rename from src/packages/mod_mokojoomhero/mod_mokojoomhero.php rename to src/mod_mokojoomhero.php diff --git a/src/packages/mod_mokojoomhero/mod_mokojoomhero.xml b/src/mod_mokojoomhero.xml similarity index 99% rename from src/packages/mod_mokojoomhero/mod_mokojoomhero.xml rename to src/mod_mokojoomhero.xml index b8ce332..f1de610 100644 --- a/src/packages/mod_mokojoomhero/mod_mokojoomhero.xml +++ b/src/mod_mokojoomhero.xml @@ -10,7 +10,7 @@ DEFGROUP: MokoJoomHero.Module INGROUP: MokoJoomHero REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero - PATH: /src/packages/mod_mokojoomhero/mod_mokojoomhero.xml + PATH: /src/mod_mokojoomhero.xml VERSION: 01.00.20 BRIEF: Joomla module manifest — random hero image with content overlay --> diff --git a/src/packages/mod_mokojoomhero/media/index.html b/src/packages/mod_mokojoomhero/media/index.html deleted file mode 100644 index 94906bc..0000000 --- a/src/packages/mod_mokojoomhero/media/index.html +++ /dev/null @@ -1 +0,0 @@ -
diff --git a/src/packages/mod_mokojoomhero/media/js/index.html b/src/packages/mod_mokojoomhero/media/js/index.html deleted file mode 100644 index 94906bc..0000000 --- a/src/packages/mod_mokojoomhero/media/js/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/packages/plg_system_mokojoomhero/index.html b/src/packages/plg_system_mokojoomhero/index.html deleted file mode 100644 index 94906bc..0000000 --- a/src/packages/plg_system_mokojoomhero/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/packages/plg_system_mokojoomhero/language/en-GB/index.html b/src/packages/plg_system_mokojoomhero/language/en-GB/index.html deleted file mode 100644 index 94906bc..0000000 --- a/src/packages/plg_system_mokojoomhero/language/en-GB/index.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/packages/plg_system_mokojoomhero/language/en-GB/plg_system_mokojoomhero.ini b/src/packages/plg_system_mokojoomhero/language/en-GB/plg_system_mokojoomhero.ini deleted file mode 100644 index d31b03f..0000000 --- a/src/packages/plg_system_mokojoomhero/language/en-GB/plg_system_mokojoomhero.ini +++ /dev/null @@ -1,2 +0,0 @@ -; Copyright (C) 2026 Moko ConsultingMOKO-XXXX-XXXX-XXXX-XXXX) for the MokoJoomHero update site.',
- 'warning'
- );
- } catch (\RuntimeException $e) {
- $this->getApplication()->getLogger()->warning(
- 'MokoJoomHero license check failed: ' . $e->getMessage(),
- ['exception' => $e]
- );
- }
- }
-}
diff --git a/src/packages/plg_system_mokojoomhero/src/Extension/index.html b/src/packages/plg_system_mokojoomhero/src/Extension/index.html
deleted file mode 100644
index 94906bc..0000000
--- a/src/packages/plg_system_mokojoomhero/src/Extension/index.html
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/packages/plg_system_mokojoomhero/src/index.html b/src/packages/plg_system_mokojoomhero/src/index.html
deleted file mode 100644
index 94906bc..0000000
--- a/src/packages/plg_system_mokojoomhero/src/index.html
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/src/pkg_mokojoomhero.xml b/src/pkg_mokojoomhero.xml
deleted file mode 100644
index cad5f4f..0000000
--- a/src/pkg_mokojoomhero.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-