fix(catalog+modules): rename MokoJoomBackup to MokoSuiteBackup, enforce module first-position ordering
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Site Health (pull_request) Has been skipped
Generic: Repo Health / Access control (push) Successful in 2s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Universal: Secret Scanning / Gitleaks Secret Scan (pull_request) Successful in 8s
Universal: Auto Version Bump / Version Bump (push) Successful in 11s
Universal: PR Check / Validate PR (pull_request) Failing after 11s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 18s
Platform: moko-platform CI / Gate 1: Code Quality (pull_request) Failing after 28s
Platform: moko-platform CI / Gate 1: Code Quality (push) Failing after 33s
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (push) Has been cancelled
Platform: moko-platform CI / Gate 3: Self-Health Check (push) Has been cancelled
Platform: moko-platform CI / Gate 4: Governance (push) Has been cancelled
Platform: moko-platform CI / Gate 5: Template Integrity (push) Has been cancelled
Platform: moko-platform CI / CI Summary (push) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.1) (pull_request) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.2) (pull_request) Has been cancelled
Platform: moko-platform CI / Gate 2: Unit Tests (8.3) (pull_request) Has been cancelled
Platform: moko-platform CI / Gate 3: Self-Health Check (pull_request) Has been cancelled
Platform: moko-platform CI / Gate 4: Governance (pull_request) Has been cancelled
Platform: moko-platform CI / Gate 5: Template Integrity (pull_request) Has been cancelled
Platform: moko-platform CI / CI Summary (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (push) Has been cancelled
Generic: Repo Health / Repository health (push) Has been cancelled
Generic: Repo Health / Report Issues (push) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report Issues (pull_request) Has been cancelled

Update catalog entry to point to the correct MokoSuiteBackup repo with
updated description and article URL. Add per-session ordering enforcement
so MokoSuite admin modules are always first in their position slot.
This commit is contained in:
Jonathan Miller
2026-06-09 23:25:48 -05:00
parent 5f07e31aaf
commit d26b980f43
2 changed files with 36 additions and 4 deletions
@@ -50,14 +50,14 @@
<updateserver>https://git.mokoconsulting.tech/MokoConsulting/MokoJoomOpenGraph/raw/branch/dev/updates.xml</updateserver>
</extension>
<extension>
<name>MokoJoomBackup</name>
<name>MokoSuiteBackup</name>
<element>pkg_mokojoombackup</element>
<type>package</type>
<description>Automated backup system with Borg integration, scheduled tasks, and remote storage.</description>
<description>Full-site backup and restore for Joomla — database, files, and configuration.</description>
<icon>icon-archive</icon>
<category>Tools</category>
<article>https://mokoconsulting.tech/support/products/mokojoombackup</article>
<updateserver>https://git.mokoconsulting.tech/MokoConsulting/MokoJoomBackup/raw/branch/dev/updates.xml</updateserver>
<article>https://mokoconsulting.tech/support/products/mokosuitebackup</article>
<updateserver>https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/raw/branch/dev/updates.xml</updateserver>
</extension>
<extension>
<name>MokoJoomHero</name>
@@ -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
{