N.520 Setup: conflicts when a module in "extensions" is an upgrade of a module that already exists in datamodels/2.x. The most recent module must be installed and the older one must be ignored.

SVN:trunk[4477]
This commit is contained in:
Romain Quetiez
2016-11-17 15:45:34 +00:00
parent 8a913a18cf
commit e586ba8d6e

View File

@@ -86,10 +86,14 @@ class ModuleDiscovery
if (array_key_exists($sModuleName, self::$m_aModuleVersionByName))
{
if (version_compare($sModuleVersion, self::$m_aModuleVersionByName[$sModuleName], '>'))
if (version_compare($sModuleVersion, self::$m_aModuleVersionByName[$sModuleName]['version'], '>'))
{
// Newer version, let's upgrade
self::$m_aModuleVersionByName[$sModuleName] = $sModuleVersion;
$sIdToRemove = self::$m_aModuleVersionByName[$sModuleName]['id'];
unset(self::$m_aModules[$sIdToRemove]);
self::$m_aModuleVersionByName[$sModuleName]['version'] = $sModuleVersion;
self::$m_aModuleVersionByName[$sModuleName]['id'] = $sId;
}
else
{
@@ -100,7 +104,8 @@ class ModuleDiscovery
else
{
// First version to be loaded for this module, remember it
self::$m_aModuleVersionByName[$sModuleName] = $sModuleVersion;
self::$m_aModuleVersionByName[$sModuleName]['version'] = $sModuleVersion;
self::$m_aModuleVersionByName[$sModuleName]['id'] = $sId;
}
self::$m_aModules[$sId] = $aArgs;