Пример #1
0
 private function __construct($proyecto)
 {
     if (!in_array($proyecto, toba::instancia()->get_id_proyectos())) {
         //El proyecto no existe o no esta cargado en la instancia
         if (!toba::instalacion()->es_produccion()) {
             throw new toba_error("El proyecto '" . $proyecto . "' no se encuentra cargado en la instancia");
         } else {
             die;
             //En produccion no se loguea nada, se mata inmediatamente el proceso
         }
     }
     toba_proyecto_db::set_db(toba::instancia()->get_db());
     //Las consultas salen de la instancia actual
     $this->id = $proyecto;
     $this->memoria =& toba::manejador_sesiones()->segmento_info_proyecto($proyecto);
     if (!$this->memoria) {
         $this->memoria = self::cargar_info_basica();
         //toba::logger()->debug('Inicialización de TOBA_PROYECTO: ' . $this->id,'toba');
     }
     $path_ini = self::get_path() . '/proyecto.ini';
     if (file_exists($path_ini)) {
         $this->ini_proyecto = new toba_ini($path_ini);
     }
     $this->configurar_logger();
 }
Пример #2
0
 /**
  *	Compilacion de GRUPOS de ACCESO
  */
 function compilar_metadatos_generales_grupos_acceso($limpiar_existentes = false)
 {
     toba_proyecto_db::set_db($this->db);
     if ($limpiar_existentes) {
         $archivos = toba_manejador_archivos::get_archivos_directorio($this->get_dir_generales_compilados(), '/toba_mc_gene__grupo/');
         foreach ($archivos as $archivo) {
             unlink($archivo);
         }
     }
     $this->manejador_interface->mensaje('Perfiles funcionales', false);
     foreach ($this->get_indice_grupos_acceso() as $grupo_acceso) {
         $nombre_clase = 'toba_mc_gene__grupo_' . $grupo_acceso;
         $archivo = $this->get_dir_generales_compilados() . '/' . $nombre_clase . '.php';
         $clase = new toba_clase_datos($nombre_clase);
         //-- Menu -------------------------------
         $datos = toba_proyecto_db::get_items_menu($this->get_id(), array($grupo_acceso));
         $temp = array();
         foreach ($datos as $dato) {
             $temp[$dato['proyecto'] . '-' . $dato['item']] = $dato;
         }
         $clase->agregar_metodo_datos('get_items_menu', $temp);
         //-- Control acceso ---------------------
         $datos = toba_proyecto_db::get_items_accesibles($this->get_id(), array($grupo_acceso));
         $temp = array();
         foreach ($datos as $dato) {
             $temp[$dato['proyecto'] . '-' . $dato['item']] = $dato;
         }
         $clase->agregar_metodo_datos('get_items_accesibles', $temp);
         //-- Permisos ---------------------------
         $datos = toba_proyecto_db::get_lista_permisos($this->get_id(), array($grupo_acceso));
         $temp = array();
         foreach ($datos as $dato) {
             $temp[$dato['nombre'] . '-'] = $dato;
             //Se concatena un string porque asi el merge unifica si o si aunque el nombre sea un numero
         }
         $clase->agregar_metodo_datos('get_lista_permisos', $temp);
         //-- Acceso items zonas -----------------
         foreach ($this->get_indice_zonas() as $zona) {
             $datos = toba_proyecto_db::get_items_zona($this->get_id(), array($grupo_acceso), $zona);
             $temp = array();
             foreach ($datos as $dato) {
                 $temp[$dato['item_proyecto'] . '-' . $dato['item']] = $dato;
             }
             $clase->agregar_metodo_datos('get_items_zona__' . $zona, $temp);
         }
         //-- Membresía -------------------
         $miembros = toba_proyecto_db::get_perfiles_funcionales_asociados($this->get_id(), $grupo_acceso);
         $clase->agregar_metodo_datos('get_membresia', $miembros);
         //Guardo el archivo
         $clase->guardar($archivo);
         $this->manejador_interface->progreso_avanzar();
     }
     //-- Agrego los items publicos en un archivo aparte, para que el usuario no autentificado pueda navegarlos
     $nombre_clase = 'toba_mc_gene__items_publicos';
     $archivo = $this->get_dir_generales_compilados() . '/' . $nombre_clase . '.php';
     $clase = new toba_clase_datos($nombre_clase);
     $datos = toba_proyecto_db::get_items_accesibles($this->get_id(), array());
     $temp = array();
     foreach ($datos as $dato) {
         $temp[$dato['proyecto'] . '-' . $dato['item']] = $dato;
     }
     $clase->agregar_metodo_datos('get_items_accesibles', $temp);
     $clase->guardar($archivo);
     $this->manejador_interface->progreso_avanzar();
     $this->manejador_interface->progreso_fin();
 }