protected function findModuleDependencies($moduleName, $recursive = false)
{
if ($this->modules === null) {
$this->modules = \Mage::app()->getConfig()->getNode('modules')->asArray();
}
if (isset($this->modules[$moduleName])) {
$dependencies = array();
$module = $this->modules[$moduleName];
if (isset($module['depends']) && is_array($module['depends']) && count($module['depends']) > 0) {
foreach (array_keys($module['depends']) as $dependencyName) {
if (isset($this->modules[$dependencyName])) {
$dependencies[] = array($dependencyName, isset($this->modules[$dependencyName]['active']) ? $this->formatActive($this->modules[$dependencyName]['active']) : '-', isset($this->modules[$dependencyName]['version']) ? $this->modules[$dependencyName]['version'] : '-', isset($this->modules[$dependencyName]['codePool']) ? $this->modules[$dependencyName]['codePool'] : '-');
if ($recursive) {
$dependencies = array_merge($dependencies, $this->findModuleDependencies($dependencyName, $recursive));
}
} else {
$dependencies[] = array($dependencyName, 'Not installed', '-', '-');
}
}
}
return $dependencies;
} else {
throw new InvalidArgumentException(sprintf("Module %s was not found", $moduleName));
}
}