Exemplo n.º 1
0
 function __construct($definicion)
 {
     //--- Compatibilidad con el metodo anterior de mantener cosas en sesion
     $this->definir_propiedades_sesion();
     // Compatibilidad hacia atras en el ID
     $this->_id[0] = $definicion['_info']['proyecto'];
     $this->_id[1] = $definicion['_info']['objeto'];
     //Cargo las variables internas que forman la definicion
     foreach (array_keys($definicion) as $parte) {
         $this->_definicion_partes[] = $parte;
         $this->{$parte} = $definicion[$parte];
     }
     $this->_solicitud = toba::solicitud();
     $this->_log = toba::logger();
     //Recibi datos por el CANAL?
     $this->_canal = apex_hilo_qs_canal_obj . $this->_id[1];
     $this->_canal_recibidos = toba::memoria()->get_parametro($this->_canal);
     $this->_id_ses_g = "obj_" . $this->_id[1];
     $this->_id_ses_grec = "obj_" . $this->_id[1] . "_rec";
     if (!self::$_modo_memoria_compatible) {
         $this->_id_ses_g .= $definicion['_const_instancia_numero'];
         $this->_id_ses_grec .= $definicion['_const_instancia_numero'];
     }
     $this->set_controlador($this);
     //Hasta que nadie lo explicite, yo me controlo solo
     //Manejo transparente de memoria
     $this->cargar_memoria();
     //RECUPERO Memoria sincronizada
     $this->cargar_info_dependencias();
     //$this->_log->debug("CONSTRUCCION: {$this->_info['clase']}({$this->_id[1]}): {$this->get_nombre()}", 'toba');
 }
Exemplo n.º 2
0
 function evt__eliminar()
 {
     $this->dependencia('datos')->eliminar_todo();
     toba::solicitud()->zona()->resetear();
     $this->s__carga_ok = false;
     admin_util::refrescar_barra_lateral();
 }
Exemplo n.º 3
0
 function ini()
 {
     $editable = toba::solicitud()->zona()->get_editable();
     if ($editable && !$this->dependencia('datos')->esta_cargada()) {
         list($proyecto, $grupo) = $editable;
         $this->dependencia('datos')->cargar(array('usuario_grupo_acc' => $grupo, 'proyecto' => $proyecto));
     }
 }
Exemplo n.º 4
0
 function evt__eliminar()
 {
     $this->get_entidad()->eliminar();
     $this->elemento_eliminado = true;
     $zona = toba::solicitud()->zona();
     $zona->resetear();
     toba::notificacion()->agregar('El elemento ha sido eliminado.', 'info');
     admin_util::refrescar_editor_item();
 }
Exemplo n.º 5
0
 function es_autovinculo()
 {
     //No se mira la carpeta porque es un dato cosmetico (esta de mas en realidad)
     $hay_item = isset($this->datos['accion_vinculo_item']) && !is_null($this->datos['accion_vinculo_item']);
     if ($hay_item) {
         $es_autovinculo = toba::solicitud()->get_id_operacion() == $this->datos['accion_vinculo_item'];
     } else {
         $es_autovinculo = isset($this->datos['es_autovinculo']) && $this->datos['es_autovinculo'] == '1';
     }
     return $es_autovinculo;
 }
Exemplo n.º 6
0
 function ini()
 {
     $zona = toba::solicitud()->zona();
     if ($editable = $zona->get_editable()) {
         $componente['proyecto'] = $editable[0];
         $componente['componente'] = $editable[1];
     } else {
         throw new toba_error('Este item se utiliza desde la zona de objetos');
     }
     toba_editor::iniciar_contexto_proyecto_cargado();
     $this->agregar_dependencia('componente', $componente['proyecto'], $componente['componente']);
 }
Exemplo n.º 7
0
 function barra_superior()
 {
     echo "<div id='barra-superior' class='barra-superior barra-superior-tit barra-popup'>\n";
     $info = toba::solicitud()->get_datos_item();
     echo "<div class='item-barra'>";
     if (trim($info['item_descripcion']) != '') {
         $desc = toba_parser_ayuda::parsear(trim($info['item_descripcion']));
         $ayuda = toba_recurso::ayuda(null, $desc, 'item-barra-ayuda', 0);
         echo "<div {$ayuda}>";
         echo toba_recurso::imagen_toba("ayuda_grande.gif", true);
         echo "</div>";
     }
     echo "<div class='item-barra-tit'>" . $this->titulo_item() . "</div>";
     echo "</div>\n\n";
 }
Exemplo n.º 8
0
 function titulo_item()
 {
     if (!isset($this->titulo)) {
         $info['basica'] = toba::solicitud()->get_datos_item();
         $item = new toba_item_info($info);
         $item->cargar_rama();
         //Se recorre la rama
         $camino = $item->get_nombre();
         while ($item->get_padre() != null) {
             $item = $item->get_padre();
             if (!$item->es_raiz()) {
                 $camino = '<span style="font-weight:normal;">' . $item->get_nombre() . ' > </span>' . $camino;
             }
         }
         $this->titulo = $camino;
     }
     return $this->titulo;
 }
Exemplo n.º 9
0
 function generar_html_barra_vinculos()
 {
     $salida = " ";
     $id_actual = toba::solicitud()->get_datos_item('item');
     $i = 1;
     $anterior = null;
     $siguiente = null;
     foreach ($this->items_vecinos as $item) {
         $es_el_ultimo = count($this->items_vecinos) == $i;
         $es_el_actual = false;
         if ($item['item'] == $id_actual) {
             $es_el_actual = true;
         }
         if ($es_el_actual) {
             $vinculo = null;
         } else {
             $vinculo = toba::vinculador()->get_url($item['item_proyecto'], $item['item'], array(), array('zona' => true, 'validar' => false));
         }
         if (isset($vinculo)) {
             $salida .= "<a href='{$vinculo}'>";
             $salida .= $item['nombre'];
             $salida .= "</a>";
         } else {
             $salida .= "<strong>" . $item['nombre'] . "</strong>";
         }
         if (!$es_el_ultimo) {
             $salida .= " | ";
         }
         $i++;
         if ($i % 5 == 0) {
             $salida = substr($salida, 0, -2);
             $salida .= "<br>";
         }
     }
     echo $salida;
 }
Exemplo n.º 10
0
function ei_arbol($arbol, $identificador = "DUMPEO de VALORES", $ancho = "50%", $colapsado = false)
{
    //Me estan llamando por consola??
    if (toba::solicitud() != null && toba::solicitud()->get_tipo() == 'consola') {
        //echo "<pre>";
        print_r($arbol);
        //echo "</pre>";
        return;
    }
    //Javascript de colapsado de niveles (esto no es bello, pero funciona)
    static $js = 0;
    // Para que entre una sola vez
    if ($js == 0) {
        echo "<script language='javascript'>function ei_arbol_colapsar_nivel(id, img){\n\t\t\t\t\tnodo = document.getElementById(id);\n\t\t\t\t\tif(nodo.style.display == 'none'){\n\t\t\t\t\t\t//Abrir\n\t\t\t\t\t\tnodo.style.display = '';\n\t\t\t\t\t\timg.src = '" . toba_recurso::imagen_toba('nucleo/contraer.gif', false) . "';\n\t\t\t\t\t}else{\n\t\t\t\t\t\t//Cerrar\n\t\t\t\t\t\tnodo.style.display = 'none';\n\t\t\t\t\t\timg.src = '" . toba_recurso::imagen_toba('nucleo/expandir.gif', false) . "';\n\t\t\t\t\t}\n\t\t\t\t}</script>";
    }
    $js++;
    //Es un array?
    if (is_array($arbol)) {
        echo "<div  align='center'><br>";
        echo "<table class='tabla-0' width='{$ancho}'>";
        echo "<tr><td class='arbol-titulo'><b>{$identificador}</b></td></tr>\n";
        echo "<tr><td class='arbol-valor-array'>\n";
        ei_arbol_nivel($arbol, $colapsado);
        echo "</td></tr>\n";
        echo "</table>\n";
        echo "</div><br>";
    } elseif (is_object($arbol)) {
        echo ei_mensaje("CLASE&nbsp;<b>" . get_class($arbol) . "</b>", null, $identificador);
    } else {
        echo ei_mensaje($arbol, null, $identificador);
    }
}
Exemplo n.º 11
0
 function agregar_opcion($datos)
 {
     if (!isset($datos['carpeta'])) {
         $datos['carpeta'] = false;
     }
     if (!isset($datos['es_primer_nivel'])) {
         $datos['es_primer_nivel'] = false;
     }
     if (!isset($datos['padre'])) {
         $datos['es_primer_nivel'] = true;
         $datos['padre'] = null;
     }
     if (!isset($datos['proyecto'])) {
         $datos['proyecto'] = toba::proyecto()->get_id();
     }
     if (!isset($datos['item'])) {
         $datos['item'] = toba::solicitud()->get_datos_item('item');
     }
     $this->items[] = $datos;
 }
Exemplo n.º 12
0
 /**
  * Retorna el querystring propagando la zona actual (si es que hay y está cargada)
  * @return string
  */
 function get_qs_zona()
 {
     $qs = '';
     $solicitud_actual = toba::solicitud();
     if ($solicitud_actual->hay_zona() && toba::zona()->cargada()) {
         if (toba::zona()->get_modo_url()) {
             $editable = $this->variable_a_url(toba::zona()->get_editable());
             $qs .= '&' . apex_hilo_qs_zona . "=" . $editable;
         } else {
             $qs .= '&' . apex_hilo_qs_zona . '=1';
             toba::zona()->propagar_id();
         }
     }
     return $qs;
 }
Exemplo n.º 13
0
 /**
  * Rutea WSF hacia la extensión
  */
 function __call($nombre, $argumentos)
 {
     $srv_name = $this->_solicitud->get_id_operacion();
     if (!self::esta_activo($srv_name)) {
         toba::logger_ws()->debug('Se intento acceder a un servicio web inactivo: ' . $srv_name);
         toba::logger_ws()->set_checkpoint();
         throw new WSFault('Receiver', ' El servicio no esta activo');
     }
     //trac/toba/wiki/Referencia/ServiciosWeb/Seguridad
     if (!isset(self::$opciones['securityToken']) && self::servicio_con_firma()) {
         if (toba::instalacion()->es_produccion()) {
             throw new toba_error_seguridad("El servicio web esta configurado para requerir firma, sin embargo no se esta encriptando/firmando la conexion");
         } else {
             throw new toba_error_servicio_web("El servicio web esta configurado para requerir firma, sin embargo no se <a target='_blank' href='http://repositorio.siu.edu.ar/trac/toba/wiki/Referencia/ServiciosWeb/Seguridad#configuracion'>configuro correctamente</a> el servicio importando los certificados de los clientes.");
         }
     }
     //Elimina el guion bajo inicial y llama al metodo op__X
     toba::logger_ws()->debug("Metodo invocado: {$nombre}");
     toba::logger_ws()->debug('Argumentos recibidos');
     toba::logger_ws()->var_dump($argumentos);
     toba::logger_ws()->set_checkpoint();
     if (substr($nombre, 0, 1) != '_') {
         throw new BadMethodCallException('Call to undefined method ' . __CLASS__ . '::' . $nombre);
     }
     $metodo = substr($nombre, 1);
     toba::solicitud()->set_metodo_invocado($metodo);
     $this->mensaje_entrada = new toba_servicio_web_mensaje($argumentos[0]);
     try {
         if ($this->servicio_con_firma()) {
             $this->validar_certificado_cliente();
         }
         $mensaje_salida = $this->{$metodo}($this->mensaje_entrada);
         if (isset($mensaje_salida)) {
             $mensaje = $mensaje_salida->wsf();
             return $mensaje;
         } else {
             toba::logger_ws()->debug("Respuesta de retorno vacía");
             toba::logger_ws()->set_checkpoint();
             return;
         }
     } catch (toba_error_servicio_web $e) {
         toba::logger_ws()->error("Excepción lanzada: " . $e->get_mensaje() . ". Más detalles: " . $e->get_mensaje_log());
         toba::logger_ws()->set_checkpoint();
         toba::logger()->error("Excepción lanzada: " . $e->get_mensaje() . ". Más detalles: " . $e->get_mensaje_log());
         toba::solicitud()->registrar();
         throw new WSFault("Sender", utf8_e_seguro($e->get_mensaje()), null, $e->get_codigo());
     }
 }
Exemplo n.º 14
0
 protected function titulo_pagina()
 {
     $item = toba::solicitud()->get_datos_item('item_nombre');
     return toba::proyecto()->get_parametro('descripcion_corta') . ' - ' . $item;
 }
Exemplo n.º 15
0
 function ini()
 {
     toba::solicitud()->set_autocomplete(false);
     //Evita que el browser quiera guardar la clave de usuario
 }
Exemplo n.º 16
0
 protected function get_nombre_archivo()
 {
     if (!isset($this->nombre_archivo)) {
         $id_sol = toba::solicitud()->get_id();
         $ip = isset($_SERVER["REMOTE_ADDR"]) ? $_SERVER["REMOTE_ADDR"] : 'sin_ip';
         $this->nombre_archivo = 'web_services_' . $ip . "_{$id_sol}.log";
     }
     return $this->nombre_archivo;
 }
Exemplo n.º 17
0
 function ini()
 {
     //Cambio el nombre del item en Runtime, para esto chequee 'Retrasar Headers' en el editor del item.
     $datos = array('item_nombre' => 'Este item antes se llamaba ABM de Juegos, pero yo lo cambie en runtime!');
     toba::solicitud()->set_datos_item($datos);
 }
Exemplo n.º 18
0
 /**
  * Incluye los consumos globales básicos para utilizar el framework
  */
 static function cargar_consumos_basicos()
 {
     if (!self::$basicos_cargados) {
         self::$consumos_basicos[] = 'basicos/jquery-1.9.1.min';
         if (toba::proyecto()->get_parametro('es_css3')) {
             self::$consumos_basicos[] = 'formalize/javascripts/jquery.formalize.min';
         }
         $imagenes = array('error' => toba_recurso::imagen_toba('error.gif', false), 'info' => toba_recurso::imagen_toba('info_chico.gif', false), 'warning' => toba_recurso::imagen_toba('warning.gif', false), 'maximizar' => toba_recurso::imagen_toba('nucleo/sentido_des_sel.gif', false), 'minimizar' => toba_recurso::imagen_toba('nucleo/sentido_asc_sel.gif', false), 'expandir' => toba_recurso::imagen_skin('expandir_vert.gif', false), 'contraer' => toba_recurso::imagen_skin('contraer_vert.gif', false), 'expandir_nodo' => toba_recurso::imagen_toba('nucleo/expandir.gif', false), 'contraer_nodo' => toba_recurso::imagen_toba('nucleo/contraer.gif', false), 'esperar' => toba_recurso::imagen_toba('wait.gif', false), 'cerrar' => toba_recurso::imagen_toba('nucleo/cerrar_ventana.gif', false));
         echo toba_js::abrir();
         echo "var toba_alias='" . toba_recurso::url_toba() . "';\n";
         echo "var toba_proyecto_alias='" . toba_recurso::url_proyecto() . "';\n";
         if (toba_editor::activado()) {
             echo 'var toba_proyecto_editado_alias = "' . toba_editor::get_url_previsualizacion() . "\";\n";
         }
         echo "var toba_prefijo_vinculo = \"" . toba::vinculador()->get_url() . "\";\n";
         echo "var toba_hilo_qs='" . apex_hilo_qs_item . "'\n";
         echo "var toba_hilo_separador='" . apex_qs_separador . "'\n";
         echo "var toba_hilo_separador_interno='" . apex_qs_sep_interno . "'\n";
         echo "var toba_hilo_qs_servicio='" . apex_hilo_qs_servicio . "'\n";
         echo "var toba_hilo_qs_menu='" . apex_hilo_qs_menu . "'\n";
         echo "var apex_hilo_qs_celda_memoria='" . apex_hilo_qs_celda_memoria . "'\n";
         echo "var toba_hilo_qs_objetos_destino='" . apex_hilo_qs_objetos_destino . "'\n";
         echo "var lista_imagenes=" . toba_js::arreglo($imagenes, true) . ";";
         echo "var apex_solicitud_tipo='" . toba::solicitud()->get_tipo() . "'\n";
         $espera = toba::proyecto()->get_parametro('tiempo_espera_ms');
         if (!isset($espera)) {
             $espera = 0;
             //No hay espera
         }
         echo "var toba_espera={$espera};\n";
         //-------------- Incluyo funcionalidad para la respuesta del popup  ---------------
         $ef_popup = toba::memoria()->get_parametro('ef_popup');
         if (is_null($ef_popup)) {
             $ef_popup = toba::memoria()->get_dato_sincronizado('ef_popup');
         }
         if (!is_null($ef_popup)) {
             toba::memoria()->set_dato_sincronizado('ef_popup', $ef_popup);
             echo "\n\t\t\t\tfunction seleccionar(clave, descripcion) {\n\t\t\t\t\twindow.opener.popup_callback('" . $ef_popup . "', clave, descripcion);\n\t\t\t\t\twindow.close();\n\t\t\t\t}\n\t\t\t\tfunction respuesta_ef_popup(parametros) {\n\t\t\t\t\tvar seleccion = parametros.split('||');\n\t\t\t\t\tseleccionar(seleccion[0], seleccion[1]);\n\t\t\t\t}\n\n\t\t\t\tfunction iniciar_respuesta_popup(objeto, parametros)\n\t\t\t\t{\t\t\t\t\t\n\t\t\t\t\tvar posicion = objeto.id.ultima_ocurrencia('_');\n\t\t\t\t\tvar nombre = objeto.id.substr(0, posicion) + '_descripcion';\n\t\t\t\t\tvar descripcion = \$\$(nombre).value;\n\t\t\t\t\tseleccionar(parametros, descripcion);\n\t\t\t\t}";
         }
         //-----------------------------------------------------------------------------------------------------
         echo toba_js::cerrar();
         //Incluyo el javascript STANDART
         self::cargar_consumos_globales(self::$consumos_basicos);
         if (toba::instalacion()->arreglo_png_ie()) {
             ///---Arreglo PNGs IE
             $url = toba_recurso::js("utilidades/pngbehavior.htc");
             echo "<!--[if lt IE 7]>\n\t\t\t\t\t<style type='text/css'>\n\t\t\t\t\t\timg {\n\t\t\t\t\t\t\tbehavior: url('{$url}');\n\t\t\t\t\t\t}\n\t\t\t\t\t</style>\n\t\t\t\t\t<![endif]-->\n";
         }
         $url = toba_recurso::js('basicos/html5shiv.js');
         echo "\t<!--[if lt IE 9]>\n\t\t\t\t\t\t<script src='{$url}'></script>\n\t\t\t\t\t<![endif]-->\n";
         self::$basicos_cargados = true;
     }
 }
Exemplo n.º 19
0
 protected function armar_encabezado()
 {
     $salto = "\r\n";
     $texto = self::separador . $salto;
     $texto .= "Fecha: " . date("d-m-Y H:i:s") . $salto;
     if (class_exists('toba') && is_object(toba::solicitud())) {
         $texto .= "Operacion: " . toba::solicitud()->get_datos_item('item_nombre') . $salto;
     }
     $usuario = self::get_usuario_actual();
     if (isset($usuario)) {
         $texto .= "Usuario: " . $usuario . $salto;
     }
     $texto .= "Version-PHP: " . phpversion() . $salto;
     if (isset($_SERVER['SERVER_NAME'])) {
         $texto .= "Servidor: " . $_SERVER['SERVER_NAME'] . $salto;
     }
     if (isset($_SERVER['REQUEST_URI'])) {
         $texto .= "URI: " . $_SERVER['REQUEST_URI'] . $salto;
     }
     if (isset($_SERVER["HTTP_REFERER"])) {
         $texto .= "Referrer: " . $_SERVER["HTTP_REFERER"] . $salto;
     }
     if (isset($_SERVER["REMOTE_ADDR"])) {
         $texto .= "Host: " . $_SERVER["REMOTE_ADDR"] . $salto;
     }
     if (php_sapi_name() === 'cli') {
         global $argv;
         $texto .= 'Ruta: ' . getcwd() . $salto;
         $texto .= 'Argumentos: ' . implode(' ', $argv) . $salto;
     }
     return $texto;
 }
Exemplo n.º 20
0
 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>";
     }
 }
Exemplo n.º 21
0
 /**
  * Retorna el titulo de la opreacion actual, utilizado en la barra superior
  */
 protected function titulo_item()
 {
     return toba::solicitud()->get_datos_item('item_nombre');
 }
Exemplo n.º 22
0
 function evt__cancelar()
 {
     $this->dependencia('datos')->resetear();
     unset($this->usuario_actual);
     toba::solicitud()->zona()->resetear();
 }
Exemplo n.º 23
0
 /**
  * Retorna el mensaje de ayuda de la operación actual
  */
 function get_operacion_actual()
 {
     $info = toba::solicitud()->get_datos_item();
     if (isset($this->mensajes['operaciones'][$info['item']])) {
         $mensaje = $this->mensajes['operaciones'][$info['item']];
         return $mensaje;
     }
     if (trim($info['item_descripcion']) != '') {
         return $info['item_descripcion'];
     }
 }
Exemplo n.º 24
0
 /**
  *  Agrega una estampilla con el id de solicitud a las consultas
  * @param string $sql
  * @return string
  * @ignore
  */
 protected function pegar_estampilla_log($sql)
 {
     if (method_exists(new toba(), 'solicitud')) {
         $sol = toba::solicitud();
         if (!is_null($sol)) {
             $id = $sol->get_id();
             $sql .= " -- toba_log: {$id} ";
             //El espacio es para que sea compatible con Mysql
         }
     }
     return $sql;
 }
Exemplo n.º 25
0
 /**
  * Retorna el html y js localizado de un componente y sus dependencias.
  * Pensado como respuesta a una solicitud AJAX
  */
 protected function servicio__html_parcial($objetos)
 {
     echo "[--toba--]";
     //-- Se reenvia el encabezado
     $this->tipo_pagina()->barra_superior();
     echo "</div>";
     //--- Parte superior de la zona
     if (toba::solicitud()->hay_zona() && toba::zona()->cargada()) {
         toba::zona()->generar_html_barra_superior();
     }
     //--- Se incluyen botones en la botonera de la operacion
     $this->generar_html_botonera_sup($objetos);
     echo "[--toba--]";
     $ok = true;
     try {
         //--- Se envia el HTML
         foreach ($objetos as $objeto) {
             $objeto->generar_html();
         }
     } catch (toba_error $e) {
         $ok = false;
         toba::logger()->error($e, 'toba');
         $mensaje = $e->get_mensaje();
         $mensaje_debug = null;
         if (toba::logger()->modo_debug()) {
             $mensaje_debug = $e->get_mensaje_log();
         }
         toba::notificacion()->error($mensaje, $mensaje_debug);
     }
     echo "[--toba--]";
     //-- Se envia info de debug
     if (toba_editor::modo_prueba()) {
         $item = toba::solicitud()->get_datos_item('item');
         $accion = toba::solicitud()->get_datos_item('item_act_accion_script');
         toba_editor::generar_zona_vinculos_item($item, $accion, false);
     }
     echo "[--toba--]";
     //--- Se envian los consumos js
     $consumos = array();
     foreach ($objetos as $objeto) {
         $consumos = array_merge($consumos, $objeto->get_consumo_javascript());
     }
     echo "toba.incluir(" . toba_js::arreglo($consumos, false) . ");\n";
     echo "[--toba--]";
     //--- Se envia el javascript
     //Se actualiza el vinculo del form
     $autovinculo = toba::vinculador()->get_url();
     echo "document.formulario_toba.action='{$autovinculo}'\n";
     toba::vinculador()->generar_js();
     toba_js::cargar_definiciones_runtime();
     if ($ok) {
         try {
             foreach ($objetos as $objeto) {
                 //$objeto->servicio__html_parcial();
                 $objeto_js = $objeto->generar_js();
                 echo "\nwindow.{$objeto_js}.iniciar();\n";
             }
         } catch (toba_error $e) {
             toba::logger()->error($e, 'toba');
             $mensaje_debug = null;
             if (toba::logger()->modo_debug()) {
                 $mensaje_debug = $e->get_mensaje_log();
             }
             toba::notificacion()->error($e->get_mensaje(), $mensaje_debug);
         }
     }
     toba::notificacion()->mostrar(false);
     toba::acciones_js()->generar_js();
     $this->generar_analizador_estadistico();
 }