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 {