/** * Dado el nombre de una tabla de la fuente, retorna el id de su datos_tabla asociado * @param string $tabla * @return int */ function get_id_datos_tabla($tabla) { if (!isset($this->definicion['mapeo_tablas_dt'])) { //-- Lazyload de la relacion entre tabla y dt por un tema de eficiencia $this->definicion['mapeo_tablas_dt'] = toba_proyecto_db::get_mapeo_tabla_dt($this->definicion['proyecto'], $this->definicion['fuente_datos']); } if (isset($this->definicion['mapeo_tablas_dt'][$tabla])) { return $this->definicion['mapeo_tablas_dt'][$tabla]; } else { throw new toba_error("No se encuentra el datos_tabla asociado a la tabla {$tabla} en la fuente {$this->definicion['fuente_datos']}"); } }
function buscar_schemas_fuente() { $datos = array(); $disponibles = toba_proyecto_db::get_info_fuente_schemas($this->_proyecto, $this->_fuente); if (empty($disponibles)) { //Obtengo el schema directamente desde la conexion $datos[] = toba::db($this->_fuente, $this->_proyecto)->get_schema(); } else { foreach ($disponibles as $esquema) { $datos[] = $esquema['nombre']; } } return $datos; }
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); }
private function compilar_metadatos_generales_pms() { $this->manejador_interface->mensaje('Puntos de Montaje', false); $nombre_clase = 'toba_mc_gene__pms'; $archivo = $this->get_dir_generales_compilados() . '/' . $nombre_clase . '.php'; $clase = new toba_clase_datos($nombre_clase); $datos = toba_proyecto_db::get_pms($this->get_id()); $clase->agregar_metodo_datos('get_pms', $datos); $clase->guardar($archivo); }
static function set_db($db) { self::$db = $db; }
function evt__form_armado__modificacion($datos) { if (isset($datos['nivel_inicial'])) { unset($datos['nivel_inicial']); } if (!empty($datos)) { $this->raiz = toba_proyecto_db::get_item_raiz($this->s__proyecto); //Recupero los ids enviados por el arbol (lado server) $ids_validos = $this->get_ids_enviados(); //Armo un arreglo con los ids recuperados en forma de padre/hijo $ids_recuperados = array(); foreach ($datos as $klave => $ids_enviados) { $aux = explode('^', $ids_enviados); $ids_recuperados = array_merge($ids_recuperados, $aux); $datos[$klave] = $aux; } $diff = array_diff($ids_recuperados, $ids_validos); if (!empty($diff)) { throw new toba_error_seguridad('Una de las opciones indicadas no es valida'); } //Calculo el complemento para distinguir los elementos eliminados (tambien estan los no seleccionados, asi que hay un poco mas.. pero bueno) if ($this->es_edicion()) { $diffr = array_diff($ids_validos, $ids_recuperados); $this->quitar_elementos_eliminados($diffr); } //Se inserta o actualizan los elementos del menu $this->actualizar_elementos($ids_recuperados, $datos); } }
/** * Recupera los gadgets disponibles en la base de datos * para el usuario en un proyecto especifico * @param string $usuario Id del usuario * @param string $proyecto Id del proyecto * @return array Arreglo con objetos toba_gadget o vacio en su defecto. */ function get_gadgets_proyecto($usuario, $proyecto = null) { if (is_null($proyecto)) { $proyecto = $this->id; } //Si no pasan proyecto tomo el actual $gadgets = array(); $info_gadgets = toba_proyecto_db::get_gadgets_proyecto($proyecto, $usuario); if (!empty($info_gadgets)) { foreach ($info_gadgets as $info) { $gadgets[] = $this->get_objeto_gadget($info); } } return $gadgets; }