diff --git a/src/language/en-GB/mod_mokojoomhero.ini b/src/language/en-GB/mod_mokojoomhero.ini
index 12ee63f..d5db8d0 100644
--- a/src/language/en-GB/mod_mokojoomhero.ini
+++ b/src/language/en-GB/mod_mokojoomhero.ini
@@ -20,9 +20,10 @@ MOD_MOKOJOOMHERO_SHOW_CARD_DESC="Wrap the content in a card with a white backgro
; Hero mode
MOD_MOKOJOOMHERO_MODE_LABEL="Hero Mode"
-MOD_MOKOJOOMHERO_MODE_DESC="Choose between a slideshow of images or a background video."
+MOD_MOKOJOOMHERO_MODE_DESC="Choose between a slideshow of images, an embedded video (YouTube/Vimeo), or a local video file."
MOD_MOKOJOOMHERO_MODE_IMAGES="Images"
-MOD_MOKOJOOMHERO_MODE_VIDEO="Video"
+MOD_MOKOJOOMHERO_MODE_VIDEO="Video (YouTube/Vimeo)"
+MOD_MOKOJOOMHERO_MODE_LOCALVIDEO="Local Video"
; Image settings
MOD_MOKOJOOMHERO_IMAGE_FOLDER_LABEL="Image Folder"
@@ -32,9 +33,13 @@ MOD_MOKOJOOMHERO_IMAGE_COUNT_DESC="How many random images to include in the slid
MOD_MOKOJOOMHERO_SLIDE_INTERVAL_LABEL="Slide Interval (ms)"
MOD_MOKOJOOMHERO_SLIDE_INTERVAL_DESC="Time between slides in milliseconds (e.g. 5000 = 5 seconds)."
-; Video settings
+; Video settings (embedded)
MOD_MOKOJOOMHERO_VIDEO_FILE_LABEL="Video URL"
-MOD_MOKOJOOMHERO_VIDEO_FILE_DESC="Local file path, YouTube URL, or Vimeo URL. Any format works — the module auto-detects the source."
+MOD_MOKOJOOMHERO_VIDEO_FILE_DESC="YouTube or Vimeo URL. The module auto-detects the source."
+
+; Local video settings
+MOD_MOKOJOOMHERO_LOCAL_VIDEO_LABEL="Video File"
+MOD_MOKOJOOMHERO_LOCAL_VIDEO_DESC="Select a video file from the Media Manager (mp4, webm, ogg)."
; Card delay
MOD_MOKOJOOMHERO_CARD_DELAY_LABEL="Card Fade-in Delay (ms)"
diff --git a/src/language/en-GB/mod_mokojoomhero.sys.ini b/src/language/en-GB/mod_mokojoomhero.sys.ini
index 880b35f..a221749 100644
--- a/src/language/en-GB/mod_mokojoomhero.sys.ini
+++ b/src/language/en-GB/mod_mokojoomhero.sys.ini
@@ -21,9 +21,10 @@ MOD_MOKOJOOMHERO_SHOW_CARD_DESC="Wrap the content in a card with a white backgro
; Hero mode
MOD_MOKOJOOMHERO_MODE_LABEL="Hero Mode"
-MOD_MOKOJOOMHERO_MODE_DESC="Choose between a slideshow of images or a background video."
+MOD_MOKOJOOMHERO_MODE_DESC="Choose between a slideshow of images, an embedded video (YouTube/Vimeo), or a local video file."
MOD_MOKOJOOMHERO_MODE_IMAGES="Images"
-MOD_MOKOJOOMHERO_MODE_VIDEO="Video"
+MOD_MOKOJOOMHERO_MODE_VIDEO="Video (YouTube/Vimeo)"
+MOD_MOKOJOOMHERO_MODE_LOCALVIDEO="Local Video"
; Image settings
MOD_MOKOJOOMHERO_IMAGE_FOLDER_LABEL="Image Folder"
@@ -33,9 +34,21 @@ MOD_MOKOJOOMHERO_IMAGE_COUNT_DESC="How many random images to include in the slid
MOD_MOKOJOOMHERO_SLIDE_INTERVAL_LABEL="Slide Interval (ms)"
MOD_MOKOJOOMHERO_SLIDE_INTERVAL_DESC="Time between slides in milliseconds (e.g. 5000 = 5 seconds)."
-; Video settings
+; Video settings (embedded)
MOD_MOKOJOOMHERO_VIDEO_FILE_LABEL="Video URL"
-MOD_MOKOJOOMHERO_VIDEO_FILE_DESC="Local file path, YouTube URL, or Vimeo URL. Any format works — the module auto-detects the source."
+MOD_MOKOJOOMHERO_VIDEO_FILE_DESC="YouTube or Vimeo URL. The module auto-detects the source."
+
+; Local video settings
+MOD_MOKOJOOMHERO_LOCAL_VIDEO_LABEL="Video File"
+MOD_MOKOJOOMHERO_LOCAL_VIDEO_DESC="Select a video file from the Media Manager (mp4, webm, ogg)."
+
+; Card delay
+MOD_MOKOJOOMHERO_CARD_DELAY_LABEL="Card Fade-in Delay (ms)"
+MOD_MOKOJOOMHERO_CARD_DELAY_DESC="Delay in milliseconds before the content card fades in. Set to 0 for no delay."
+
+; Mute toggle
+MOD_MOKOJOOMHERO_MUTE_TOGGLE_LABEL="Show Mute Toggle"
+MOD_MOKOJOOMHERO_MUTE_TOGGLE_DESC="Show a mute/unmute button on the hero video. Videos always start muted (required for autoplay)."
; Hero height
MOD_MOKOJOOMHERO_HERO_HEIGHT_LABEL="Hero Height"
diff --git a/src/language/en-US/mod_mokojoomhero.ini b/src/language/en-US/mod_mokojoomhero.ini
index 0931854..3c5fc91 100644
--- a/src/language/en-US/mod_mokojoomhero.ini
+++ b/src/language/en-US/mod_mokojoomhero.ini
@@ -20,9 +20,10 @@ MOD_MOKOJOOMHERO_SHOW_CARD_DESC="Wrap the content in a card with a white backgro
; Hero mode
MOD_MOKOJOOMHERO_MODE_LABEL="Hero Mode"
-MOD_MOKOJOOMHERO_MODE_DESC="Choose between a slideshow of images or a background video."
+MOD_MOKOJOOMHERO_MODE_DESC="Choose between a slideshow of images, an embedded video (YouTube/Vimeo), or a local video file."
MOD_MOKOJOOMHERO_MODE_IMAGES="Images"
-MOD_MOKOJOOMHERO_MODE_VIDEO="Video"
+MOD_MOKOJOOMHERO_MODE_VIDEO="Video (YouTube/Vimeo)"
+MOD_MOKOJOOMHERO_MODE_LOCALVIDEO="Local Video"
; Image settings
MOD_MOKOJOOMHERO_IMAGE_FOLDER_LABEL="Image Folder"
@@ -32,9 +33,13 @@ MOD_MOKOJOOMHERO_IMAGE_COUNT_DESC="How many random images to include in the slid
MOD_MOKOJOOMHERO_SLIDE_INTERVAL_LABEL="Slide Interval (ms)"
MOD_MOKOJOOMHERO_SLIDE_INTERVAL_DESC="Time between slides in milliseconds (e.g. 5000 = 5 seconds)."
-; Video settings
+; Video settings (embedded)
MOD_MOKOJOOMHERO_VIDEO_FILE_LABEL="Video URL"
-MOD_MOKOJOOMHERO_VIDEO_FILE_DESC="Local file path, YouTube URL, or Vimeo URL. Any format works - the module auto-detects the source."
+MOD_MOKOJOOMHERO_VIDEO_FILE_DESC="YouTube or Vimeo URL. The module auto-detects the source."
+
+; Local video settings
+MOD_MOKOJOOMHERO_LOCAL_VIDEO_LABEL="Video File"
+MOD_MOKOJOOMHERO_LOCAL_VIDEO_DESC="Select a video file from the Media Manager (mp4, webm, ogg)."
; Hero height
MOD_MOKOJOOMHERO_HERO_HEIGHT_LABEL="Hero Height"
diff --git a/src/language/en-US/mod_mokojoomhero.sys.ini b/src/language/en-US/mod_mokojoomhero.sys.ini
index 0f978d5..8196ed3 100644
--- a/src/language/en-US/mod_mokojoomhero.sys.ini
+++ b/src/language/en-US/mod_mokojoomhero.sys.ini
@@ -21,9 +21,10 @@ MOD_MOKOJOOMHERO_SHOW_CARD_DESC="Wrap the content in a card with a white backgro
; Hero mode
MOD_MOKOJOOMHERO_MODE_LABEL="Hero Mode"
-MOD_MOKOJOOMHERO_MODE_DESC="Choose between a slideshow of images or a background video."
+MOD_MOKOJOOMHERO_MODE_DESC="Choose between a slideshow of images, an embedded video (YouTube/Vimeo), or a local video file."
MOD_MOKOJOOMHERO_MODE_IMAGES="Images"
-MOD_MOKOJOOMHERO_MODE_VIDEO="Video"
+MOD_MOKOJOOMHERO_MODE_VIDEO="Video (YouTube/Vimeo)"
+MOD_MOKOJOOMHERO_MODE_LOCALVIDEO="Local Video"
; Image settings
MOD_MOKOJOOMHERO_IMAGE_FOLDER_LABEL="Image Folder"
@@ -33,9 +34,21 @@ MOD_MOKOJOOMHERO_IMAGE_COUNT_DESC="How many random images to include in the slid
MOD_MOKOJOOMHERO_SLIDE_INTERVAL_LABEL="Slide Interval (ms)"
MOD_MOKOJOOMHERO_SLIDE_INTERVAL_DESC="Time between slides in milliseconds (e.g. 5000 = 5 seconds)."
-; Video settings
+; Video settings (embedded)
MOD_MOKOJOOMHERO_VIDEO_FILE_LABEL="Video URL"
-MOD_MOKOJOOMHERO_VIDEO_FILE_DESC="Local file path, YouTube URL, or Vimeo URL. Any format works - the module auto-detects the source."
+MOD_MOKOJOOMHERO_VIDEO_FILE_DESC="YouTube or Vimeo URL. The module auto-detects the source."
+
+; Local video settings
+MOD_MOKOJOOMHERO_LOCAL_VIDEO_LABEL="Video File"
+MOD_MOKOJOOMHERO_LOCAL_VIDEO_DESC="Select a video file from the Media Manager (mp4, webm, ogg)."
+
+; Card delay
+MOD_MOKOJOOMHERO_CARD_DELAY_LABEL="Card Fade-in Delay (ms)"
+MOD_MOKOJOOMHERO_CARD_DELAY_DESC="Delay in milliseconds before the content card fades in. Set to 0 for no delay."
+
+; Mute toggle
+MOD_MOKOJOOMHERO_MUTE_TOGGLE_LABEL="Show Mute Toggle"
+MOD_MOKOJOOMHERO_MUTE_TOGGLE_DESC="Show a mute/unmute button on the hero video. Videos always start muted (required for autoplay)."
; Hero height
MOD_MOKOJOOMHERO_HERO_HEIGHT_LABEL="Hero Height"
diff --git a/src/mod_mokojoomhero.php b/src/mod_mokojoomhero.php
index 58a6c2a..a57ed9a 100644
--- a/src/mod_mokojoomhero.php
+++ b/src/mod_mokojoomhero.php
@@ -37,6 +37,7 @@ $heroContent = $params->get('heroContent', '');
$showCard = (bool) $params->get('showCard', 1);
$cardDelay = (int) $params->get('cardDelay', 0);
$showMuteToggle = (bool) $params->get('showMuteToggle', 0);
+$localVideoFile = $params->get('localVideoFile', '');
// Collect hero images
$heroImages = [];
@@ -70,7 +71,9 @@ $videoUrl = '';
$youtubeId = '';
$vimeoId = '';
-if ($heroMode === 'video' && $videoFile) {
+if ($heroMode === 'localvideo' && $localVideoFile) {
+ $videoUrl = Uri::root() . ltrim($localVideoFile, '/');
+} elseif ($heroMode === 'video' && $videoFile) {
// YouTube: watch, embed, shorts, youtu.be, with optional timestamps/params
if (preg_match('/(?:youtube\.com\/(?:watch\?.*v=|embed\/|shorts\/|v\/)|youtu\.be\/)([\w-]{11})/', $videoFile, $m)) {
$youtubeId = $m[1];
diff --git a/src/mod_mokojoomhero.xml b/src/mod_mokojoomhero.xml
index 655c66b..753d31b 100644
--- a/src/mod_mokojoomhero.xml
+++ b/src/mod_mokojoomhero.xml
@@ -25,9 +25,12 @@
01.00.20-devDisplays a random hero image slideshow or background video with content overlaid. Designed for MokoOnyx template. By Moko Consulting.
+ script.php
+
mod_mokojoomhero.phpmod_mokojoomhero.xml
+ script.phptmpllanguage
@@ -57,6 +60,7 @@
>
+
+
diff --git a/src/script.php b/src/script.php
new file mode 100644
index 0000000..b5edcd1
--- /dev/null
+++ b/src/script.php
@@ -0,0 +1,26 @@
+?autoplay=1&mute=1&loop=1&playlist=&controls=0&showinfo=0&rel=0&modestbranding=1&playsinline=1&enablejsapi=1&origin=" allow="autoplay; encrypted-media" allowfullscreen>
-
+
@@ -63,7 +63,7 @@ $heightAttr = htmlspecialchars($heroHeight, ENT_QUOTES, 'UTF-8');
-
+