From 37721cd06153eff76b106ad9a0a6e4e0118205bc Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Tue, 23 Jun 2026 14:31:04 -0500 Subject: [PATCH] feat: full extension catalog + channel gating by domain - catalog.xml: all 21 MokoSuite repos listed with proper categories (Platform, Business, Industry, Content, SEO, Modules, Templates) - Update server URLs point to main branch (stable releases) - Dev channel only available on *.mokoconsulting.tech domains - Non-Moko domains forced to stable regardless of Joomla config - ExtensionsModel respects Joomla's com_installer update_channel param on Moko domains, skips dev-tagged versions on stable channel --- .../com_mokosuiteclient/admin/catalog.xml | 277 ++++++++++++------ .../admin/src/Model/ExtensionsModel.php | 24 +- 2 files changed, 208 insertions(+), 93 deletions(-) diff --git a/source/packages/com_mokosuiteclient/admin/catalog.xml b/source/packages/com_mokosuiteclient/admin/catalog.xml index d18e918a..b1598f85 100644 --- a/source/packages/com_mokosuiteclient/admin/catalog.xml +++ b/source/packages/com_mokosuiteclient/admin/catalog.xml @@ -1,122 +1,219 @@ + MokoSuiteClient pkg_mokosuiteclient package - Admin dashboard, security firewall, tenant restrictions, health monitoring, and REST API. + Admin dashboard, security firewall, tenant restrictions, health monitoring, content tools, and REST API. icon-shield-alt Platform -
https://mokoconsulting.tech/support/products/mokosuiteclient-platform
true - https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteClient/raw/branch/dev/updates.xml + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteClient/raw/branch/main/updates.xml
- MokoSuiteClientHQ - pkg_mokosuiteclienthq + MokoSuiteHQ + pkg_mokosuitehq package - Centralized control panel for managing all MokoSuiteClient client installations. + Centralized control panel for managing all MokoSuite client installations. icon-tachometer-alt Platform -
https://mokoconsulting.tech/support/products/mokosuiteclient-base
- https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteClientHQ/raw/branch/dev/updates.xml + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteHQ/raw/branch/main/updates.xml
- MokoOnyx - mokoonyx - template - Modern Joomla site template with dark mode, custom layouts, and MokoSuiteClient integration. - icon-paint-brush - Templates -
https://mokoconsulting.tech/support/products/mokoonyx-template
- https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx/raw/branch/dev/updates.xml -
- - MokoJoomOpenGraph - pkg_mokoog - package - Open Graph, Twitter Card, and social sharing meta tags for articles, categories, and pages. - icon-share-alt - SEO -
https://mokoconsulting.tech/support/products/mokojoomopengraph
- https://git.mokoconsulting.tech/MokoConsulting/MokoJoomOpenGraph/raw/branch/dev/updates.xml -
- - MokoSuiteClientBackup - pkg_mokojoombackup + MokoSuiteBackup + pkg_mokosuitebackup package Full-site backup and restore for Joomla — database, files, and configuration. icon-archive - Tools -
https://mokoconsulting.tech/support/products/mokosuiteclientbackup
- https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteClientBackup/raw/branch/dev/updates.xml + Platform + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteBackup/raw/branch/main/updates.xml
+ + + + MokoSuiteCRM + pkg_mokosuitecrm + package + Layer 1 — Contacts, deals pipeline, activities, e-signature, email integration, helpdesk. + icon-address-book + Business + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteCRM/raw/branch/main/updates.xml + + + MokoSuiteERP + pkg_mokosuiteerp + package + Layer 2 — Products, orders, invoicing, inventory, warehouses, accounting, payments. + icon-briefcase + Business + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteERP/raw/branch/main/updates.xml + + + MokoSuiteShop + pkg_mokosuiteshop + package + Layer 3 — Product catalog, shopping cart, checkout, coupons. Requires MokoSuiteERP. + icon-shopping-cart + Business + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteShop/raw/branch/main/updates.xml + + + MokoSuitePOS + pkg_mokosuitepos + package + Layer 3 — Touch-screen POS, multi-terminal, cash register, receipt printing. + icon-calculator + Business + https://git.mokoconsulting.tech/MokoConsulting/MokoSuitePOS/raw/branch/main/updates.xml + + + MokoSuiteMRP + pkg_mokosuitemrp + package + Layer 3 — BOM, manufacturing orders, workstation management, production scheduling. + icon-cog + Business + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteMRP/raw/branch/main/updates.xml + + + MokoSuiteHRM + pkg_mokosuitehrm + package + Layer 3 — Human Resource Management: employees, leave, expenses, payroll, recruiting. + icon-users + Business + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteHRM/raw/branch/main/updates.xml + + + MokoSuiteRestaurant + pkg_mokosuiterestaurant + package + Layer 4 — Floor plan, table management, kitchen display, split bills, online ordering. + icon-utensils + Industry + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteRestaurant/raw/branch/main/updates.xml + + + MokoSuiteChild + pkg_mokosuitechild + package + Layer 2 — Child Care Management: enrollment, attendance, billing, parent portal. + icon-child + Industry + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteChild/raw/branch/main/updates.xml + + + MokoSuiteNPO + pkg_mokosuitenpo + package + Nonprofit management: donors, donations, campaigns, grants, volunteers, events. + icon-heart + Industry + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteNPO/raw/branch/main/updates.xml + + + MokoSuiteField + pkg_mokosuitefield + package + Field Service — dispatch, work orders, scheduling, mobile tech, plumbing/HVAC. + icon-wrench + Industry + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteField/raw/branch/main/updates.xml + + + MokoSuiteCreate + pkg_mokosuitecreate + package + Layer 2 — Creative Agency: projects, tasks, timesheets, client proofing. + icon-paint-brush + Industry + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteCreate/raw/branch/main/updates.xml + + + + + MokoSuiteForms + pkg_mokosuiteforms + package + Form builder — custom forms, submissions, notifications, and data exports. + icon-list-alt + Content + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteForms/raw/branch/main/updates.xml + + + MokoSuiteCommunity + pkg_mokosuitecommunity + package + Community profiles, connections, and activity streams for Joomla. + icon-users + Content + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteCommunity/raw/branch/main/updates.xml + + + MokoSuiteCross + pkg_mokosuitecross + package + Cross-posting Joomla content to social media, email marketing, and chat platforms. + icon-share-alt + Content + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteCross/raw/branch/main/updates.xml + + + MokoSuiteOpenGraph + pkg_mokosuiteopengraph + package + Open Graph, Twitter Card, JSON-LD structured data, and social sharing meta tags. + icon-share-alt + SEO + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteOpenGraph/raw/branch/main/updates.xml + + + MokoSuiteStoreLocator + pkg_mokosuitestorelocator + package + Interactive map, location search, and admin management for store locations. + icon-map-marker-alt + Content + https://git.mokoconsulting.tech/MokoConsulting/MokoSuiteStoreLocator/raw/branch/main/updates.xml + + + MokoJoomHero mod_mokojoomhero module - Random hero image module from a configurable folder. + Hero module — image slideshow, video backgrounds, solid color/gradient, parallax. icon-image Modules -
https://mokoconsulting.tech/support/products/mokojoomhero
- https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/raw/branch/dev/updates.xml + https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/raw/branch/main/updates.xml
+ + - MokoJoomCommunity - pkg_mokojoomcommunity - package - Community Builder integration package with custom fields and user management. - icon-users - Community -
https://mokoconsulting.tech/support/products/mokojoomcommunity
- https://git.mokoconsulting.tech/MokoConsulting/MokoJoomCommunity/raw/branch/dev/updates.xml -
- - MokoJoomCross - plg_system_mokojoomcross - plugin - Cross-extension integration plugin for Joomla component interoperability. - icon-link - Plugins -
https://mokoconsulting.tech/support/products/mokojoomcross
- https://git.mokoconsulting.tech/MokoConsulting/MokoJoomCross/raw/branch/dev/updates.xml -
- - MokoJoomStoreLocator - mod_mokojoomstorelocator - module - Store locator module with Google Maps integration and search. - icon-map-marker-alt - Modules -
https://mokoconsulting.tech/support/products/mokojoomstorelocator
- https://git.mokoconsulting.tech/MokoConsulting/MokoJoomStoreLocator/raw/branch/dev/updates.xml -
- - DPCalendar API - mokodpcalendarapi - plugin - Web Services plugin exposing DPCalendar events and calendars via REST API. - icon-calendar - Plugins -
https://mokoconsulting.tech/support/products/mokodpcalendarapi
- https://git.mokoconsulting.tech/MokoConsulting/MokoDPCalendarAPI/raw/branch/dev/updates.xml -
- - Gallery Calendar - mokogallerycalendar - plugin - JoomGallery and DPCalendar integration — link galleries to events. - icon-images - Plugins -
https://mokoconsulting.tech/support/products/mokogallerycalendar
- https://git.mokoconsulting.tech/MokoConsulting/MokoGalleryCalendar/raw/branch/dev/updates.xml + MokoOnyx + mokoonyx + template + Modern Joomla site template with dark mode, custom layouts, and MokoSuite integration. + icon-paint-brush + Templates + https://git.mokoconsulting.tech/MokoConsulting/MokoOnyx/raw/branch/main/updates.xml
diff --git a/source/packages/com_mokosuiteclient/admin/src/Model/ExtensionsModel.php b/source/packages/com_mokosuiteclient/admin/src/Model/ExtensionsModel.php index bfd02aa8..96939abe 100644 --- a/source/packages/com_mokosuiteclient/admin/src/Model/ExtensionsModel.php +++ b/source/packages/com_mokosuiteclient/admin/src/Model/ExtensionsModel.php @@ -238,8 +238,15 @@ class ExtensionsModel extends BaseDatabaseModel return []; } - // Determine site's update channel preference - $channel = 'dev'; // default to dev — show everything + // Dev channel only available on Moko domains; all others forced to stable + $isMokoDomain = (bool) preg_match('/\.mokoconsulting\.tech$/i', $_SERVER['HTTP_HOST'] ?? ''); + $channel = 'stable'; + if ($isMokoDomain) { + try { + $channel = \Joomla\CMS\Component\ComponentHelper::getParams('com_installer') + ->get('update_channel', 'stable') ?: 'stable'; + } catch (\Throwable $e) {} + } $hasStable = false; $hasDev = false; @@ -269,7 +276,18 @@ class ExtensionsModel extends BaseDatabaseModel $hasDev = true; } - if ($ver === '' || version_compare($ver, $bestVersion, '<=')) + if ($ver === '') + { + continue; + } + + // Respect update channel: stable channel skips dev-tagged versions + if ($channel === 'stable' && $tag === 'dev') + { + continue; + } + + if (version_compare($ver, $bestVersion, '<=')) { continue; }