Ejemplo n.º 1
0
 /**
  *	Devuelve la lista de proyectos existentes en la carpeta por defecto de la instalación
  * 	Es posible que existan proyectos en otros lugares del sistema de archivos y no se listen con este método
  * 	@return array Arreglo asociativo path relativo => id proyecto
  */
 static function get_lista($usar_cache = true)
 {
     if (!isset(self::$lista_proyectos) || !$usar_cache) {
         $proyectos = array();
         $directorio_proyectos = toba_dir() . '/proyectos';
         if (is_dir($directorio_proyectos)) {
             if ($dir = opendir($directorio_proyectos)) {
                 while (false !== ($archivo = readdir($dir))) {
                     if (is_dir($directorio_proyectos . '/' . $archivo) && $archivo != '.' && $archivo != '..' && $archivo != '.svn') {
                         $arch_nombre = $directorio_proyectos . '/' . $archivo . '/proyecto.ini';
                         $id = $archivo;
                         //--- Si no se encuentra el archivo PROYECTO, se asume que dir=id
                         if (file_exists($arch_nombre)) {
                             $ini = new toba_ini($arch_nombre);
                             $id = $ini->get('proyecto', 'id', null, true);
                         }
                         $proyectos[$archivo] = $id;
                     }
                 }
                 closedir($dir);
             }
         }
         self::$lista_proyectos = $proyectos;
     }
     return self::$lista_proyectos;
 }