/** * Compilacion de DATOS BASICOS */ private function compilar_metadatos_generales_basicos() { //-- Datos basicos -- $this->manejador_interface->mensaje('Info basica', false); $nombre_clase = 'toba_mc_gene__basicos'; $archivo = $this->get_dir_generales_compilados() . '/' . $nombre_clase . '.php'; $clase = new toba_clase_datos($nombre_clase); $datos = toba_proyecto_db::cargar_info_basica($this->get_id()); $clase->agregar_metodo_datos('info_basica', $datos); $this->manejador_interface->progreso_avanzar(); //-- Fuentes -- foreach ($this->get_indice_fuentes() as $fuente) { $datos = toba_proyecto_db::get_info_fuente_datos($this->get_id(), $fuente); //-- Se busca la relacion entre nombre_tabla y dt $mapeo = toba_proyecto_db::get_mapeo_tabla_dt($this->get_id(), $fuente); $datos['mapeo_tablas_dt'] = $mapeo; $clase->agregar_metodo_datos('info_fuente__' . $fuente, $datos); } $this->manejador_interface->progreso_avanzar(); //-- Permisos -- foreach ($this->get_indice_permisos() as $permiso) { $datos = toba_proyecto_db::get_descripcion_permiso($this->get_id(), $permiso); $clase->agregar_metodo_datos('info_permiso__' . $permiso, $datos); } $this->manejador_interface->progreso_avanzar(); //-- Indice de componentes -- $datos = toba_proyecto_db::get_mapeo_componentes_indice($this->get_id()); $clase->agregar_metodo_datos('info_indices_componentes', $datos); $this->manejador_interface->progreso_avanzar(); //Creo el archivo $clase->guardar($archivo); $this->manejador_interface->progreso_fin(); }
function get_fuente_proyecto_alterno($id, $proyecto) { $parametros = toba_proyecto_db::get_info_fuente_datos($proyecto, $id); if (isset($parametros['subclase_archivo'])) { if (toba::proyecto()->get_id() != $proyecto) { //Si la fuente esta extendida, puede necesitar otros archivos del proyecto, agregar el include path $path_proyecto = toba::instancia()->get_path_proyecto($proyecto) . '/php'; agregar_dir_include_path($path_proyecto); } $archivo = $parametros['subclase_archivo']; } else { $archivo = 'nucleo/lib/toba_fuente_datos.php'; } if (isset($parametros['subclase_nombre'])) { $clase = $parametros['subclase_nombre']; } else { $clase = "toba_fuente_datos"; } require_once $archivo; return new $clase($parametros); }
function get_info_fuente_datos($id_fuente, $proyecto = null) { if (!isset($proyecto)) { $proyecto = $this->id; } if (toba::nucleo()->utilizar_metadatos_compilados($proyecto)) { $rs = $this->recuperar_datos_compilados('toba_mc_gene__basicos', 'info_fuente__' . $id_fuente); } else { if (!isset($proyecto)) { $proyecto = $this->id; } $rs = toba_proyecto_db::get_info_fuente_datos($proyecto, $id_fuente); //-- No se carga aqui la relacion entre tabla y dt por un tema de eficiencia, se hace con un lazyload en toba_fuente_datos } if (empty($rs)) { throw new toba_error("No se puede encontrar la fuente '{$id_fuente}' en el proyecto '{$proyecto}'"); } return $rs; }