コード例 #1
0
ファイル: ci_editor.php プロジェクト: emma5021/toba
 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');
     }
 }
コード例 #2
0
ファイル: toba_ef_upload.php プロジェクト: emma5021/toba
 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;
 }
コード例 #3
0
 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 '&nbsp;';
         }
         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";
 }
コード例 #4
0
ファイル: toba_form.php プロジェクト: emma5021/toba
 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";
 }
コード例 #5
0
 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;
 }
コード例 #6
0
ファイル: toba_ef_varios.php プロジェクト: emma5021/toba
 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;
 }
コード例 #7
0
ファイル: toba_ef_editable.php プロジェクト: emma5021/toba
 protected function get_info_placeholder()
 {
     if (trim($this->placeholder) != '') {
         $ph = texto_plano($this->placeholder);
         return " placeholder='{$ph}' ";
     }
     return '';
 }
コード例 #8
0
ファイル: toba_ei_arbol.php プロジェクト: emma5021/toba
 /**
  * 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);
 }
コード例 #9
0
ファイル: toba_ef_combo.php プロジェクト: emma5021/toba
 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;
 }
コード例 #10
0
ファイル: toba_memoria.php プロジェクト: emma5021/toba
 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;
                 }
             }
         }
     }
 }
コード例 #11
0
 function get_log_comando_ejecucion()
 {
     if (isset($this->_log_comando)) {
         return texto_plano($this->_log_comando->get_info_log());
     }
 }
コード例 #12
0
 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 '&nbsp;';
         }
         echo "</td>\n";
         //Termino la CELDA
     }
     echo "</tr>\n";
 }
コード例 #13
0
 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;
 }
コード例 #14
0
ファイル: toba_tp_normal.php プロジェクト: emma5021/toba
 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>';
 }