diff --git a/source/packages/com_mokosuite/admin/catalog.xml b/source/packages/com_mokosuite/admin/catalog.xml
index 9a65db60..fbbd9e43 100644
--- a/source/packages/com_mokosuite/admin/catalog.xml
+++ b/source/packages/com_mokosuite/admin/catalog.xml
@@ -50,14 +50,14 @@
https://git.mokoconsulting.tech/MokoConsulting/MokoJoomOpenGraph/raw/branch/dev/updates.xml
- MokoJoomBackup
+ MokoSuiteBackup
pkg_mokojoombackup
package
- Automated backup system with Borg integration, scheduled tasks, and remote storage.
+ Full-site backup and restore for Joomla — database, files, and configuration.
icon-archive
Tools
- https://mokoconsulting.tech/support/products/mokojoombackup
- https://git.mokoconsulting.tech/MokoConsulting/MokoJoomBackup/raw/branch/dev/updates.xml
+ https://mokoconsulting.tech/support/products/mokosuitebackup
+ https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/raw/branch/dev/updates.xml
MokoJoomHero
diff --git a/source/packages/plg_system_mokosuite/Extension/MokoSuite.php b/source/packages/plg_system_mokosuite/Extension/MokoSuite.php
index 1ceaf15f..344bc470 100644
--- a/source/packages/plg_system_mokosuite/Extension/MokoSuite.php
+++ b/source/packages/plg_system_mokosuite/Extension/MokoSuite.php
@@ -2241,6 +2241,38 @@ class MokoSuite extends CMSPlugin implements BootableExtensionInterface
$data['assignment'] = 0;
$model->save($data);
}
+
+ // Ensure module is first in its position
+ $db->setQuery(
+ $db->getQuery(true)
+ ->select('MIN(' . $db->quoteName('ordering') . ')')
+ ->from('#__modules')
+ ->where($db->quoteName('position') . ' = ' . $db->quote($config['position']))
+ ->where($db->quoteName('client_id') . ' = 1')
+ ->where($db->quoteName('id') . ' != ' . (int) $mod->id)
+ );
+ $minOther = $db->loadResult();
+
+ if ($minOther !== null)
+ {
+ // Re-read current ordering for this module
+ $db->setQuery(
+ $db->getQuery(true)
+ ->select($db->quoteName('ordering'))
+ ->from('#__modules')
+ ->where($db->quoteName('id') . ' = ' . (int) $mod->id)
+ );
+ $currentOrdering = (int) $db->loadResult();
+
+ if ($currentOrdering >= (int) $minOther)
+ {
+ $newOrdering = (int) $minOther - 1;
+ $data = $model->getItem($mod->id)->getProperties();
+ $data['ordering'] = $newOrdering;
+ $data['assignment'] = 0;
+ $model->save($data);
+ }
+ }
}
else
{