コード例 #1
0
 /**
  * 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;
 }