/** * Le premier module trouvé dans un répertoire (dans l'ordre de déclaration des répertoires fait foi) * * @param boolean $restrictedList Si l'on souhaites restreindre la liste des modules aux seuls modules installs * @return array (nomModule=>cheminModule) */ public static function getFullList($pRestrictedList = true, $pGroupId = null) { $conf = CopixConfig::instance(); $toReturn = array(); // si on veut tous les modules (installés et non installés) if ($pRestrictedList === false) { if (self::$_hdCache !== false) { return self::$_hdCache; } foreach ($conf->arModulesPath as $path) { $path = CopixFile::trailingSlash($path); foreach (self::_findModulesIn($path) as $moduleName) { if (!isset($toReturn[$moduleName])) { $toReturn[$moduleName] = $path; } } } self::$_hdCache = $toReturn; // si on ne veut que les modules installés } else { $toReturn = self::_loadModuleList(); } // si on ne veut qu'un certain group de module if (!is_null($pGroupId)) { foreach ($toReturn as $moduleName => $path) { $moduleInfos = self::getInformations($moduleName); // si on n'a pas encore mi les infos des groupes en cache, on le fait if (!is_null($moduleInfos->group->id) && !isset(self::$_groupCache[$moduleInfos->group->id])) { self::$_groupCache[$moduleInfos->group->id] = $moduleInfos->group->caption; } // si ce module ne fait pas parti du groupe que l'on veut if ($moduleInfos->group->id != $pGroupId) { unset($toReturn[$moduleName]); } } } return $toReturn; }