---
.../plg_system_mokowaas/Extension/MokoWaaS.php | 11 +++++++++--
.../plg_system_mokowaas/Field/NextResetField.php | 14 ++++++++++++++
.../Field/SnapshotTablesField.php | 7 ++++++-
3 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php
index e54f9c47..3be1dba8 100644
--- a/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php
+++ b/src/packages/plg_system_mokowaas/Extension/MokoWaaS.php
@@ -878,6 +878,11 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface
$changed = true;
}
}
+ elseif ($params->get('demo_next_reset', '') !== '')
+ {
+ $params->set('demo_next_reset', '');
+ $changed = true;
+ }
// Demo Mode: Take Snapshot Now
if ((int) $params->get('demo_take_snapshot_now', 0) === 1)
@@ -1736,10 +1741,12 @@ class MokoWaaS extends CMSPlugin implements BootableExtensionInterface
$tablesParam = $this->params->get('demo_snapshot_tables', '');
- // Handle both checkbox array and legacy newline-separated textarea
+ // Handle array, nested array, or legacy newline-separated textarea
if (is_array($tablesParam))
{
- $tables = array_filter($tablesParam);
+ $tables = array_filter(array_map(function ($v) {
+ return is_array($v) ? reset($v) : $v;
+ }, $tablesParam));
}
else
{
diff --git a/src/packages/plg_system_mokowaas/Field/NextResetField.php b/src/packages/plg_system_mokowaas/Field/NextResetField.php
index 964ce5dd..169d545c 100644
--- a/src/packages/plg_system_mokowaas/Field/NextResetField.php
+++ b/src/packages/plg_system_mokowaas/Field/NextResetField.php
@@ -32,6 +32,20 @@ class NextResetField extends FormField
protected function getInput()
{
+ // Check if demo mode is enabled via the form data
+ $demoEnabled = false;
+
+ if ($this->form)
+ {
+ $demoEnabled = (int) $this->form->getValue('demo_mode_enabled', 'params', 0) === 1;
+ }
+
+ if (!$demoEnabled)
+ {
+ return 'Demo mode is off'
+ . '';
+ }
+
if (empty($this->value))
{
return 'No reset scheduled — save the plugin config to calculate.
';
diff --git a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php
index 9fbdc401..026d745d 100644
--- a/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php
+++ b/src/packages/plg_system_mokowaas/Field/SnapshotTablesField.php
@@ -88,6 +88,11 @@ class SnapshotTablesField extends FormField
$selected = (array) $selected;
+ // Flatten nested arrays from broken save format [["#__content"],["#__categories"]]
+ $selected = array_map(function ($v) {
+ return is_array($v) ? reset($v) : $v;
+ }, $selected);
+
// Group tables
$grouped = [];
@@ -116,7 +121,7 @@ class SnapshotTablesField extends FormField
// Build HTML select with optgroups
$size = (int) ($this->element['size'] ?? 15);
- $html = '