function conf() { if ($this->controlador()->dep('datos')->esta_cargada()) { $usuario = $this->datos('basica')->get(); $this->s__usuario = $usuario['usuario']; $desc = 'Usuario: <strong>' . texto_plano($usuario['nombre']) . '</strong>'; $this->pantalla()->set_descripcion($desc); $this->dep('basica')->ef('usuario')->set_solo_lectura(true); $this->dep('basica')->ef('usuario_arai')->set_solo_lectura(true); $this->dep('basica')->ef('cuenta')->set_solo_lectura(true); } else { $this->controlador->pantalla()->eliminar_evento('eliminar'); } // Elimina la dependencia form_pregunta_secreta cuando esta vinculado a arai-usuarios if (toba::instalacion()->vincula_arai_usuarios() && $this->pantalla('usuario')->existe_dependencia('form_pregunta_secreta')) { $this->pantalla('usuario')->eliminar_dep('form_pregunta_secreta'); } }
function get_input() { $tab = $this->padre->get_tab_index(); $extra = " tabindex='{$tab}'"; $estado = $this->get_estado_input(); //--- Se puede cargar con el nombre del archivo o el arreglo que php brinda //--- al hacer el upload if (is_array($estado)) { $nombre_archivo = isset($estado['name']) ? $estado['name'] : current($estado); } else { $nombre_archivo = $estado; } //-- Si hay un archivo lo deja marcado en sesion para la etapa siguiente if (isset($nombre_archivo) && trim($nombre_archivo) != '') { if (!$this->permitir_html) { $nombre_archivo = texto_plano($nombre_archivo); } toba::memoria()->set_dato_sincronizado($this->id_form . "_cargado", true); } $salida = ""; if (!$this->es_solo_lectura()) { if (isset($nombre_archivo) && $nombre_archivo != '') { $salida .= toba_form::archivo($this->id_form, null, $this->clase_css, "style='display:none'"); $salida .= "<div id='{$this->id_form}_desicion' class='ef-upload-desc'>" . $nombre_archivo . "</div>"; $salida .= toba_form::checkbox("{$this->id_form}_check", null, 1, 'ef-checkbox', "{$extra} onclick=\"{$this->objeto_js()}.set_editable()\""); $salida .= "<label for='{$this->id_form}_check'>Cambiar el Archivo</label>"; } else { $salida = toba_form::archivo($this->id_form, null, $this->clase_css, $extra); $salida .= toba_form::checkbox("{$this->id_form}_check", 1, 1, 'ef-checkbox', "style='display:none'"); } } else { // En modo sólo lectura if (isset($nombre_archivo) && $nombre_archivo != '') { $salida = "<div class='ef-upload-desc'>" . $nombre_archivo . "</div>"; } else { $salida = toba_form::archivo($this->id_form, null, $this->clase_css, "disabled='disabled'"); } } $salida .= $this->get_html_iconos_utilerias(); return $salida; }
function generar_layout_fila($columnas, $datos, $id_fila, $clave_fila, $evt_multiples, $objeto_js, $estilo_fila, $formateo) { $estilo_seleccion = $this->get_estilo_seleccion($clave_fila); //Javascript de seleccion multiple $js = $this->get_invocacion_js_eventos_multiples($evt_multiples, $id_fila, $objeto_js); //---> Creo las CELDAS de una FILA <---- echo "<tr class='{$estilo_fila}' >\n"; //---> Creo los EVENTOS de la FILA previos a las columnas<--- $this->html_cuadro_celda_evento($id_fila, $clave_fila, true); foreach (array_keys($columnas) as $a) { //*** 1) Recupero el VALOR $valor = ""; if (isset($columnas[$a]["clave"])) { if (isset($datos[$id_fila][$columnas[$a]["clave"]])) { $valor_real = $datos[$id_fila][$columnas[$a]["clave"]]; //-- Hace el saneamiento para evitar inyección XSS if (!isset($columnas[$a]['permitir_html']) || $columnas[$a]['permitir_html'] == 0) { $valor_real = texto_plano($valor_real); } } else { $valor_real = null; //ATENCION!! hay una columna que no esta disponible! } //Hay que formatear? if (isset($columnas[$a]["formateo"])) { $funcion = "formato_" . $columnas[$a]["formateo"]; //Formateo el valor $valor = $formateo->{$funcion}($valor_real); } else { $valor = $valor_real; } } //*** 2) La celda posee un vinculo?? if ($columnas[$a]['usar_vinculo']) { $valor = $this->get_html_cuadro_celda_vinculo($columnas, $a, $id_fila, $clave_fila, $valor); } //*** 3) Genero el HTML $ancho = ""; if (isset($columnas[$a]["ancho"])) { $ancho = " width='" . $columnas[$a]["ancho"] . "'"; } //Emito el valor de la celda echo "<td class='{$estilo_seleccion} " . $columnas[$a]["estilo"] . "' {$ancho} {$js}>\n"; if (trim($valor) !== '') { echo $valor; } else { echo ' '; } echo "</td>\n"; //Termino la CELDA } //---> Creo los EVENTOS de la FILA <--- $this->html_cuadro_celda_evento($id_fila, $clave_fila, false); echo "</tr>\n"; }
static function password($nombre, $valor = "", $maximo = '', $tamanio = '', $clase = "ef-input", $extra = '') { $valor = texto_plano($valor); $max_length = $maximo != '' ? "maxlength='{$maximo}'" : ''; $tamanio = $tamanio != '' ? "size='{$tamanio}'" : ''; return "<INPUT type='password' name='{$nombre}' {$tamanio} {$max_length} id='{$nombre}' value='{$valor}' class='{$clase}' {$extra} />\n"; }
function get_logs_archivo() { if (!file_exists($this->archivo)) { return array(); } $texto = trim(file_get_contents($this->archivo)); $logs = explode(toba_logger::separador, $texto); if (count($logs) > 0) { //Borra el primer elemento que siempre esta vacio array_splice($logs, 0, 1); } $logs_filtrados = array(); $klaves = array_keys($logs); foreach ($klaves as $id) { if (isset($this->filtros) && !empty($this->filtros)) { if ($this->cumple_criterio_filtro($logs[$id])) { $texto = $this->procesar_entidades_html ? texto_plano($logs[$id]) : $logs[$id]; $logs_filtrados[] = $texto; } } else { $texto = $this->procesar_entidades_html ? texto_plano($logs[$id]) : $logs[$id]; $logs[$id] = $texto; } } if (isset($this->filtros) && !empty($this->filtros)) { $logs = $logs_filtrados; } return $logs; }
function get_input() { $estado = isset($this->estado) ? $this->estado : null; if (!$this->permitir_html) { $estado = texto_plano($estado); } $html = "<div class='{$this->clase_css}' id='{$this->id_form}'>" . $estado . "</div>"; $html .= $this->get_html_iconos_utilerias(); return $html; }
protected function get_info_placeholder() { if (trim($this->placeholder) != '') { $ph = texto_plano($this->placeholder); return " placeholder='{$ph}' "; } return ''; }
/** * Formatea el nombre de un nodo para incluir en un listado * @param string $nombre Nombre del nodo * @param integer $limite Cantidad de caracteres a mostrar * @return string */ protected function acortar_nombre($nombre, $limite = null) { if (!isset($limite)) { $limite = $this->_ancho_nombres; } if (strlen($nombre) > $limite) { $nombre = substr($nombre, 0, $limite) . "..."; } return texto_plano($nombre); }
function get_input() { $estado = $this->get_estado_para_input(); $html = ''; if ($this->es_solo_lectura()) { $html .= toba_form::hidden($this->id_form, $estado); } $callback = "onchange=\"{$this->get_cuando_cambia_valor()}\""; //--- Se guarda el callback en el <div> asi puede ser recuperada en caso de que se borren las opciones $html .= "<div id='opciones_{$this->id_form}' {$callback}>\n"; $html .= "<table>\n"; if (!is_array($this->opciones)) { $datos = array(); } else { $datos = $this->opciones; } $i = 0; $tab_index = "tabindex='" . $this->padre->get_tab_index() . "'"; foreach ($datos as $clave => $valor) { if ($i % $this->cantidad_columnas == 0) { $html .= "<tr>\n"; } $id = $this->id_form . $i; $html .= "\t<td><label class='{$this->clase_css}' for='{$id}'>"; $es_actual = strval($estado) == strval($clave); if (!$this->es_solo_lectura()) { $sel = $es_actual ? "checked" : ""; if (!$this->permitir_html) { $clave = texto_plano($clave); } $html .= "<input type='radio' id='{$id}' name='{$this->id_form}' value='{$clave}' {$sel} {$callback} {$tab_index} />"; $tab_index = ''; } else { //--- Caso solo lectura $img = $es_actual ? 'efradio_on.gif' : 'efradio_off.gif'; $html .= toba_recurso::imagen_toba('nucleo/' . $img, true, 16, 16); } if (!$this->permitir_html) { $valor = texto_plano($valor); } $html .= "{$valor}</label></td>\n"; $i++; if ($i % $this->cantidad_columnas == 0) { $html .= "</tr>\n"; } } $sobran = $i % $this->cantidad_columnas; if ($sobran > 0) { $html .= str_repeat("\t<td></td>\n", $sobran); $html .= "</tr>\n"; } $html .= "</table>"; $html .= "</div>\n"; $html .= $this->get_html_iconos_utilerias(); return $html; }
private function __construct() { //toba::logger()->debug("TOBA MEMORIA: Inicializacion.", 'toba'); //dump_session(); $this->id = uniqid('st', true); $this->url_actual = texto_plano($_SERVER["PHP_SELF"]); //-[1]- Busco el ID de referencia de la instanciacion anterior del HILO // Este ID me permite ubicar la memoria correcta para el request ACTUAL if (isset($_GET[apex_hilo_qs_id])) { $this->hilo_referencia = $_GET[apex_hilo_qs_id]; } else { //Atencion, no hay hilo de referencia. CONTROLAR!! //Esto tiene sentido solo para la pagina de logon (?) para el resto //del sistema implica que las cosas funcionen mal! } //-[2]- Que ITEM se solicito? $this->item_solicitado = self::get_item_solicitado_original(); //-[3]- Recupero los parametros $this->parametros = array(); foreach (array_keys($_GET) as $clave) { $this->parametros[utf8_decode($clave)] = utf8_decode($_GET[$clave]); } // $this->parametros = $_GET; //FALTA hacer un URL decode!!! $encriptar_qs = toba::proyecto()->get_parametro('encriptar_qs'); if ($encriptar_qs) { if (isset($_GET[apex_hilo_qs_parametros])) { $encriptador = toba::encriptador(); parse_str($encriptador->descifrar($_GET[apex_hilo_qs_parametros]), $parametros); $this->parametros = array_merge($this->parametros, $parametros); unset($this->parametros[apex_hilo_qs_parametros]); unset($this->parametros["jmb76"]); //Clave agregada para complicar la encriptacion } } unset($this->parametros[apex_hilo_qs_id]); unset($this->parametros[apex_hilo_qs_item]); //------- MEMORIA -- Hago el bindeo con $_SESSION ---------------------------- // Determino el ID de la celda de memoria actual if (isset($this->parametros[apex_hilo_qs_celda_memoria])) { $this->celda_memoria_actual_id = $this->parametros[apex_hilo_qs_celda_memoria]; unset($this->parametros[apex_hilo_qs_celda_memoria]); } else { $this->celda_memoria_actual_id = apex_hilo_qs_celda_memoria_defecto; } // Apunto las referencias a session $this->memoria_celdas =& toba::manejador_sesiones()->segmento_memoria_proyecto(); // Celda ACTUAL if (!isset($this->memoria_celdas[$this->celda_memoria_actual_id])) { $this->memoria_celdas[$this->celda_memoria_actual_id] = array(); } $this->celda_memoria_actual =& $this->memoria_celdas[$this->celda_memoria_actual_id]; // Memoria GLOBAL if (!isset($this->memoria_celdas['__toba__global_proyecto'])) { $this->memoria_celdas['__toba__global_proyecto'] = array(); } $this->memoria_global =& $this->memoria_celdas['__toba__global_proyecto']; // Memoria de la INSTANCIA $this->memoria_instancia =& toba::manejador_sesiones()->segmento_datos_instancia(); //----------------------------------------------------------------------------- if (isset($this->parametros[apex_hilo_qs_servicio])) { $this->servicio = substr($this->parametros[apex_hilo_qs_servicio], 0, 60); unset($this->parametros[apex_hilo_qs_servicio]); } if (isset($this->parametros[apex_hilo_qs_objetos_destino])) { $objetos = $this->parametros[apex_hilo_qs_objetos_destino]; $lista_obj = explode(",", $objetos); $this->objetos_destino = array(); foreach ($lista_obj as $obj) { if (trim($obj) != '') { $this->objetos_destino[] = explode(apex_qs_separador, $obj); } } unset($this->parametros[apex_hilo_qs_servicio]); } //Guardo el FLAG que indica si se accedio por el menu if (isset($_GET[apex_hilo_qs_menu])) { $this->acceso_menu = true; } else { $this->acceso_menu = false; } $this->inicializar_memoria(); if (isset($this->celda_memoria_actual['hilo'])) { //Si la página requerida es una que ya se genero, se descartan los siguientes pedidos //Esto permite manejar el caso del refresh y el back, aunque se pierde la posibilidad de re-hacer con forward //ya que cada back que se ingresa genera un nuevo estado (porque se realiza una nueva ejecución) $claves = array_keys($this->celda_memoria_actual['hilo']); if (in_array($this->hilo_referencia, $claves) && $this->hilo_referencia != end($claves)) { //No provengo desde la ultima generacion (seria el caso normal) $encontrado = false; foreach ($claves as $clave) { if ($encontrado) { unset($this->celda_memoria_actual['hilo'][$clave]); //Borro aquellos que quedan en 'sandwich' } if ($clave == $this->hilo_referencia) { $encontrado = true; } } } } }
function get_log_comando_ejecucion() { if (isset($this->_log_comando)) { return texto_plano($this->_log_comando->get_info_log()); } }
function generar_layout_fila($columnas, $datos, $id_fila, $clave_fila, $evt_multiples, $objeto_js, $estilo_fila, $formateo) { $esta_seleccionada = $this->_cuadro->es_clave_fila_seleccionada($clave_fila); $estilo_seleccion = $esta_seleccionada ? "ei-cuadro-fila-sel" : "ei-cuadro-fila"; //---> Creo las CELDAS de una FILA <---- echo "<tr class='{$estilo_fila}' >\n"; foreach (array_keys($columnas) as $a) { //*** 1) Recupero el VALOR $valor = ""; if (isset($columnas[$a]["clave"])) { if (isset($datos[$id_fila][$columnas[$a]["clave"]])) { $valor_real = $datos[$id_fila][$columnas[$a]["clave"]]; //-- Hace el saneamiento para evitar inyección XSS if (!isset($columnas[$a]['permitir_html']) || $columnas[$a]['permitir_html'] == 0) { $valor_real = texto_plano($valor_real); } } else { $valor_real = null; //ATENCION!! hay una columna que no esta disponible! } //Hay que formatear? if (isset($columnas[$a]["formateo"])) { $funcion = "formato_" . $columnas[$a]["formateo"]; //Formateo el valor $valor = $formateo->{$funcion}($valor_real); } else { $valor = $valor_real; } } //*** 2) Genero el HTML $ancho = ""; if (isset($columnas[$a]["ancho"])) { $ancho = " width='" . $columnas[$a]["ancho"] . "'"; } //Emito el valor de la celda echo "<td class='{$estilo_seleccion} " . $columnas[$a]["estilo"] . "' {$ancho}>\n"; if (trim($valor) !== '') { echo $valor; } else { echo ' '; } echo "</td>\n"; //Termino la CELDA } echo "</tr>\n"; }
protected function parametros_js() { $imgs = array(); $imgs[] = toba_recurso::imagen_toba('nucleo/paginacion/no_siguiente.gif', false); $imgs[] = toba_recurso::imagen_toba('nucleo/paginacion/si_siguiente.gif', false); $imgs[] = toba_recurso::imagen_toba('nucleo/paginacion/no_anterior.gif', false); $imgs[] = toba_recurso::imagen_toba('nucleo/paginacion/si_anterior.gif', false); $claves = array(); foreach (array_keys($this->opciones) as $clave) { $claves[] = texto_plano($clave); } $orden_opciones = toba_js::arreglo($claves); return parent::parametros_js() . "," . toba_js::arreglo($imgs, false) . ', ' . $orden_opciones; }
protected function info_usuario() { echo '<div class="enc-usuario">'; echo "<span class='enc-usuario-nom'>" . texto_plano(toba::usuario()->get_nombre()) . "</span>"; echo "<span class='enc-usuario-id'>" . texto_plano(toba::usuario()->get_id()) . "</span>"; echo '</div>'; }