/** * 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; }