function get_lista_items() { $proyecto = toba_contexto_info::get_db()->quote($this->proyecto); $sql = "SELECT\n\t\t\t\t\tproyecto, \n\t\t\t\t\titem, \n\t\t\t\t\tcarpeta,\n\t\t\t\t\tpadre \n\t\t\t\tFROM \n\t\t\t\t\tapex_item\n\t\t\t\tWHERE \n\t\t\t\t\tproyecto = {$proyecto}\n\t\t\t\tORDER BY carpeta, orden, nombre;"; $items = toba_contexto_info::get_db()->consultar($sql); return $items; }
static function referenciar_memoria() { self::$memoria =& toba::manejador_sesiones()->segmento_editor(); //Acceso a la informacion del modelo toba_contexto_info::set_proyecto(toba_editor::get_proyecto_cargado()); toba_contexto_info::set_db(toba_editor::get_base_activa()); if (!self::modo_prueba()) { return; } //Cambia el perfil activo $perfil_activo = toba::memoria()->get_parametro('perfil_activo'); if (isset($perfil_activo)) { if ($perfil_activo == apex_ef_no_seteado) { toba::manejador_sesiones()->set_perfiles_funcionales_activos(toba::manejador_sesiones()->get_perfiles_funcionales()); } else { toba::manejador_sesiones()->set_perfiles_funcionales_activos(array($perfil_activo)); } } //Cambia el usuario de conexion $tipo_conexion = toba::memoria()->get_parametro('usuario_conexion'); if (isset($tipo_conexion)) { self::$memoria['conexion_limitada'] = $tipo_conexion == 'limitado'; } self::$fuentes = toba_info_editores::get_fuentes_datos(toba_editor::get_proyecto_cargado()); $modelo = self::get_modelo_proyecto(); foreach (self::$fuentes as $fuente) { try { if (self::$memoria['conexion_limitada'] && $fuente['permisos_por_tabla']) { //El proyecto usa permisos por tablas para las operaciones, en modo previsualizacion se setea el rol especifico $id_base = self::$memoria['instancia'] . ' ' . self::get_proyecto_cargado() . ' ' . $fuente['fuente_datos']; $parametros = toba_dba::get_parametros_base($id_base); $usuario = $modelo->get_usuario_prueba_db($fuente['fuente_datos']); $parametros['usuario'] = $usuario; $parametros['clave'] = $usuario; toba_dba::set_parametros_base($id_base, $parametros); } //Pone la base por defecto en modo debug, para leer la cantidad y tiempo de las querys $base = toba_admin_fuentes::instancia()->get_fuente($fuente['fuente_datos'], toba_editor::get_proyecto_cargado())->get_db(); if ($base) { $base->set_modo_debug(true, false); } } catch (toba_error $e) { //Si no se tiene acceso a la base no se hace nada } } //Cambia el skin if (toba::memoria()->get_parametro('skin') != '') { $skin = explode(apex_qs_separador, toba::memoria()->get_parametro('skin')); $sql = "SELECT es_css3 FROM apex_estilo WHERE estilo = " . quote($skin[0]) . " AND proyecto =" . quote($skin[1]); $datos = toba::instancia()->get_db()->consultar_fila($sql); toba::proyecto()->set_parametro('estilo', $skin[0]); toba::proyecto()->set_parametro('estilo_proyecto', $skin[1]); toba::proyecto()->set_parametro('es_css3', $datos['es_css3']); } //Cambia tipo de navegación if (toba::memoria()->get_parametro('navegacion_ajax') != '') { $ajax = toba::memoria()->get_parametro('navegacion_ajax') ? true : false; toba::proyecto()->set_parametro('navegacion_ajax', $ajax); } }
static function get_lista_tipo_dato($mapeo_obligatorio = false) { $where = ''; if ($mapeo_obligatorio) { $where = 'WHERE dt_tipo_dato IS NOT NULL'; } $sql = "SELECT \n\t\t\t\t\ttipo_dato,\n \t\t\t\t\tdescripcion_corta,\n \t\t\t\t\tdescripcion,\n \t\t\t\t\tdt_tipo_dato,\n \t\t\t\t\telemento_formulario,\n\t\t\t\t\tcuadro_estilo,\n \t\t\t\t\tcuadro_formato,\n \t\t\t\t\tfiltro_operador\n\t\t\t\tFROM apex_molde_operacion_tipo_dato\n\t\t\t\t\t{$where}\n\t\t\t\tORDER BY descripcion_corta\n\t\t"; return toba_contexto_info::get_db()->consultar($sql); }
function get_datos_listado() { $clausulas = array(); if (isset($this->s__filtro)) { $clausulas = $this->dep('filtro')->get_sql_clausulas(); } $clausulas[] = 'proyecto = ' . toba::db()->quote(toba_contexto_info::get_proyecto()); return toba_info_editores::get_mensajes_filtrados($clausulas); }
protected function restaurar_estado($sentencias) { foreach ($sentencias as $sql) { $rs = toba_contexto_info::get_db()->ejecutar($sql); if (!$rs) { $this->Fail("Error restaurando estado:\n{$sql}\n" . toba_contexto_info::get_db()->ErrorMsg()); } } }
function set_subclase($nombre, $archivo, $pm) { $db = toba_contexto_info::get_db(); $nombre = $db->quote($nombre); $archivo = $db->quote($archivo); $pm = $db->quote($pm); $sql = "\n\t\t\tUPDATE apex_objeto_db_registros\n\t\t\tSET \n\t\t\t\tap = 0,\n\t\t\t\tap_clase = {$nombre},\n\t\t\t\tap_archivo = {$archivo},\n\t\t\t\tpunto_montaje = {$pm}\n\t\t\tWHERE\n\t\t\t\t\tobjeto_proyecto = '{$this->datos['proyecto']}'\n\t\t\t\tAND\tobjeto = '{$this->datos['objeto']}'\n\t\t"; toba::logger()->debug($sql); $db->ejecutar($sql); }
function set_subclase($nombre, $archivo, $pm) { $db = toba_contexto_info::get_db(); $nombre = $db->quote($nombre); $archivo = $db->quote($archivo); $pm = $db->quote($pm); $id = $db->quote($this->_id['proyecto']); $sql = "\n\t\t\tUPDATE apex_proyecto\n\t\t\tSET\n\t\t\t\tusuario_subclase = {$nombre},\n\t\t\t\tusuario_subclase_archivo = {$archivo},\n\t\t\t\tpm_usuario = {$pm}\n\t\t\tWHERE\n\t\t\t\t\tproyecto = {$id};"; toba::logger()->debug($sql); $db->ejecutar($sql); }
function set_subclase($nombre, $archivo, $pm) { $db = toba_contexto_info::get_db(); $proyecto = quote($this->_id['proyecto']); $nombre = quote($nombre); $archivo = quote($archivo); $pm = quote($pm); $sql = "UPDATE apex_proyecto\n\t\t\t\t\tSET contexto_ejecucion_subclase = {$nombre},\n\t\t\t\t\tcontexto_ejecucion_subclase_archivo = {$archivo},\n\t\t\t\t\tpm_contexto = {$pm}\n\t\t\t\t\tWHERE\tproyecto = {$proyecto};"; toba::logger()->debug($sql); $db->ejecutar($sql); }
function set_subclase($nombre, $archivo, $pm) { $db = toba_contexto_info::get_db(); $nombre = $db->quote($nombre); $archivo = $db->quote($archivo); $pm = $db->quote($pm); $proyecto = $db->quote($this->_id['proyecto']); $zona = $db->quote($this->_id['id']); $sql = "\n\t\t\tUPDATE apex_item_zona\n\t\t\tSET\n\t\t\t\tarchivo = {$archivo},\n\t\t\t\tpunto_montaje = {$pm}\n\t\t\tWHERE\n\t\t\t\t\tproyecto = {$proyecto}\n\t\t\tAND zona = {$zona};"; toba::logger()->debug($sql); $db->ejecutar($sql); }
function sincronizar() { if ($this->acceso_original !== $this->acceso_actual) { if ($this->acceso_actual) { $sql = "INSERT INTO \n\t\t\t\t\t\t\tapex_usuario_grupo_acc_item (proyecto, usuario_grupo_acc, item) \n\t\t\t\t\t\tVALUES \n\t\t\t\t\t\t\t('{$this->proyecto}','{$this->grupo_acceso}','{$this->id}');"; } elseif ($this->acceso_actual === false) { $sql = "DELETE FROM \n\t\t\t\t\t\t\tapex_usuario_grupo_acc_item \n\t\t\t\t\t\tWHERE \n\t\t\t\t\t\t\titem = '{$this->id}'\n\t\t\t\t\t\tAND usuario_grupo_acc = '{$this->grupo_acceso}'\n\t\t\t\t\t\tAND proyecto = '{$this->proyecto}';"; } toba_contexto_info::get_db()->ejecutar($sql); } return $this->acceso_actual; }
function ini() { //Averiguo cual es el punto de montaje /php $db = toba_contexto_info::get_db(); $datos = $this->datos->tabla('base')->get_clave_valor(0); $sql = 'SELECT pm_contexto FROM apex_proyecto WHERE proyecto = ' . $db->quote($datos['proyecto']); $rs = $db->consultar_fila($sql); $this->datos->tabla('base')->set_fila_columna_valor(0, 'punto_montaje', $rs['pm_contexto']); $this->datos->tabla('base')->set_fila_columna_valor(0, 'clase', $this->clase); $this->datos->tabla('base')->set_fila_columna_valor(0, 'clase_proyecto', $this->clase_proyecto); $this->carpeta_archivo = $this->asistente->get_carpeta_archivos(); }
function __construct(toba_modelo_instancia $instancia, $identificador) { $this->instancia = $instancia; $this->identificador = $identificador; $this->dir = $instancia->get_path_proyecto($identificador); if (!is_dir($this->dir)) { throw new toba_error("PROYECTO: El proyecto '{$this->identificador}' es invalido. (la carpeta '{$this->dir}' no existe)"); } $this->db = $this->instancia->get_db(); toba_contexto_info::set_db($this->get_db()); toba_contexto_info::set_proyecto($this->identificador); toba_logger::instancia()->debug('PROYECTO "' . $this->identificador . '"'); }
function __construct($molde = null, $dr_molde = null) { if (isset($molde)) { $this->id_molde_proyecto = $molde['molde']['proyecto']; $this->id_molde = $molde['molde']['molde']; //Cargo el molde foreach (array_keys($molde) as $parte) { $this->{$parte} = $molde[$parte]; } } if (isset($dr_molde)) { $this->dr_molde = $dr_molde; } if (!isset($this->id_molde_proyecto)) { $this->id_molde_proyecto = toba_contexto_info::get_proyecto(); } $this->valores_predefinidos = toba_info_editores::get_opciones_predefinidas_molde(); }
static function get_casos($categoria = 'nopar') { //Agrega el proyecto al include path if (isset(self::$proyecto)) { $proyecto = self::$proyecto; } else { $proyecto = toba_contexto_info::get_proyecto(); } $path = toba::instancia()->get_path_proyecto($proyecto) . "/php"; agregar_dir_include_path($path); $casos = $casos_sel = array(); $path = self::get_path(); if (file_exists($path . '/test_toba.php')) { require_once $path . '/test_toba.php'; } if ($handle = @opendir($path)) { $casos = self::get_archivos($handle, $path); closedir($handle); } $path_sel = self::get_path('selenium'); if ($handle = @opendir($path_sel)) { $casos_sel = self::get_archivos($handle, $path_sel); closedir($handle); } if (!empty($casos) || !empty($casos_sel)) { $casos = array_merge($casos, $casos_sel); } usort($casos, array("toba_test_lista_casos", "comparar")); if ($categoria == 'todas' || $categoria == 'nopar') { return $casos; } else { $casos_selecc = array(); foreach ($casos as $caso) { if ($caso['categoria'] == $categoria) { $casos_selecc[] = $caso; } } return $casos_selecc; } }
function cargar_todo($opciones = array()) { $this->carpeta_inicial = toba_info_editores::get_item_raiz($this->proyecto); $grupo = ''; $proyecto = toba_contexto_info::get_db()->quote($this->proyecto); $sql = "\tSELECT \ti.item as item,\n\t\t\t\t\t\t\ti.proyecto as proyecto,\n\t\t\t\t\t\t\ti.imagen_recurso_origen,\n\t\t\t\t\t\t\ti.imagen,\n\t\t\t\t\t\t\tnombre,\n\t\t\t\t\t\t\tcarpeta,\n\t\t\t\t\t\t\tpadre,\n\t\t\t\t\t\t\tdescripcion,\n\t\t\t\t\t\t\tia.usuario_grupo_acc as acceso\n\t\t\t\t\tFROM apex_item i\n\t\t\t\t\t\tLEFT OUTER JOIN apex_usuario_grupo_acc_item ia\n\t\t\t\t\t\t\tON i.item = ia.item AND i.proyecto = ia.proyecto\n\t\t\t\t\tWHERE \t\n\t\t\t\t\t\t\ti.proyecto = {$proyecto}\n\t\t\t\t\t\tAND\ti.menu = 1\n\t\t\t\t\t\tAND\t(publico IS NULL OR publico = 0)\n\t\t\t\t\t\tOR i.item =" . quote($this->carpeta_inicial) . "\n\t\t\t\t\tORDER BY i.carpeta, i.orden, i.nombre"; toba::logger()->debug($sql); $rs = toba_contexto_info::get_db()->consultar($sql); $this->items = array(); if (!empty($rs)) { foreach ($rs as $fila) { if ($fila['carpeta']) { $obj = new toba_carpeta_menu($fila['nombre'], null, $fila['item'], $fila['padre']); } else { $obj = new toba_item_menu($fila['nombre'], null, $fila['item'], $fila['padre']); } $this->items[$fila['item']] = $obj; } $this->carpeta_inicial = toba_info_editores::get_item_raiz($this->proyecto); $this->mensaje = ""; $this->ordenar(); } }
function cargar($opciones, $id_item_inicial = null, $incluidos_forzados = array()) { $grupo = toba_contexto_info::get_db()->quote($this->grupo_acceso); $proyecto = toba_contexto_info::get_db()->quote($this->proyecto); $sql = "\tSELECT \ti.item as item,\n\t\t\t\t\t\t\ti.proyecto as proyecto,\n\t\t\t\t\t\t\ti.imagen_recurso_origen,\n\t\t\t\t\t\t\ti.imagen,\n\t\t\t\t\t\t\tnombre,\n\t\t\t\t\t\t\tcarpeta,\n\t\t\t\t\t\t\tpadre,\n\t\t\t\t\t\t\tdescripcion,\n\t\t\t\t\t\t\tia.usuario_grupo_acc as acceso\n\t\t\t\t\tFROM apex_item i\n\t\t\t\t\t\tLEFT OUTER JOIN apex_usuario_grupo_acc_item ia\n\t\t\t\t\t\t\tON i.item = ia.item AND i.proyecto = ia.proyecto\n\t\t\t\t\t\t\tAND ia.usuario_grupo_acc = {$grupo}\n\t\t\t\t\tWHERE \t\n\t\t\t\t\t\t\ti.proyecto = {$proyecto}\n\t\t\t\t\t\tAND\t(publico IS NULL OR publico = 0)\t\t\t\t\n\t\t\t\t\tORDER BY i.carpeta, i.orden, i.nombre"; $rs = toba_contexto_info::get_db()->consultar($sql); $this->items = array(); if (!empty($rs)) { foreach ($rs as $fila) { if ($fila['carpeta']) { $obj = new toba_carpeta_perfil($fila, $this->grupo_acceso); } else { $obj = new toba_item_perfil($fila, $this->grupo_acceso); } $this->items[$fila['item']] = $obj; } $this->carpeta_inicial = toba_info_editores::get_item_raiz($this->proyecto); $this->mensaje = ""; $this->ordenar(); /* Deberia mostrar nodos abiertos para aquellas carpetas en las que se aplica una restriccion*/ //$this->filtrar(); } }
protected function borrar_permisos_actuales($grupo) { //Borro los permisos existentes de todo el arbol $sql = "DELETE FROM apex_usuario_grupo_acc_item WHERE usuario_grupo_acc = '{$grupo}' AND\n\t\t\t\t\t\t\tproyecto = '{$this->proyecto}';\n"; toba_contexto_info::get_db()->ejecutar($sql); }
static function get_pms($proyecto = null) { if (!isset($proyecto)) { $proyecto = toba_contexto_info::get_proyecto(); } $proyecto = toba_contexto_info::get_db()->quote($proyecto); $sql = "SELECT * FROM apex_puntos_montaje WHERE proyecto={$proyecto}"; return toba_contexto_info::get_db()->consultar($sql); }
/** * Retorna los proyectos incluidos en la instancia que tienen cierto estilo */ function get_proyectos_con_estilo($estilo) { $estilo = toba_contexto_info::get_db()->quote($estilo); $sql = "SELECT proyecto FROM apex_proyecto WHERE estilo= {$estilo}"; return toba_contexto_info::get_db()->consultar($sql); }
function asignar_componente($id_componente) { $id = toba_contexto_info::get_db()->quote($this->id); $proyecto = toba_contexto_info::get_db()->quote($this->proyecto); $componente = toba_contexto_info::get_db()->quote($id_componente['componente']); $sql = "SELECT COALESCE(MAX(orden),0) as maximo\n\t\t\t\t\tFROM apex_item_objeto \n\t\t\t\t\tWHERE item={$id} AND proyecto= {$proyecto}"; $res = toba_contexto_info::get_db()->consultar($sql); $orden = toba_contexto_info::get_db()->quote($res[0]['maximo']); $sql = "INSERT INTO apex_item_objeto\n\t\t\t\t\t(proyecto, item, objeto, orden) VALUES (\n\t\t\t\t\t\t{$proyecto},\n\t\t\t\t\t\t{$id},\n\t\t\t\t\t\t{$componente},\n\t\t\t\t\t\t{$orden}\n\t\t\t\t\t)"; toba_contexto_info::get_db()->ejecutar($sql); }
static function set_proyecto($proyecto) { self::$proyecto = $proyecto; }
function set_subclase($nombre, $archivo, $pm) { $db = toba_contexto_info::get_db(); $nombre = $db->quote($nombre); $archivo = $db->quote($archivo); $pm = $db->quote($pm); $id = $db->quote($this->id); $sql = "\n\t\t\tUPDATE apex_objeto\n\t\t\tSET \n\t\t\t\tsubclase = {$nombre},\n\t\t\t\tsubclase_archivo = {$archivo},\n\t\t\t\tpunto_montaje = {$pm}\n\t\t\tWHERE\n\t\t\t\t\tproyecto = '{$this->proyecto}'\n\t\t\t\tAND\tobjeto = {$id}\n\t\t"; toba::logger()->debug($sql); $db->ejecutar($sql); }
/** * Consulta antes los objetos porque tiene que formar la 'explicacion' * de porque se filtran estos registros. Con un subselect esto no sería posible */ protected function formar_filtro_dao($busca) { $daos_efs = array(); $daos_efs['clase'] = "el NOMBRE de la CLASE"; $daos_efs['dao'] = "el NOMBRE del METODO"; $daos_efs['include'] = "el INCLUDE de la CLASE"; $daos_efs['agrupador_dao'] = "el NOMBRE del METODO AGRUPADOR"; $daos_efs['agrupador_clase'] = "el NOMBRE de la CLASE AGRUPADORA"; $daos_efs['agrupador_include'] = "el INCLUDE de la CLASE AGRUPADORA"; $sql_efs = ""; foreach (array_keys($daos_efs) as $clave) { $cond = toba_contexto_info::get_db()->quote("%{$clave}:%{$busca}%;"); $sql_efs .= "ef.inicializacion ILIKE {$cond} OR "; } $busca_sano = toba_contexto_info::get_db()->quote("%{$busca}%"); $proyecto = toba_contexto_info::get_db()->quote($this->proyecto); $sql = "\n\t\t\tSELECT \n\t\t\t\to.objeto,\n\t\t\t\tef.inicializacion,\n\t\t\t\tef.identificador,\n\t\t\t\tc.dao_metodo,\n\t\t\t\tc.dao_nucleo\n\t\t\tFROM apex_objeto o\n\t\t\t\tLEFT OUTER JOIN apex_objeto_cuadro c ON \n\t\t\t\t\t(c.objeto_cuadro = o.objeto \n\t\t\t\t\tAND c.objeto_cuadro_proyecto = o.proyecto)\n\t\t\t\tLEFT OUTER JOIN apex_objeto_ei_formulario_ef ef ON\n\t\t\t\t\t(ef.objeto_ei_formulario = o.objeto\n\t\t\t\t\tAND ef.objeto_ei_formulario_proyecto = o.proyecto)\n\t\t\tWHERE\n\t\t\t\to.proyecto = {$proyecto}\n\t\t\t\tAND (\n\t\t\t\t\t{$sql_efs}\n\t\t\t\t\tc.dao_nucleo ILIKE {$busca_sano} OR c.dao_metodo ILIKE {$busca_sano}\n\t\t\t\t\t)\n\t\t"; $rs = toba_contexto_info::get_db()->consultar($sql); if (!empty($rs)) { $sql = "AND\t\to.objeto IN ("; foreach ($rs as $obj) { $this->explicaciones[$obj['objeto']][] = $this->formar_explicacion_dao($busca, $obj, $daos_efs); $sql .= $obj['objeto'] . ", "; } $sql = substr($sql, 0, -2); $sql .= ")"; return $sql; } }
/** * Recorre el arbol de dependencias hasta llegar a objetos que no estan contenidos en otros */ protected function buscar_raices_de_objeto($id_objeto) { $id_sano = toba_contexto_info::get_db()->quote($id_objeto); $proyecto = toba_contexto_info::get_db()->quote($this->proyecto); $sql_obj = "SELECT objeto_consumidor FROM apex_objeto_dependencias WHERE\n\t\t\t\t\tobjeto_proveedor = {$id_sano} AND proyecto = {$proyecto}"; $rs = toba_contexto_info::get_db()->consultar($sql_obj); if (empty($rs)) { if (!in_array($id_objeto, $this->raices_de_objeto)) { $this->raices_de_objeto[] = $id_objeto; } } else { foreach ($rs as $padre) { $this->buscar_raices_de_objeto($padre['objeto_consumidor']); } } }
static function get_restricciones_proyecto($proyecto) { $proyecto = toba_contexto_info::get_db()->quote($proyecto); $sql = "SELECT \tproyecto,\n\t\t\t\t\t\trestriccion_funcional,\n\t\t\t\t\t\tdescripcion,\n\t\t\t\t\t\t((SELECT COUNT(*) FROM apex_restriccion_funcional_ef\t\tWHERE restriccion_funcional = rf.restriccion_funcional) +\n\t\t\t\t\t\t(SELECT COUNT(*) FROM apex_restriccion_funcional_pantalla\tWHERE restriccion_funcional = rf.restriccion_funcional) +\n\t\t\t\t\t\t(SELECT COUNT(*) FROM apex_restriccion_funcional_evt\t\tWHERE restriccion_funcional = rf.restriccion_funcional) +\n\t\t\t\t\t\t(SELECT COUNT(*) FROM apex_restriccion_funcional_ei\t\t \tWHERE restriccion_funcional = rf.restriccion_funcional) +\n\t\t\t\t\t\t(SELECT COUNT(*) FROM apex_restriccion_funcional_filtro_cols WHERE restriccion_funcional = rf.restriccion_funcional) +\n\t\t\t\t\t\t(SELECT COUNT(*) FROM apex_restriccion_funcional_cols\t \tWHERE restriccion_funcional = rf.restriccion_funcional)) as cant_resticciones\n\t\t\t\t\t\t\n\t\t\t\tFROM \tapex_restriccion_funcional as rf\n\t\t\t\tWHERE \tproyecto = {$proyecto}\n\t\t\t\tORDER BY descripcion\n\t\t"; return toba_contexto_info::get_db()->consultar($sql); }
function evt__arbol_relaciones__cargar_nodo($id) { $this->dependencia('arbol_relaciones')->set_frame_destino(apex_frame_centro); $proyecto = toba_contexto_info::get_proyecto(); $catalogo = new toba_catalogo_objetos($proyecto); $opciones['id'] = $id; $obj = $catalogo->get_objetos($opciones, true); return $obj; }
function get_columnas_dt($tabla) { $resultado = array(); try { //Obtengo el id del datos_tabla para la tabla X $componente = toba_admin_fuentes::instancia()->get_fuente($this->_fuente)->get_id_datos_tabla($tabla); $db = toba_contexto_info::get_db(); //Obtengo la base del contexto para usar la instancia de toba toba_datos_tabla_def::set_db($db); //Busco la definicion de columnas del datos_tabla en cuestion $proyecto = toba_contexto_info::get_proyecto(); $dt_info = toba_datos_tabla_def::get_vista_extendida($proyecto, $componente); $rs = $db->consultar($dt_info['_info_columnas']['sql']); //Convierto el arreglo devuelto a un formato indexado por nombre de columna for ($a = 0; $a < count($rs); $a++) { $resultado[$rs[$a]['columna']] =& $rs[$a]; } } catch (toba_error $e) { toba::logger()->error(" Búsqueda DT '{$tabla}': " . $e->getMessage()); } return $resultado; }
function ajax__existe_metodo_dt($dt, toba_ajax_respuesta $respuesta) { $subclase = toba_info_editores::get_subclase_componente($dt); if (isset($subclase) && !empty($subclase)) { $archivo = toba::instancia()->get_path_proyecto(toba_contexto_info::get_proyecto()) . '/php/' . $subclase['subclase_archivo']; $php = new toba_archivo_php($archivo); if ($php->existe() && $php->contiene_metodo('get_descripciones')) { $sql = $this->get_sql_carga_tabla($dt); $respuesta->set($sql); } else { $respuesta->set(false); } } else { $respuesta->set(false); } }
/** * Elimina opcionalmente un conjunto de componentes pertencientes a la operación * * @param boolean $borrar_item Debe borrar el item una vez borradas sus dependencias * @param array $opciones Arreglo 'id_componente' => array('eliminar'=>true/false, 'eliminar_archivo'=>true/false) * @param boolean $con_transaccion Debe enmarcar la eliminación en una transaccion */ function eliminar($borrar_item, $opciones, $con_transaccion = true) { $item = toba::zona()->get_info(); $db = toba_contexto_info::get_db(); $arbol_componentes = array_slice($this->arbol, 1); //--- Se eliminan metadatos if ($con_transaccion) { $db->abrir_transaccion(); } foreach ($arbol_componentes as $comp) { $opcion = $opciones[$comp['componente']]; if ($opcion['eliminar']) { //--- Elimina metadatos $id_dr = toba_info_editores::get_dr_de_clase($comp['tipo']); $componente = array('proyecto' => $id_dr[0], 'componente' => $id_dr[1]); $dr = toba_constructor::get_runtime($componente, 'toba_datos_relacion', false); $dr->inicializar(); $dr->persistidor()->desactivar_transaccion(); $dr->resetear(); $dr->cargar(array('proyecto' => $this->id_proyecto, 'objeto' => $comp['componente'])); $dr->eliminar_todo(); } } //--Borro el item if ($borrar_item) { $id_dr = toba_info_editores::get_dr_de_clase('toba_item'); $componente = array('proyecto' => $id_dr[0], 'componente' => $id_dr[1]); $dr = toba_constructor::get_runtime($componente, 'toba_datos_relacion', false); $dr->inicializar(); $dr->persistidor()->desactivar_transaccion(); $dr->resetear(); $dr->cargar(array('proyecto' => $this->id_proyecto, 'item' => $this->id_item)); $dr->eliminar_todo(); } if ($con_transaccion) { $db->cerrar_transaccion(); } //--- Se eliminan subclases foreach ($arbol_componentes as $comp) { $opcion = $opciones[$comp['componente']]; if ($opcion['eliminar'] && $opcion['eliminar_archivo']) { $archivo = $this->get_path_archivo($comp); unlink($archivo); } } }
function parsear_editores(toba_modelo_instancia $instancia) { toba_contexto_info::set_db($instancia->get_db()); //--- Se busca el CI asociado a cada clase $sql = "SELECT\n\t\t\t\t\tc.clase,\n\t\t\t\t \to.proyecto,\n\t\t\t\t\to.objeto\n\t\t\t\tFROM\n\t\t\t\t\tapex_clase c,\n\t\t\t\t\tapex_item_objeto io,\n\t\t\t\t\tapex_objeto o\n\t\t\t\tWHERE\n\t\t\t\t\tc.clase IN ('" . implode("','", toba_info_editores::get_lista_tipo_componentes()) . "')\tAND\n\t\t\t\t\tc.proyecto = 'toba' AND\n\t\t\t\t\tc.editor_item = io.item AND\t\t\t\t-- Se busca el item editor\n\t\t\t\t\tc.editor_proyecto = io.proyecto AND\n\t\t\t\t\tio.objeto = o.objeto AND\t\t\t\t-- Se busca el CI del item\n\t\t\t\t\tio.proyecto = o.proyecto AND\n\t\t\t\t\to.clase = 'toba_ci'"; $rs = $instancia->get_db()->consultar($sql); $clase_php = new toba_clase_datos("toba_datos_editores"); foreach ($rs as $datos) { //--- Se buscan las pantallas asociadas a un CI especifico $this->manejador_interface->mensaje("Procesando " . $datos['clase'] . "..."); $proyecto = $instancia->get_db()->quote($datos['proyecto']); $objeto = $instancia->get_db()->quote($datos['objeto']); $sql = "\n\t\t\t\tSELECT\n\t\t\t\t\tpant.identificador,\n\t\t\t\t\tpant.etiqueta,\n\t\t\t\t\tpant.imagen,\n\t\t\t\t\tpant.imagen_recurso_origen\n\t\t\t\tFROM\n\t\t\t\t\tapex_objeto_ci_pantalla pant\n\t\t\t\tWHERE\n\t\t\t\t\t\tpant.objeto_ci_proyecto = {$proyecto}\n\t\t\t\t\tAND pant.objeto_ci = {$objeto}\n\t\t\t\tORDER BY pant.orden\n\t\t\t"; $pantallas = $instancia->get_db()->consultar($sql); $clase_php->agregar_metodo_datos('get_pantallas_' . $datos['clase'], $pantallas); } $dir = toba_dir() . "/php/modelo/info"; $clase_php->guardar($dir . '/toba_datos_editores.php'); }