Ejemplo n.º 1
0
 /**
  * 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']}");
     }
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
 static function set_db($db)
 {
     self::$db = $db;
 }
Ejemplo n.º 6
0
 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);
     }
 }
Ejemplo n.º 7
0
 /**
  * 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;
 }