From 3f69fe6fc13e2081780a7d48e8b63db8b579c113 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Thu, 4 Jun 2026 10:30:09 -0500 Subject: [PATCH] feat: retire MokoJoomTOS, MokoATS-Automation, MokoDPCalendarAPI, MokoGalleryCalendar Add to removeRetiredExtensions(): uninstalls plugins, removes update sites, and deletes files on MokoWaaS install/update. These features are now built into MokoWaaS directly. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- src/script.php | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/script.php b/src/script.php index fd814908..7bb49fd3 100644 --- a/src/script.php +++ b/src/script.php @@ -273,6 +273,10 @@ class Pkg_MokowaasInstallerScript { $retired = [ ['type' => 'plugin', 'folder' => 'system', 'element' => 'mokowaas_monitor'], + ['type' => 'plugin', 'folder' => 'system', 'element' => 'mokojoomtos'], + ['type' => 'plugin', 'folder' => 'system', 'element' => 'mokoatsautomation'], + ['type' => 'plugin', 'folder' => 'webservices', 'element' => 'mokodpcalendarapi'], + ['type' => 'plugin', 'folder' => 'system', 'element' => 'mokogallerycalendar'], ]; try @@ -304,6 +308,36 @@ class Pkg_MokowaasInstallerScript ->where($db->quoteName('extension_id') . ' = ' . $extId) )->execute(); + // Remove update site links and update sites + $db->setQuery( + $db->getQuery(true) + ->select($db->quoteName('update_site_id')) + ->from($db->quoteName('#__update_sites_extensions')) + ->where($db->quoteName('extension_id') . ' = ' . $extId) + ); + $siteIds = $db->loadColumn(); + + $db->setQuery( + $db->getQuery(true) + ->delete($db->quoteName('#__update_sites_extensions')) + ->where($db->quoteName('extension_id') . ' = ' . $extId) + )->execute(); + + if (!empty($siteIds)) + { + $db->setQuery( + $db->getQuery(true) + ->delete($db->quoteName('#__updates')) + ->where($db->quoteName('update_site_id') . ' IN (' . implode(',', $siteIds) . ')') + )->execute(); + + $db->setQuery( + $db->getQuery(true) + ->delete($db->quoteName('#__update_sites')) + ->where($db->quoteName('update_site_id') . ' IN (' . implode(',', $siteIds) . ')') + )->execute(); + } + // Remove extension record $db->setQuery( $db->getQuery(true)