function conf__nucleo(toba_ei_formulario $form) { $parametros_edicion = array(); $datos = $this->dependencia('datos')->get(); if (isset($datos['item_set_sesion'])) { $datos['carpeta_set_sesion'] = toba_info_editores::get_carpeta_de_item($datos['item_set_sesion'], $datos['proyecto']); } //Cargo los datos basicos para el vinculo $parametros_edicion['proyecto_extension'] = $datos['proyecto']; $parametros_edicion['id_extension'] = $datos['proyecto']; // Coloco los iconos para el contexto de ejecucion $parametros_edicion['elemento_tipo'] = 'contexto_ejecucion'; $parametros_edicion[apex_hilo_qs_menu] = '1'; $iconos = admin_util::get_ef_popup_utileria_extension_php($parametros_edicion); if (isset($datos['contexto_ejecucion_subclase_archivo']) && admin_util::existe_archivo_subclase($datos['contexto_ejecucion_subclase_archivo'])) { array_push($iconos, current(admin_util::get_ef_popup_utileria_abrir_php())); } $form->ef('ce_subclase_archivo')->set_iconos_utilerias($iconos); //Coloco los iconos para el campo sesion $parametros_edicion['elemento_tipo'] = 'sesion'; $iconos = admin_util::get_ef_popup_utileria_extension_php($parametros_edicion); if (isset($datos['sesion_subclase_archivo']) && admin_util::existe_archivo_subclase($datos['sesion_subclase_archivo'])) { array_push($iconos, current(admin_util::get_ef_popup_utileria_abrir_php())); } $form->ef('sesion_subclase_archivo')->set_iconos_utilerias($iconos); //Coloco los iconos para el campo usuario $parametros_edicion['elemento_tipo'] = 'usuario'; $iconos = admin_util::get_ef_popup_utileria_extension_php($parametros_edicion); if (isset($datos['usuario_subclase_archivo']) && admin_util::existe_archivo_subclase($datos['usuario_subclase_archivo'])) { array_push($iconos, current(admin_util::get_ef_popup_utileria_abrir_php())); } $form->ef('usuario_subclase_archivo')->set_iconos_utilerias($iconos); $form->ef('salida_impr_html_a')->set_iconos_utilerias(admin_util::get_ef_popup_utileria_php()); $form->set_datos($datos); }
function extender_objeto_js() { //--- Se insertan los css de cada estilo para hacer la visualización $estilos = rs_convertir_asociativo(toba_info_editores::get_lista_estilos_columnas(), array('columna_estilo'), 'css'); echo 'var editor_col_css=' . toba_js::arreglo($estilos, true); echo "\n\t\t\t{$this->objeto_js}.evt__usar_vinculo__procesar = function(inicial) \n\t\t\t{\n\t\t\t\tvar se_muestra = (this.ef('usar_vinculo').valor() == '1');\n\t\t\t\tthis.ef('evento_asociado').mostrar(se_muestra, true);\n\t\t\t\tthis.ef('vinculo_indice').mostrar(se_muestra, true);\n\t\t\t}\n\t\t\t\t\t\n\t\t\t{$this->objeto_js}.es_estilo_manual = function()\n\t\t\t{\n\t\t\t\tvar estado = this.ef('estilo_precarga').get_estado();\t\t\t\t\t\n\t\t\t\treturn (estado == apex_ef_no_seteado);\n\t\t\t}\n\n\t\t\t{$this->objeto_js}.evt__estilo_precarga__procesar = function(inicial) \n\t\t\t{\t\t\t\t\t\n\t\t\t\tif (this.es_estilo_manual()) {\n\t\t\t\t\tthis.ef('estilo_editable').mostrar(true);\n\t\t\t\t} else {\n\t\t\t\t\tthis.ef('estilo_editable').mostrar(false, true);\t\t//Reseteo el valor del editable cuando lo oculto\n\t\t\t\t\tvar estado = this.ef('estilo_precarga').get_estado();\n\t\t\t\t\tvar input = this.ef('prueba_estilo').input();\t\t\t\t\t\t\t//Modifico el preview\n\t\t\t\t\tinput.className = editor_col_css[estado] + ' columna-preview';\t\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t{$this->objeto_js}.evt__estilo_editable__procesar = function(inicial)\n\t\t\t{\t\t\t\n\t\t\t\tif (this.es_estilo_manual()) {\n\t\t\t\t\tvar estilo = this.ef('estilo_editable').get_estado();\n\t\t\t\t\tvar input = this.ef('prueba_estilo').input();\n\t\t\t\t\tinput.className = estilo + ' columna-preview';\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\n\t\t"; }
/** * Genera la documentacion de los servicios web provistos por el proyecto (requiere tener publicado el proyecto en localhost) * -r 0|1 reemplaza la documentacion existente */ function opcion__serv_generar_doc() { if (!extension_loaded('wsf')) { throw new toba_error('La extensión wsf no se encuentra cargada, verifique la instalación.'); } $param = $this->get_parametros(); $forzar_reemplazo = isset($param["-r"]) ? $param["-r"] == 1 : false; $proyecto = $this->get_proyecto(); $servicios = toba_info_editores::get_items_servicios_web(); $carpeta_doc = $proyecto->get_dir() . "/doc/servicios_web"; if (!file_exists($carpeta_doc)) { mkdir($carpeta_doc, 0777, true); } $this->consola->mensaje("Generando documentacion..."); $index_page = "<html><head>\n\t\t<link href='wsdl-viewer.css' rel='stylesheet' type='text/css' media='screen'/>\n\t\t</head>\n\t\t<body>\n\t\t<div id='header'>\n\t\t<h1>{$proyecto->get_id()}</h1><h2>Documentación Servicios Web</h2>\n\t\t</div>\n\t\t<div id='inner_box'><div class='page'>\n\t\t<ul>"; foreach ($servicios as $serv_datos) { $servicio = toba_modelo_catalogo::get_servicio_web($proyecto, $serv_datos['item'], $this->consola); $file = $servicio->generar_documentacion($carpeta_doc, $forzar_reemplazo); $index_page .= "<li><a href='{$file}'>{$serv_datos['item']}</a></li>"; unset($servicio); } $index_page .= "</ul></div></div></body></html>"; file_put_contents($carpeta_doc . "/index.html", $index_page); $this->consola->mensaje("Listo. Navegar hacia file://" . $carpeta_doc . "/index.html"); }
function get_db($proyecto = null) { if (!isset($proyecto)) { $proyecto = $this->s__filtro['proyecto']; } $id = toba_info_editores::get_fuente_datos_defecto($proyecto); $fuente_datos = toba_admin_fuentes::instancia()->get_fuente($id, $proyecto); return $fuente_datos->get_db(); }
function ini() { $this->datos->tabla('base')->set_fila_columna_valor(0, 'padre_proyecto', $this->proyecto); $this->set_tipo_solicitud('web'); $this->set_tipo_pagina('titulo'); $tipo_pagina = toba_info_editores::get_tipo_pagina_defecto($this->proyecto); $this->set_tipo_pagina($tipo_pagina['pagina_tipo'], $tipo_pagina['proyecto']); $this->set_acceso_menu(); }
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); }
function cargar($opciones, $id_item_inicial = null, $incluidos_forzados = array()) { if (!isset($id_item_inicial)) { $id_item_inicial = toba_info_editores::get_item_raiz($this->proyecto); } $en_profundidad = $this->debe_cargar_en_profundidad($id_item_inicial, $opciones); $filtro_items = ""; if (!$this->debe_cargar_todo($opciones) || $en_profundidad) { //--- Se dejan solo los items del primer nivel, excepto que este en las excepciones if (isset($id_item_inicial)) { $id_item_sano = toba_contexto_info::get_db()->quote($id_item_inicial); $filtro_padre = "(i.padre = {$id_item_sano} OR i.item= {$id_item_sano})"; //OR i.padre IN (SELECT item FROM apex_item WHERE padre='$id_item_inicial'))"; } if (!empty($incluidos_forzados) && !$en_profundidad) { $forzados = implode("', '", $incluidos_forzados); $filtro_incluidos = "( i.padre IN ('" . $forzados . "')"; $filtro_incluidos .= " OR i.item IN ('" . $forzados . "') )"; } if (isset($filtro_padre) && isset($filtro_incluidos)) { $filtro_items = "\tAND ({$filtro_padre} \n\t\t\t\t\t\t\t\t\t\tOR \n\t\t\t\t\t\t\t\t\t{$filtro_incluidos})\n\t\t\t\t\t"; } elseif (isset($filtro_padre)) { $filtro_items = "\tAND {$filtro_padre} "; } elseif (isset($filtro_incluidos)) { $filtro_items = "\tAND {$filtro_incluidos} "; } } if (isset($opciones['solo_carpetas']) && $opciones['solo_carpetas'] == 1) { $filtro_items .= "\tAND i.carpeta = 1"; } //-- Se utiliza como sql básica aquella que brinda la definición de un componente toba_item_def::set_db(toba_contexto_info::get_db()); $sql_base = toba_item_def::get_vista_extendida($this->proyecto); $sql = sql_concatenar_where($sql_base['basica']['sql'], array(" (i.solicitud_tipo IS NULL OR i.solicitud_tipo <> 'fantasma')" . $filtro_items)); $sql = sql_agregar_ordenamiento($sql, array(array('i.carpeta', 'asc'), array('i.orden', 'asc'), array('i.nombre', 'asc'))); $rs = toba_contexto_info::get_db()->consultar($sql); $this->items = array(); if (!empty($rs)) { foreach ($rs as $fila) { $id = array(); $id['componente'] = $fila['item']; $id['proyecto'] = $fila['item_proyecto']; $datos = array('basica' => $fila); if ($en_profundidad) { $info = toba_constructor::get_info($id, 'toba_item', true, null, true, true); } else { $info = toba_constructor::get_info($id, 'toba_item', false, $datos); } $this->items[$fila['item']] = $info; } $this->carpeta_inicial = $id_item_inicial; $this->mensaje = ""; $this->ordenar(); $this->filtrar($opciones); } }
function get_info_tipos_componente() { $datos = toba_info_editores::get_info_tipos_componente(); /*foreach (array_keys($datos) as $id) { if ($datos[$id]['clase_tipo'] == 9) { //unset($datos[$id]); } }*/ return $datos; }
function conf__form_basico(toba_ei_formulario $form) { $datos = $this->dep('datos')->tabla('base')->get(); $datos_molde = $this->dep('datos')->tabla('molde')->get(); if (!isset($datos_molde['fuente'])) { $datos['fuente'] = toba_info_editores::get_fuente_datos_defecto(toba_editor::get_proyecto_cargado()); } else { $datos['fuente'] = $datos_molde['fuente']; } return $datos; }
function conf__form_clase($componente) { if ($this->dep('datos')->esta_cargada()) { $componente->ef('clase')->set_solo_lectura(); } $datos = $this->dep('datos')->tabla('clase')->get(); if (isset($datos['editor_item'])) { $datos['editor_item_carpeta'] = toba_info_editores::get_carpeta_de_item($datos['editor_item'], $datos['editor_proyecto']); } $componente->set_datos($datos); }
function get_lista_objetos_toba() { $datos = toba_info_editores::get_lista_objetos_toba(',toba_cn'); // Elimino de la lista el objeto actual $objeto_editado = $this->get_entidad()->tabla('base')->get_columna('objeto'); foreach (array_keys($datos) as $id) { if ($datos[$id]['objeto'] == $objeto_editado) { unset($datos[$id]); } } return $datos; }
function __construct($asistente) { $this->id = $this->asistente->get_id_elemento(); $this->proyecto = $this->asistente->get_proyecto(); //Busco el datos relacion correspondientes al componente $id = toba_info_editores::get_dr_de_clase($this->clase); $componente = array('proyecto' => $id[0], 'componente' => $id[1]); $this->datos = toba_constructor::get_runtime($componente); $this->datos->inicializar(); $datos = array('nombre' => $this->clase . ' generado automaticamente', 'proyecto' => $this->proyecto); $this->ini(); }
static function get_objetos_destino($clase = null) { if (isset($clase)) { switch ($clase) { case 'toba_item': return toba_info_editores::get_lista_items(); break; default: $tipo = 'componente,' . $clase; return toba_info_editores::get_lista_objetos_toba($tipo); } } }
function conf__pant_dimensiones($pantalla) { $this->datos_dimension = toba_info_editores::get_datos_dimension($this->s__proyecto, $this->s__dimension); //Saco los botones del CI de afuera $pantalla_externa = $this->controlador->pantalla(); $pantalla_externa->eliminar_evento('guardar'); $pantalla_externa->eliminar_evento('cancelar'); $pantalla_externa->eliminar_evento('eliminar'); $perfil = $this->datos()->tabla('perfil')->get(); $txt = "Perfil de datos: <strong>{$perfil['nombre']}</strong>.<br>"; $txt .= "Dimensión: <strong>{$this->datos_dimension['nombre']}</strong>.<br>"; $txt .= 'Seleccione los elementos que desea habilitar para el perfil.'; $this->pantalla()->set_descripcion($txt); }
function evt__form_tipo_operacion__modificacion($datos) { $this->s__formulario_tipo = $datos; $this->s__datos_asistente = toba_info_editores::get_lista_tipo_molde($this->s__formulario_tipo['tipo']); $this->cargar_editor_molde(true); //-- Si no hay zona, hay que crear el item y cargarla if (!toba::zona()->cargada()) { $id_item = $this->asistente()->crear_item($this->s__formulario_tipo['nombre'], $datos['carpeta']); if (isset($id_item)) { toba::zona()->cargar(array($id_item['proyecto'], $id_item['clave'])); admin_util::refrescar_editor_item(); } } }
static function mostrar_servicios() { $id_proyecto = toba::proyecto()->get_id(); echo "<h2>{$id_proyecto} - servicios web publicados</h2>"; $items = toba_info_editores::get_items_servicios_web($id_proyecto); echo "<ul>"; foreach ($items as $item) { $url_servicio = toba::vinculador()->get_url_ws($id_proyecto, $item['item']); $url_wsdl1 = toba::vinculador()->get_url_ws($id_proyecto, $item['item'], null, array('wsdl' => true)); $url_wsdl2 = toba::vinculador()->get_url_ws($id_proyecto, $item['item'], null, array('wsdl2' => true)); echo "<li><a href='{$url_servicio}'>{$item['item']}</a>: {$item['nombre']}. \n\t\t\t\t\t<a href='{$url_wsdl1}'>wsdl 1.1</a> - <a href='{$url_wsdl2}'>wsdl 2.0</a></li>"; } echo "</ul>"; }
/** * Declara la extension del archivo, despues de su invocacion se puede usar * el metodo php() para acceder al molde de la clase */ function extender($subclase, $archivo) { if (!isset($this->molde_php)) { $this->subclase = $subclase; $this->archivo = $archivo; $extensiones = toba_info_editores::get_clases_extendidas_proyecto($this->proyecto); $nombre_clase = get_nombre_clase_extendida($this->clase, $this->proyecto, $extensiones); $this->molde_php = new toba_codigo_clase($this->subclase, $nombre_clase); //Dejo la marca if (file_exists($this->archivo_absoluto())) { /*$txt = "Reemplazar archivo: " . $this->archivo_relativo(); $ayuda = "Si no desea reemplazar el archivo, modifique el molde especificando otra carpeta de destino u otro prefijo para la generacion de clases."; $this->asistente->agregar_opcion_generacion( $this->get_id_opcion_archivo(), $txt, $ayuda );*/ } } }
function cargar($opciones, $id_item_inicial = null, $incluidos_forzados = array()) { $nodos = array(); $items = $this->get_lista_items(); foreach ($items as $item) { if ($item['carpeta']) { $obj = new toba_rf_carpeta($this->restriccion, $item['proyecto'], $item['item'], $item['padre']); } else { $obj = new toba_rf_item($this->restriccion, $item['proyecto'], $item['item'], $item['padre'], $this->expande_dependencias_sueltas); } $this->items[$item['item']] = $obj; } $this->carpeta_inicial = 'item_' . toba_info_editores::get_item_raiz($this->proyecto); $this->mensaje = ""; $this->ordenar(); //filtrar??? }
function generar_layout() { $tipos_rs = toba_info_editores::get_lista_tipo_molde(); $tipos = array(); foreach ($tipos_rs as $tipo) { $tipos[$tipo['operacion_tipo']] = array('descripcion' => $tipo['descripcion'], 'vista_previa' => toba_recurso::imagen_proyecto($tipo['vista_previa'], false)); } echo toba_js::abrir(); echo 'var tipos_operacion = ' . toba_js::arreglo($tipos, true, true) . "\n"; echo toba_js::cerrar(); $this->dep('form_tipo_operacion')->generar_html(); //$this->generar_botones(); //$this->generar_boton('siguiente_editar'); echo "<div style='background-color: #808080;padding-bottom: 15px;margin-top: 5px; color: white; text-align:center; font-size:12px; font-weight: bold;'><hr>"; echo "<div id='operacion_descripcion'></div>"; echo "<div id='operacion_vista_previa' style='display:none; padding-top:10px;'></div>"; echo '</div>'; }
function __construct($asistente) { $this->asistente = $asistente; $this->asistente->registrar_molde($this); $this->id = $this->asistente->get_id_elemento(); $this->proyecto = $this->asistente->get_proyecto(); //Busco el datos relacion correspondientes al componente $id = toba_info_editores::get_dr_de_clase($this->clase); $componente = array('proyecto' => $id[0], 'componente' => $id[1]); $this->datos = toba_constructor::get_runtime($componente); $this->datos->inicializar(); $datos = array('nombre' => $this->clase . ' generado automaticamente', 'proyecto' => $this->proyecto); if ($this->asistente->tiene_fuente_definida()) { $datos['fuente_datos_proyecto'] = $this->proyecto; $datos['fuente_datos'] = $this->asistente->get_fuente(); } $this->datos->tabla('base')->set($datos); $this->ini(); }
function actualizar_script_roles($eliminados = array()) { $usa_permisos_por_tabla = false; foreach (toba_info_editores::get_fuentes_datos($this->dep('editor_perfiles')->get_proyecto()) as $fuente) { //Miro si al menos una fuente usa permisos por tablas. $usa_permisos_por_tabla = $usa_permisos_por_tabla || $fuente['permisos_por_tabla'] == '1'; } if ($usa_permisos_por_tabla) { $modelo = toba_modelo_catalogo::instanciacion(); $modelo->set_db(toba::db()); $proyecto = $modelo->get_proyecto(toba::instancia()->get_id(), $this->s__filtro['proyecto']); $dir = $proyecto->get_dir() . '/'; try { $proyecto->crear_script_generacion_roles_db($dir, $eliminados); toba::notificacion()->agregar('Se han generado los scripts de actualización de roles de base de datos.\\n Los mismos se encuentran en el directorio raiz del proyecto, recuerde ejecutarlos', 'info'); } catch (toba_error $e) { toba::logger()->debug('Falló la generacion del script' . $e->getMessage()); toba::notificacion()->agregar('No se ha podido generar los scripts de actualización de roles de base de datos, por favor utilice el comando toba proyecto roles_script', 'error'); } } }
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(); } }
/** * 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); } } }
static function generar_zona_vinculos_item($item, $accion, $enviar_div_wrapper = true) { if (!self::acceso_recursivo()) { toba::solicitud()->set_cronometrar(true); } toba_js::cargar_consumos_globales(array('utilidades/toba_editor')); $html_ayuda_editor = toba_recurso::ayuda(null, 'Presionando la tecla CTRL se pueden ver los enlaces hacia los editores de los distintos componentes de esta página'); $html_ayuda_cronometro = toba_recurso::ayuda(null, 'Ver los tiempos de ejecución en la generación de esta página'); $html_ayuda_ajax = toba_recurso::ayuda(null, 'Activar/Desactivar navegación interna de la operación via AJAX'); $html_ayuda_editor = toba_recurso::ayuda(null, 'Volver al editor de toba'); $solicitud = toba::solicitud()->get_id(); $link_cronometro = toba::vinculador()->get_url('toba_editor', '1000263', null, array('prefijo' => toba_editor::get_punto_acceso_editor())); $link_analizador_sql = toba::vinculador()->get_url('toba_editor', '30000030', null, array('prefijo' => toba_editor::get_punto_acceso_editor())); $link_logger = toba::vinculador()->get_url('toba_editor', '1000003', null, array('prefijo' => toba_editor::get_punto_acceso_editor())); $link_archivos = toba::vinculador()->get_url('toba_editor', '30000029', null, array('prefijo' => toba_editor::get_punto_acceso_editor())); $estilo = toba::proyecto()->get_parametro('estilo'); if ($enviar_div_wrapper) { echo "<div id='editor_previsualizacion'>"; /*echo "<div id='editor_previsualizacion_colap'><img style='cursor:pointer;_cursor:hand;' title='Ocultar la barra' src='".toba_recurso::imagen_toba('nucleo/expandir_izq.gif', false)."' onclick='toggle_nodo(\$\$(\"editor_previsualizacion_cont\"))'/></div>";*/ } echo "<span id='editor_previsualizacion_cont'>"; echo "<span id='editor_previsualizacion_vis'>"; //Logger list($log_nivel, $log_cant) = toba::logger()->get_mensajes_minimo_nivel(); $niveles = toba::logger()->get_niveles(); $niveles[0] = 'INFO'; $img = self::imagen_editor('logger/' . strtolower($niveles[$log_nivel]) . '.gif', true); $html_ayuda_logger = toba_recurso::ayuda(null, 'Visor de logs'); echo "<a href='{$link_logger}' target='logger' {$html_ayuda_logger} >" . $img . " {$log_cant}</a>\n"; //Cronometro toba::cronometro()->marcar('Resumen toba_editor'); echo "<a href='{$link_cronometro}' target='logger' {$html_ayuda_cronometro} >\n" . toba_recurso::imagen_toba('clock.png', true) . ' ' . round(toba::cronometro()->tiempo_acumulado(), 2) . ' seg' . "</a> "; //Memoria if (function_exists('memory_get_peak_usage')) { $memoria_pico = memory_get_peak_usage(); echo toba_recurso::imagen_toba('memory.png', true, 16, 16, 'Pico máximo de memoria que ha consumido el script actual'); echo ' ' . file_size($memoria_pico, 0) . ' '; } //Base de datos $fuente = toba_admin_fuentes::instancia()->get_fuente_predeterminada(false, toba_editor::get_proyecto_cargado()); if ($fuente) { try { $base = toba_admin_fuentes::instancia()->get_fuente($fuente, toba_editor::get_proyecto_cargado())->get_db(); $info_db = $base->get_info_debug(); $total = 0; foreach ($info_db as $info) { if (isset($info['fin'])) { $total += $info['fin'] - $info['inicio']; } } $rol = toba::db()->get_rol_actual(); toba::memoria()->set_dato_instancia('previsualizacion_consultas', array('fuente' => $fuente, 'datos' => $info_db)); echo "<a href='{$link_analizador_sql}' target='logger'>" . toba_recurso::imagen_toba('objetos/datos_relacion.gif', true, 16, 16, 'Ver detalles de las consultas y comandos ejecutados en este pedido de página') . count($info_db) . " ({$rol})</a>"; } catch (toba_error $e) { //Si no se tiene acceso a la base no se hace nada } } //Archivos $archivos = self::get_archivos_incluidos(); $total = 0; foreach ($archivos as $arch) { $total += filesize($arch); } toba::memoria()->set_dato_instancia('previsualizacion_archivos', $archivos); echo "<a href='{$link_archivos}' target='logger'>" . toba_recurso::imagen_toba('nucleo/php.gif', true, 16, 16, 'Ver detalle de archivos .php del proyecto incluidos en este pedido de página') . ' ' . count($archivos) . " arch. (" . file_size($total, 0) . ')</a>'; //Session $tamano = file_size(strlen(serialize($_SESSION)), 0); echo toba_recurso::imagen_toba('sesion.png', true, 16, 16, 'Tamaño de la sesión') . " {$tamano} "; echo "</span>"; //-- ACCIONES echo "<span id='editor_previsualizacion_acc'>"; $perfiles = array(apex_ef_no_seteado => '-- Todos --'); foreach (toba::manejador_sesiones()->get_perfiles_funcionales() as $perfil) { $perfiles[$perfil] = $perfil; } $actuales = toba::manejador_sesiones()->get_perfiles_funcionales_activos(); $actual = null; if (count($actuales) == 1) { $actual = current($actuales); } $js = "title='Cambia el perfil actual del usuario' onchange=\"location.href = toba_prefijo_vinculo + '&perfil_activo=' + this.value\""; echo "Perfiles: " . toba_form::select('cambiar_perfiles', $actual, $perfiles, 'ef-combo', $js); //Usuario de la base $hay_limitado = false; if (!isset(self::$fuentes)) { self::$fuentes = toba_info_editores::get_fuentes_datos(toba_editor::get_proyecto_cargado()); } foreach (self::$fuentes as $fuente) { if ($fuente['permisos_por_tabla']) { $hay_limitado = true; } } if ($hay_limitado) { $actual = self::$memoria['conexion_limitada'] ? 'limitado' : 'normal'; $datos = array("normal" => "Normal", "limitado" => "Limitados"); $js = "title='Cambia temporalmente el usuario de conexión a la base' onchange=\"location.href = toba_prefijo_vinculo + '&usuario_conexion=' + this.value\""; echo "Permisos DB: " . toba_form::select('cambiar_rol', $actual, $datos, 'ef-combo', $js); } //Skin $skins = rs_convertir_asociativo(toba_info_editores::get_lista_skins(), array('estilo', 'proyecto'), 'descripcion'); $js = "title='Cambia temporalmente el skin de la aplicación' onchange=\"location.href = toba_prefijo_vinculo + '&skin=' + this.value\""; $defecto = toba::proyecto()->get_parametro('estilo') . apex_qs_separador . toba::proyecto()->get_parametro('estilo_proyecto'); echo "Skin: " . toba_form::select('cambiar_skin', $defecto, $skins, 'ef-combo', $js); //AJAX echo "<a id='editor_ajax' href='javascript: editor_cambiar_ajax()' {$html_ayuda_ajax}>" . toba_recurso::imagen_toba('objetos/ajax_off.png', true) . "</a>\n"; //Edicion echo "<a href='javascript: editor_cambiar_vinculos()' {$html_ayuda_editor} >" . toba_recurso::imagen_toba('edicion_chico.png', true) . "</a>\n"; //Arbol $vinculos = self::get_vinculos_item($item, $accion); if (isset($vinculos[1])) { self::mostrar_vinculo($vinculos[1]); } //Editor echo "<a href='#' onclick='return toba_invocar_editor()' {$html_ayuda_editor}>" . toba_recurso::imagen_toba('icono_16.png', true) . "</a>\n"; echo "</span>"; echo "</span>"; echo "<div class='div-editor' style='position:fixed; top: 85px; left: 1px;'>"; foreach (self::get_vinculos_item($item, $accion) as $vinculo) { self::mostrar_vinculo($vinculo); } echo "</div>"; if ($enviar_div_wrapper) { echo "</div>"; } }
function conf__columnas() { $this->s__seleccion_columna_anterior = $this->s__seleccion_columna; $datos = $this->get_entidad()->tabla('columnas')->get_fila($this->s__seleccion_columna_anterior); if (isset($datos['estilo'])) { $datos['estilo_precarga'] = apex_ef_no_seteado; $en_base = toba_info_editores::get_lista_estilos_columnas(); //Busco la inversa del texto para setear el combo si existe foreach ($en_base as $estilo) { if ($estilo['css'] == $datos['estilo']) { $datos['estilo_precarga'] = $estilo['columna_estilo']; } } } //Aqui comienza el engendro malefico $posibles = $this->get_eventos_vinculo_cargados(); if (is_array($posibles)) { foreach ($posibles as $evento) { //Si encuentro match con el evento if (isset($evento['evento_id']) && isset($datos['evento_asociado']) && $datos['evento_asociado'] == $evento['evento_id']) { $datos['evento_asociado'] = $evento['identificador']; //Uso el nombre del evento } } } return $datos; }
function cargar_editor() { if (!isset($this->datos_editor)) { $this->datos_editor = toba_info_editores::get_ci_editor_clase($this->clase_actual['proyecto'], $this->clase_actual['clase']); } $this->agregar_dependencia('editor', $this->datos_editor['proyecto'], $this->datos_editor['objeto']); }
protected function get_sql_carga_tabla($dt) { $datos = toba_info_editores::get_tabla_fuente_de_dt($dt); if (!empty($datos)) { $db = toba::db($datos['fuente_datos'], toba_editor::get_proyecto_cargado()); $sql = $db->get_sql_carga_descripciones($datos['tabla']); return $sql; } }
function conf__prop_basicas(toba_ei_formulario $form) { $datos = $this->get_entidad()->tabla('base')->get(); if (!isset($datos['carpeta']) || $datos['carpeta'] != 1) { if (!$this->get_entidad()->esta_cargada()) { $form->ef('item')->set_iconos_utilerias(array(new utileria_identificador_nuevo())); } else { $form->ef('item')->set_iconos_utilerias(array(new utileria_identificador_actual())); } } //Transfiere los campos accion, buffer y patron a uno comportamiento if (isset($datos['actividad_accion']) && $datos['actividad_accion'] != '') { $datos['comportamiento'] = 'accion'; } if (isset($datos['actividad_buffer']) && $datos['actividad_buffer'] != 0) { $datos['comportamiento'] = 'buffer'; } if (isset($datos['actividad_patron']) && $datos['actividad_patron'] != 'especifico') { $datos['comportamiento'] = 'patron'; } if (!isset($datos['pagina_tipo'])) { $pagina = toba_info_editores::get_tipo_pagina_defecto(); $datos['pagina_tipo'] = $pagina['pagina_tipo']; $datos['pagina_tipo_proyecto'] = $pagina['proyecto']; } if ($form->existe_ef('accion')) { $form->ef('accion')->set_iconos_utilerias(admin_util::get_ef_popup_utileria_php()); } $form->set_datos($datos); }
/** * Lista de tablas que pueden usarse como gatillos * No puede utilizarse dos veces la misma tabla como gatillo, por eso las utilizadas se excluyen */ function get_tablas_gatillos() { $temp = $this->dependencia('datos')->tabla('dimension')->get(); $datos = toba_info_editores::get_schemas_fuente(toba_editor::get_proyecto_cargado(), $temp['fuente_datos']); $schemas = !empty($datos) ? aplanar_matriz($datos, 'schema') : null; $tablas = toba::db($temp['fuente_datos'], toba_editor::get_proyecto_cargado())->get_lista_tablas(true, $schemas); return $tablas; }