diff --git a/setup/modulediscovery.class.inc.php b/setup/modulediscovery.class.inc.php index 4181021ab..897a4c607 100644 --- a/setup/modulediscovery.class.inc.php +++ b/setup/modulediscovery.class.inc.php @@ -25,6 +25,7 @@ class MissingDependencyException extends Exception { + public $aModulesInfo; } class ModuleDiscovery @@ -165,14 +166,18 @@ class ModuleDiscovery } if ($bAbortOnMissingDependency && count($aDependencies) > 0) { + $aModulesInfo = array(); $aModuleDeps = array(); foreach($aDependencies as $sId => $aDeps) { $aModule = $aModules[$sId]; $aModuleDeps[] = "{$aModule['label']} (id: $sId) depends on ".implode(' + ', $aDeps); + $aModulesInfo[$sId] = array('module' => $aModule, 'dependencies' => $aDeps); } $sMessage = "The following modules have unmet dependencies: ".implode(', ', $aModuleDeps); - throw new MissingDependencyException($sMessage); + $oException = new MissingDependencyException($sMessage); + $oException->aModulesInfo = $aModulesInfo; + throw $oException; } // Return the ordered list, so that the dependencies are met... $aResult = array();