From bcb32430dcdc1f35ca9b6f0929383daf60ff72f3 Mon Sep 17 00:00:00 2001 From: Timmy38 Date: Fri, 28 Aug 2026 11:55:01 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B09998=20Small=20refactor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup/extensionsmap.class.inc.php | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/setup/extensionsmap.class.inc.php b/setup/extensionsmap.class.inc.php index bf9c1a6035..e53ae57e11 100644 --- a/setup/extensionsmap.class.inc.php +++ b/setup/extensionsmap.class.inc.php @@ -208,18 +208,15 @@ class iTopExtensionsMap */ protected function AddExtension(iTopExtension $oNewExtension) { - foreach ($this->aExtensions as $key => $oExtension) { - if ($oExtension->sCode == $oNewExtension->sCode) { - if (version_compare($oNewExtension->sVersion, $oExtension->sVersion, '>')) { - // This "new" extension is "newer" than the previous one, let's replace the previous one - unset($this->aExtensions[$key]); - $this->aExtensions[$oNewExtension->sCode.'/'.$oNewExtension->sVersion] = $oNewExtension; - $this->aExtensionsByCode[$oNewExtension->sCode] = $oNewExtension; - return; - } else { - // This "new" extension is not "newer" than the previous one, let's ignore it - return; - } + $oExtension = $this->GetFromExtensionCode($oNewExtension->sCode); + if (!is_null($oExtension)) { + if (version_compare($oNewExtension->sVersion, $oExtension->sVersion, '>') || $oExtension->bRemovedFromDisk) { + // This "new" extension is "newer" than the previous one, let's replace the previous one + // We should also replace the previous extension if it has been removed from disk + unset($this->aExtensions[$oExtension->sCode.'/'.$oExtension->sVersion]); + } else { + // This "new" extension is not "newer" than the previous one, let's ignore it + return; } } // Finally it's not a duplicate, let's add it to the list