From 167fc489d1ba892395d4e98fcc630f4706eabeab Mon Sep 17 00:00:00 2001 From: maxpozdeev Date: Thu, 8 Sep 2022 23:12:32 +0300 Subject: [PATCH] * can deactivate missing extension --- src/settings.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/settings.php b/src/settings.php index d46eae8..19e2650 100644 --- a/src/settings.php +++ b/src/settings.php @@ -72,9 +72,10 @@ else if (isset($_POST['activate'])) $ext = _post('ext'); $exts = MTTExtensionLoader::bundles(); + $a = Config::get('extensions'); + if (!is_array($a)) $a = []; + if (in_array($ext, $exts)) { - $a = Config::get('extensions'); - if (!is_array($a)) $a = []; if ($activate) { try { MTTExtensionLoader::loadExtension($ext); @@ -89,6 +90,11 @@ else if (isset($_POST['activate'])) Config::set('extensions', $a); Config::save(); } + else if (!$activate && in_array($ext, $a)) { + $a = array_diff($a, [$ext]); + Config::set('extensions', $a); + Config::save(); + } $t['saved'] = 1; jsonExit($t); } @@ -193,12 +199,18 @@ function listExtensions() if ($instance instanceof MTTExtensionSettingsInterface) { $out .= " ". __('a_settings', true). ""; } + $activatedExts = array_diff($activatedExts, [$ext]); } else { $out .= "". __('set_activate', true). ''; } $a[] = $out; } + // removed and not deactivated + foreach ($activatedExts as $ext) { + $out = "$ext <not found> "."". __('set_deactivate', true). ''; + $a[] = $out; + } print( implode("
\n", $a) ); }