From a67dd916bfdaf40e8984e1ebb10bec08e63d9fed Mon Sep 17 00:00:00 2001 From: Ricardo Dalinger Date: Mon, 3 Feb 2020 12:51:10 -0300 Subject: [PATCH 1/6] Agrega parametro faltante en invocacion e inicializa variable --- .../componentes/interface/toba_ei_cuadro_salida_html.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/php/nucleo/componentes/interface/toba_ei_cuadro_salida_html.php b/php/nucleo/componentes/interface/toba_ei_cuadro_salida_html.php index a0ac616a5..8b72776f1 100644 --- a/php/nucleo/componentes/interface/toba_ei_cuadro_salida_html.php +++ b/php/nucleo/componentes/interface/toba_ei_cuadro_salida_html.php @@ -475,7 +475,7 @@ function html_sumarizacion_usuario($nodo, $total_columnas) $desc = $acumulador_usuario[$id]['descripcion']; $datos[$desc] = $valor; } - echo toba::output()->get('CuadroSalidaHtml')->getSumarizacion($datos,null,300,$css,$nivel_css, "\n","\n"); + echo toba::output()->get('CuadroSalidaHtml')->getSumarizacion($datos,null,300,$css,$nivel_css, "\n","\n", ''); } } @@ -827,7 +827,8 @@ function html_acumulador_usuario() $sumarizacion = $this->_cuadro->calcular_totales_sumarizacion_usuario(); $total_columnas = $this->_cuadro->get_cantidad_columnas_total(); if (! empty($sumarizacion)) { - echo toba::output()->get('CuadroSalidaHtml')->getSumarizacion($sumarizacion,null,300,$css, "\n","\n"); + $css = 'cuadro-cc-sum-nivel-1'; + echo toba::output()->get('CuadroSalidaHtml')->getSumarizacion($sumarizacion,null,300,$css, "\n","\n", ''); } } From 2642493d3f2624f89e2a7a2f69407c03c9cbeced Mon Sep 17 00:00:00 2001 From: Ricardo Dalinger Date: Mon, 3 Feb 2020 12:54:37 -0300 Subject: [PATCH 2/6] Bump Version --- VERSION | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 15a279981..bea438e9a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.3.0 +3.3.1 diff --git a/package.json b/package.json index c3c817c77..85e5a2eaa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "siu-toba-framework", - "version": "3.3.0", + "version": "3.3.1", "description": "Framework para desarrollo rápido de aplicaciones web", "license": "SEE LICENSE IN licencia.txt", "repository": "https://github.com/SIU-Toba/framework.git", From 3c5b4b9c86a8282027339a47f33893868420ec10 Mon Sep 17 00:00:00 2001 From: Ricardo Dalinger Date: Tue, 4 Feb 2020 10:13:27 -0300 Subject: [PATCH 3/6] Fix #73: Las envvars se forman con underscore --- php/nucleo/lib/session_handlers/toba_session_handler.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/php/nucleo/lib/session_handlers/toba_session_handler.php b/php/nucleo/lib/session_handlers/toba_session_handler.php index 1585a2749..d7c3dba77 100644 --- a/php/nucleo/lib/session_handlers/toba_session_handler.php +++ b/php/nucleo/lib/session_handlers/toba_session_handler.php @@ -12,9 +12,10 @@ function __construct() */ function read_env_settings() { - $env_vars = array_keys($this->default_settings); + $env_vars = \array_keys($this->default_settings); foreach($env_vars as $clave) { - $search_key = strtoupper('toba_'.$clave); + $usable_env_name = \str_replace('.', '_', $clave); + $search_key = \strtoupper('toba_'. $usable_env_name); $value = \getenv($search_key); if (false !== $value) { //Esperemos que no haya booleans $this->settings[$clave] = $value; @@ -27,7 +28,7 @@ function read_env_settings() */ function configure_settings() { - $confs = array_merge($this->default_settings, $this->settings); + $confs = \array_merge($this->default_settings, $this->settings); foreach($confs as $key => $value) { \ini_set($key, $value); } @@ -39,7 +40,7 @@ function configure_settings() */ function get_options() { - $confs = array_merge($this->default_settings, $this->settings); + $confs = \array_merge($this->default_settings, $this->settings); return $confs; } } From 731f7a85a5374d4d897d95874127490df095dad6 Mon Sep 17 00:00:00 2001 From: Ricardo Dalinger Date: Thu, 6 Feb 2020 09:53:11 -0300 Subject: [PATCH 4/6] Mejora chequeo en condicional --- php/lib/toba_varios.php | 202 ++++++++++++++++++++-------------------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/php/lib/toba_varios.php b/php/lib/toba_varios.php index 53e993bf5..5d556d263 100644 --- a/php/lib/toba_varios.php +++ b/php/lib/toba_varios.php @@ -71,10 +71,10 @@ function get_var(&$var, $default = null) { function get_nombre_clase_extendida($nombre, $proyecto, $extensiones) { $res = substr($nombre, strlen('toba_')); - if ($extensiones['extension_proyecto']) { - return $proyecto.'_pers_'.$res; - } else if ($extensiones['extension_toba']) { - return $proyecto.'_'.$res; + if (isset($extensiones['extension_proyecto']) && $extensiones['extension_proyecto'] === true) { + return $proyecto.'_pers_'.$res; + } elseif (isset($extensiones['extension_toba']) && $extensiones['extension_toba'] === true) { + return $proyecto.'_'.$res; } return $nombre; @@ -88,7 +88,7 @@ function array_elem_limitrofes($arreglo, $elem) $pos = array_search($elem, $arreglo); if ($pos !== false) { if ($pos > 0) { - $anterior = $arreglo[$pos - 1]; + $anterior = $arreglo[$pos - 1]; } if ($pos < count($arreglo) -1) { $siguiente = $arreglo[$pos + 1]; @@ -96,7 +96,7 @@ function array_elem_limitrofes($arreglo, $elem) } return array($anterior, $siguiente); } - + function array_no_nulo($array) //Controla que el array tiene todas sus entradas en NULL { @@ -119,7 +119,7 @@ function array_renombrar_llave($arreglo,$nueva_llave) } return array_renombrar_llaves($arreglo, $cambios, false); } - + function array_cambiar_prefijo_claves($arreglo, $prefijo, $quitar) { $salida = array(); @@ -131,10 +131,10 @@ function array_cambiar_prefijo_claves($arreglo, $prefijo, $quitar) $id = $prefijo.$id; } $salida[$id] = $dato; - } + } return $salida; - } - + } + /** * Recorre un arreglo dejando solo aquellas entradas pasadas por parametro */ @@ -143,12 +143,12 @@ function array_dejar_llaves($arreglo, $llaves) $nuevo = array(); foreach ($arreglo as $clave => $valor) { if (in_array($clave, $llaves)) { - $nuevo[$clave] = $valor; + $nuevo[$clave] = $valor; } } return $nuevo; } - + function array_renombrar_llaves($arreglo, $cambios, $recursivo = true) //Toma un conjunto de $cambios ("original" => "reemplazo") y los aplica a $arreglo { @@ -168,8 +168,8 @@ function array_renombrar_llaves($arreglo, $cambios, $recursivo = true) } } return $arreglo; - } - + } + /** * Determina si alguna componente recursiva del arreglo es un objeto php * @param array $variable @@ -179,16 +179,16 @@ function array_posee_objetos($variable) { foreach($variable as $elemento) { if(is_object($elemento)) { - return true; + return true; } if(is_array($elemento)) { return array_posee_objetos($elemento); } } return false; - } - - + } + + function array_a_latin1($arreglo) { $salida = array(); @@ -200,7 +200,7 @@ function array_a_latin1($arreglo) } else { $salida[$clave] = $valor; } - } + } return $salida; } @@ -220,10 +220,10 @@ function array_a_utf8($datos){ /** Transforma un json o arreglo en utf8 a un arreglo en latin1 */ function rest_decode($datos) - { + { if(is_string($datos) ){ $datos = json_decode($datos, true); - } //es un json ya decodificada guzzle->response->json + } //es un json ya decodificada guzzle->response->json return (! is_null($datos)) ? array_a_latin1($datos) : array(); } @@ -310,7 +310,7 @@ function rs_ordenar_por_columnas( $rs, $columnas, $tipo = SORT_ASC ) // Armo los parametros del mutisort foreach ( $columnas as $id => $col ) { $parametros[] =& $orden[$id]; - if (! is_array($tipo)) { //Valor comun + if (! is_array($tipo)) { //Valor comun $parametros[] = &$tipo; } elseif (isset($tipo[$col])) { //Es arreglo asociativo por columna $parametros[] = &$tipo[$col]; @@ -342,8 +342,8 @@ function tecla_acceso($etiqueta) //Toma una etiqueta e intenta extraer el caracter de acceso rápido // Ej: Proce&sar retornar array('Procesar', 'P') { - $escapador = toba::escaper(); - $pos_guia = strpos($etiqueta, '&'); + $escapador = toba::escaper(); + $pos_guia = strpos($etiqueta, '&'); if ($pos_guia === false || ($pos_guia == strlen($etiqueta) - 1)) { $nueva_etiqueta = $escapador->escapeHtmlAttr($etiqueta); $tecla = null; @@ -351,20 +351,20 @@ function tecla_acceso($etiqueta) $partes = explode('&', $etiqueta); if (count($partes) != 2) { throw new toba_error_def('No puede existir mas de un shortcut en la misma etiqueta'); - } + } $tecla = substr($partes[1], 0, 1); $escapada = $escapador->escapeHtmlAttr($partes[0]. $partes[1]); - - //---Me fijo si el escapado modifica algun otro caracter en las partes que pueda correr la guia a la derecha - $parte1_escap = $escapador->escapeHtmlAttr($partes[0]); + + //---Me fijo si el escapado modifica algun otro caracter en las partes que pueda correr la guia a la derecha + $parte1_escap = $escapador->escapeHtmlAttr($partes[0]); $tags = $escapador->quitar_tags($etiqueta); //--- Si hay tags completos, como no se escapan se mantiene la posicion original, sino se calcula el corrimiento - $corrimiento_izq = empty($tags) ? strlen($parte1_escap) - strlen($partes[0]) : 0; + $corrimiento_izq = empty($tags) ? strlen($parte1_escap) - strlen($partes[0]) : 0; $nueva_etiqueta = substr($escapada, 0, $pos_guia + $corrimiento_izq) . "$tecla". substr($escapada, $pos_guia + 1 + $corrimiento_izq); } return array($nueva_etiqueta, $tecla); } - + function array_borrar_valor(& $arreglo, $valor) { $pos = array_search($valor, $arreglo); @@ -372,7 +372,7 @@ function array_borrar_valor(& $arreglo, $valor) array_splice($arreglo, $pos, 1); } } - + function aplanar_matriz($matriz, $campo = null) //Toma una matriz y lo aplana a una sola dimension, si no se especifica un campo, se elige el primero //Util para aplanar recordset de consultas de un solo campo @@ -384,11 +384,11 @@ function aplanar_matriz($matriz, $campo = null) $aplanado[$clave] = current($arreglo); }elseif (isset($arreglo[$campo])) { $aplanado[$clave] = $arreglo[$campo]; - } + } } return $aplanado; } - + /** * Toma una matriz en formato recordset y retorna un arreglo asociativo clave => valor @@ -396,12 +396,12 @@ function aplanar_matriz($matriz, $campo = null) * @param array $datos_recordset Matriz en formato recordset * @param array $claves Campos (asociativos o numericos) claves de cada registro * @param string $valor Campo valor (asociativo o numerico) de cada registro - * @return array + * @return array */ function rs_convertir_asociativo($datos_recordset, $claves=array(0), $valor=1) { if (!isset($datos_recordset)) { - return array(); + return array(); } $valores = array(); foreach ($datos_recordset as $fila){ @@ -421,9 +421,9 @@ function rs_convertir_asociativo($datos_recordset, $claves=array(0), $valor=1) } } return $valores; - } + } - //----------------------------------------------------------------- + //----------------------------------------------------------------- /** * Toma una matriz en formato recordset y retorna la misma matriz pero con la primer componente asociativa @@ -431,12 +431,12 @@ function rs_convertir_asociativo($datos_recordset, $claves=array(0), $valor=1) * @param array $datos_recordset Matriz en formato recordset * @param array $claves Campos (asociativos o numericos) claves de cada registro * @param string $valores Campos valor (asociativo o numerico) de cada registro, se asumen todos los campos - * @return array + * @return array */ function rs_convertir_asociativo_matriz($datos_recordset, $claves, $valores=null) { if (!isset($datos_recordset)) { - return array(); + return array(); } $salida = array(); foreach ($datos_recordset as $fila){ @@ -460,7 +460,7 @@ function rs_convertir_asociativo_matriz($datos_recordset, $claves, $valores=null return $salida; } - //----------------------------------------------------------------- + //----------------------------------------------------------------- function dump_array_php($array, $nombre="array",$html=false) //Dumpea un array como sintaxis de definicion de array de PHP @@ -477,12 +477,12 @@ function dump_array_php($array, $nombre="array",$html=false) $php .= $nombre . $linea[$a] . "\n"; } if($html){ - return "
$php
"; + return "
$php
"; }else{ return $php; } } - + function dump_array_nivel($array) { $php =""; @@ -519,8 +519,8 @@ function dump_array_javascript($array, $nombre, $es_objeto=false) $valor = str_replace("\"","'",$valor); $id_js = $escapador->escapeJs($id); $valor_js = ($es_objeto) ? $valor : '"'. $escapador->escapeJs($valor). '"'; - - $js .= "$nombre"."['$id_js'] = $valor_js;\n"; + + $js .= "$nombre"."['$id_js'] = $valor_js;\n"; } } return $js; @@ -539,13 +539,13 @@ function revision_svn($dir, $usar_comando=false) $contenido = file_get_contents ( $archivo ); $captura = array(); if(preg_match("/revision=\"(.*)\"/", $contenido, $captura)){ - //ei_arbol($captura); + //ei_arbol($captura); return $captura[1]; }else{ - return "DESCONOCIDA"; + return "DESCONOCIDA"; } }else{ - return "DESCONOCIDA"; + return "DESCONOCIDA"; } } else { if (file_exists($dir.'/.svn')) { @@ -565,21 +565,21 @@ function estoy_en_vendor($dir) { return (posicion_ruta_vendor($dir) !== false); } - - function posicion_ruta_vendor($dir) + + function posicion_ruta_vendor($dir) { return $pos = stripos($dir, DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR); } - - function generar_archivo_entorno($instal_dir, $id_instancia, $es_windows=false) + + function generar_archivo_entorno($instal_dir, $id_instancia, $es_windows=false) { if (! $es_windows) { $contenido = "export TOBA_DIR=".toba_dir()."\n"; $contenido .= "export TOBA_INSTANCIA=$id_instancia\n"; - $contenido.= "export TOBA_INSTALACION_DIR=$instal_dir\n"; + $contenido.= "export TOBA_INSTALACION_DIR=$instal_dir\n"; $contenido .= 'export PATH="$TOBA_DIR/bin:$PATH"'."\n"; $contenido .= "echo \"Entorno cargado.\"\n"; - $contenido .= "echo \"Ejecute 'toba' para ver la lista de comandos disponibles.\"\n"; + $contenido .= "echo \"Ejecute 'toba' para ver la lista de comandos disponibles.\"\n"; } else { $contenido = "@echo off\n"; $contenido .= "set TOBA_DIR=".toba_dir()."\n"; @@ -591,53 +591,53 @@ function generar_archivo_entorno($instal_dir, $id_instancia, $es_windows=false) } return $contenido; } - - - + + + /** * Clase que otorga rangos para asignación de tabs * @package Varios */ - class toba_manejador_tabs + class toba_manejador_tabs { static private $instancia; static function instancia() { - if (! toba_manejador_tabs::$instancia) { - toba_manejador_tabs::$instancia = new toba_manejador_tabs(); + if (! toba_manejador_tabs::$instancia) { + toba_manejador_tabs::$instancia = new toba_manejador_tabs(); } return toba_manejador_tabs::$instancia; - } + } protected $proximo_tab = 1; - + function reservar($cantidad) { $reserva = array($this->proximo_tab, $this->proximo_tab + $cantidad - 1); $this->proximo_tab = $this->proximo_tab + $cantidad; return $reserva; } - + function siguiente() { return $this->proximo_tab++; } } - + /** * El objeto_de_mentira intenta superar su ejecución sin causar ningun error ni warning * Util para simulaciones - * @ignore + * @ignore */ class toba_objeto_de_mentira { function __call($m, $a) { - return new toba_objeto_de_mentira(); - } - + return new toba_objeto_de_mentira(); + } + function __set($p, $v) { } - + function __get($p) { return new toba_objeto_de_mentira(); @@ -646,14 +646,14 @@ function __get($p) function convertir_a_medida_tabla($ancho, $medida='width') { - //El ancho de una tabla no puede tener 'px' + //El ancho de una tabla no puede tener 'px' $ancho = str_replace('px', '', $ancho); if ($ancho != '') { $ancho = "$medida='".toba::escaper()->escapeHtmlAttr($ancho)."'"; } return $ancho; } - + function sumar_medida($original, $agregado) { $numero = intval($original); @@ -670,8 +670,8 @@ function acceso_get() //Devuelve TRUE si el acceso se dio por GET { return (isset($_SERVER["REQUEST_METHOD"]) && $_SERVER["REQUEST_METHOD"]=="GET"); - } - + } + function set_tiempo_maximo($tiempo="30") { ini_set("max_execution_time",$tiempo); @@ -688,9 +688,9 @@ function reflexion_buscar_propiedades($obj, $patron) } } sort($props); - return $props; + return $props; } - + function reflexion_buscar_metodos($obj, $patron) { $ref = new ReflectionClass($obj); @@ -702,9 +702,9 @@ function reflexion_buscar_metodos($obj, $patron) } } sort($props); - return $props; - } - + return $props; + } + function agregar_dir_include_path($dir) { $i_path = ini_get("include_path"); @@ -714,12 +714,12 @@ function agregar_dir_include_path($dir) ini_set("include_path", $i_path . ":.:" . $dir); } } - + function get_url_desarrollos($forzar_alternativo=false) { return "http://repositorio.siu.edu.ar"; - } - + } + function comparar($valor1, $operador, $valor2) { switch ($operador) { @@ -745,7 +745,7 @@ function comparar($valor1, $operador, $valor2) throw new toba_error("El operador $operador no está soportado"); } } - + /** * Funcion que hashea con un metodo especifico y un salt * @param type $clave @@ -756,27 +756,27 @@ function comparar($valor1, $operador, $valor2) * @see toba_hash */ function encriptar_con_sal($clave, $metodo, $sal=null) - { + { if (version_compare(PHP_VERSION, '5.3.2') >= 0 || $metodo == 'bcrypt') { - $hasher = new toba_hash($metodo); + $hasher = new toba_hash($metodo); if (is_null($sal)) { //Hash nuevo return $hasher->hash($clave); } else { //Verificacion $resultado = $hasher->get_hash_verificador($clave, $sal); - if (strlen($resultado) > 13) { //Si es menor a 13 hubo error, puede ser que el hash + if (strlen($resultado) > 13) { //Si es menor a 13 hubo error, puede ser que el hash return $resultado; //se hubiera generado con el metodo anterior - } + } } } - + if (is_null($sal)) { $sal = get_salt(); } else { $sal = substr($sal, 0, 10); } - return $sal . hash($metodo, $sal . $clave); + return $sal . hash($metodo, $sal . $clave); } - + /** * Funcion que retorna un salt generado (no seguro) * @return type @@ -786,17 +786,17 @@ function get_salt() { return substr(md5(uniqid(rand(), true)), 0, 10); } - + function dormir($tiempo) { if (class_exists('inst_timer')) { $timer = new inst_timer(); $timer->wait($tiempo); } else { - usleep(1000); - } + usleep(1000); + } } - + function ejecutar_consola($cmd, &$stdout, &$stderr) { $outfile = tempnam(".", "cmd"); @@ -819,14 +819,14 @@ function ejecutar_consola($cmd, &$stdout, &$stderr) unlink($outfile); unlink($errfile); return $exit; - } + } function cambiar_fecha($fecha,$sep_actual,$sep_nuevo, $buscar_hora=false){ if (isset($fecha) && trim($fecha)!='') { $f = explode($sep_actual,$fecha); if(count($f) < 3){ toba::logger()->notice("Formateador: se recibio una fecha invalida. [$fecha]"); - return ''; + return ''; } $extra = explode(' ',$f[2]); $dia = str_pad($f[0],2,0,STR_PAD_LEFT); @@ -838,8 +838,8 @@ function cambiar_fecha($fecha,$sep_actual,$sep_nuevo, $buscar_hora=false){ } return $salida; } - } - + } + /** * Convierte una hora de formato 24 a 12 * @param string $hora_original Cadena representando la hora que se quiere convertir @@ -857,9 +857,9 @@ function cambiar_hora_formato_12($hora_original) } return null; } - + /** - * Purifica una cadena a incluir en la salida html, previniendo ataques XSS + * Purifica una cadena a incluir en la salida html, previniendo ataques XSS * @param string $texto * @return string */ @@ -884,12 +884,12 @@ function checktime($horas, $minutos, $segundos = null) } return $valida; } - - + + function xml_encode($valor) { return toba_xml_tablas::encode($valor); } - + function xml_decode($valor) { return toba_xml_tablas::decode($valor); } From 7f3b57adaaea1ccc2413a41db9aefa88d2ea9199 Mon Sep 17 00:00:00 2001 From: Ricardo Dalinger Date: Thu, 6 Feb 2020 09:53:50 -0300 Subject: [PATCH 5/6] Actualiza version de CKEditor (con cambio de nombre en paquete) --- package.json | 2 +- .../interface/efs/toba_ef_varios.php | 130 +++++++++--------- 2 files changed, 66 insertions(+), 66 deletions(-) diff --git a/package.json b/package.json index 85e5a2eaa..3f97e6b63 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "author": "enfoqueNativo ", "private": false, "dependencies": { - "ckeditor": "4.11", + "ckeditor4": "4.13", "jquery": "3.4", "jquery-migrate": "3.0", "siu-js-app-launcher": "1.0.4" diff --git a/php/nucleo/componentes/interface/efs/toba_ef_varios.php b/php/nucleo/componentes/interface/efs/toba_ef_varios.php index da0218496..4ba14e7fe 100644 --- a/php/nucleo/componentes/interface/efs/toba_ef_varios.php +++ b/php/nucleo/componentes/interface/efs/toba_ef_varios.php @@ -23,13 +23,13 @@ static function get_lista_parametros() 'check_ml_toggle' ); } - - + + function __construct($padre, $nombre_formulario, $id, $etiqueta, $descripcion, $dato, $obligatorio, $parametros) { //VAlor FIJO if (isset($parametros['estado_defecto'])) { - $this->estado_defecto = $parametros['estado_defecto']; + $this->estado_defecto = $parametros['estado_defecto']; $this->estado = $this->estado_defecto; } if (isset($parametros['check_valor_si'])) { @@ -40,17 +40,17 @@ function __construct($padre, $nombre_formulario, $id, $etiqueta, $descripcion, $ if (isset($parametros['check_valor_no'])) { $this->valor_no_seteado = $parametros['check_valor_no']; } else { - $this->valor_no_seteado = '0'; - } + $this->valor_no_seteado = '0'; + } if (isset($parametros["check_desc_si"])) { $this->valor_info = $parametros["check_desc_si"]; } if (isset($parametros["check_desc_no"])) { $this->valor_info_no_seteado = $parametros["check_desc_no"]; - } + } if (isset($parametros["check_ml_toggle"])) { $this->check_ml_toggle = $parametros["check_ml_toggle"]; - } + } parent::__construct($padre, $nombre_formulario, $id, $etiqueta, $descripcion, $dato, $obligatorio,$parametros); } @@ -65,15 +65,15 @@ function get_input() if ($this->seleccionado()) { $html .= toba_recurso::imagen_toba('nucleo/efcheck_on.gif',true,16,16); } else { - $html .= toba_recurso::imagen_toba('nucleo/efcheck_off.gif',true,16,16); + $html .= toba_recurso::imagen_toba('nucleo/efcheck_off.gif',true,16,16); } } else { $js = ''; if ($this->cuando_cambia_valor != '') { $js = "onchange=\"{$this->get_cuando_cambia_valor()}\""; - } + } $tab = $this->padre->get_tab_index(); - $extra = " tabindex='$tab'"; + $extra = " tabindex='$tab'"; $html = toba_form::checkbox($this->id_form, $this->estado, $this->valor, $this->clase_css, $extra.' '.$js); } $html .= $this->get_html_iconos_utilerias(); @@ -83,7 +83,7 @@ function get_input() function set_estado($estado) //Carga el estado interno { - if(isset($estado)){ + if(isset($estado)){ $this->estado=$estado; return true; }else{ @@ -92,12 +92,12 @@ function set_estado($estado) $this->estado = $this->valor_no_seteado; return true; } else { - $this->estado = null; + $this->estado = null; } } return false; } - + function cargar_estado_post() { if(isset($_POST[$this->id_form])) { @@ -105,26 +105,26 @@ function cargar_estado_post() } else { $this->set_estado(null); } - return false; + return false; } - + function get_consumo_javascript() { $consumos = array('efs/ef','efs/ef_checkbox'); return $consumos; - } - + } + function tiene_estado() { - return isset($this->estado) && + return isset($this->estado) && ($this->estado == $this->valor || $this->estado == $this->valor_no_seteado); - } + } function seleccionado() { - return isset($this->estado) && + return isset($this->estado) && ($this->estado == $this->valor); - } + } protected function parametros_js() { @@ -132,11 +132,11 @@ protected function parametros_js() $params = "$param_padre, '{$this->valor}' "; //Le paso el valor que tomaria estando checkeado para comparar en modo solo lectura return $params; } - + function crear_objeto_js() { return "new ef_checkbox({$this->parametros_js()})"; - } + } function get_descripcion_estado($tipo_salida) { @@ -154,9 +154,9 @@ function get_descripcion_estado($tipo_salida) return $valor; case 'excel': return array($valor, null); - } + } } - + } // ######################################################################################################## // ######################################################################################################## @@ -170,23 +170,23 @@ class toba_ef_fijo extends toba_ef_oculto { protected $clase_css = 'ef-fijo'; private $maneja_datos; - + static function get_lista_parametros() { $parametros[] = 'fijo_sin_estado'; return $parametros; } - - + + static function get_lista_parametros_carga() { - $parametros = toba_ef::get_lista_parametros_carga_basico(); + $parametros = toba_ef::get_lista_parametros_carga_basico(); array_borrar_valor($parametros, 'carga_lista'); array_borrar_valor($parametros, 'carga_col_clave'); array_borrar_valor($parametros, 'carga_col_desc'); return $parametros; - } - + } + function __construct($padre, $nombre_formulario, $id, $etiqueta, $descripcion, $dato, $obligatorio, $parametros) { parent::__construct($padre, $nombre_formulario, $id, $etiqueta, $descripcion, $dato, $obligatorio,$parametros); @@ -197,7 +197,7 @@ function __construct($padre, $nombre_formulario, $id, $etiqueta, $descripcion, $ } } - + function set_estado($estado=null) { /* @@ -208,15 +208,15 @@ function set_estado($estado=null) }else{ if(isset($estado)) { $this->estado = $estado; - } + } } } function set_opciones($descripcion, $maestros_cargados=true) { $this->set_estado($descripcion); - } - + } + function get_input() { $estado = (isset($this->estado)) ? $this->estado : null; @@ -227,18 +227,18 @@ function get_input() $html .= $this->get_html_iconos_utilerias(); return $html; } - + function get_consumo_javascript() { $consumos = array('efs/ef'); return $consumos; - } - + } + function crear_objeto_js() { return "new ef_fijo({$this->parametros_js()})"; - } - + } + } @@ -269,8 +269,8 @@ static function get_lista_parametros() $parametros[] = 'editor_botonera'; $parametros[] = 'editor_config_file'; return $parametros; - } - + } + function __construct($padre, $nombre_formulario, $id, $etiqueta, $descripcion, $dato, $obligatorio, $parametros) { $this->ancho = (isset($parametros['editor_ancho']))? $parametros['editor_ancho'] : "100%"; @@ -283,16 +283,16 @@ function __construct($padre, $nombre_formulario, $id, $etiqueta, $descripcion, $ function get_consumo_javascript() { $consumo = parent::get_consumo_javascript(); - $consumo[] = "packages/ckeditor/ckeditor"; + $consumo[] = "packages/ckeditor4/ckeditor"; return $consumo; } - + /** * Retorna el objeto fckeditor para poder modificarlo según su propia API * @param mixed valor a pasarle al editor * @return fckeditor */ - function get_editor($valor) + function get_editor($valor) { $name = $this->id_form; $attr = ''; @@ -302,32 +302,32 @@ function get_editor($valor) } else { $url_archivo = toba_recurso::url_proyecto() . '/js' . $this->config_file; } - + $opciones = array( 'width' => $this->ancho, 'height' => $this->alto, 'toolbar' => $this->botonera, 'skin' => 'kama'); $opciones['customConfig'] = $url_archivo; - $opciones['readOnly'] = $this->es_solo_lectura(); + $opciones['readOnly'] = $this->es_solo_lectura(); $opciones = array_map('utf8_e_seguro', $opciones); if (isset($this->templates_ck) && ! empty($this->templates_ck)) { $opciones['templates_files'] = $this->templates_ck; - } - if (! empty($opciones)) { + } + if (! empty($opciones)) { $this->js_config = \json_encode($opciones); } return $out; } - + function get_estado() { if ($this->tiene_estado()) { - return trim($this->estado); + return trim($this->estado); } else { return null; } - } - + } + function set_barra_colapsada($colapsada) { $this->colapsada = $colapsada; @@ -337,38 +337,38 @@ function set_botonera($botonera) { $this->botonera = $botonera; } - + function set_alto($alto) { $this->alto = $alto; } - + function set_ancho($ancho) { $this->ancho = $ancho; } - + function set_path_template($path) { $this->templates_ck = $path; } - + function set_config_file($path) { $this->config_file = $path; } - + function get_input() { if(isset($this->estado)){ $estado = $this->estado; }else{ $estado = ""; - } - $html = $this->get_editor($estado); + } + $html = $this->get_editor($estado); return $html; } - + protected function parametros_js() { $params = parent::parametros_js(); @@ -377,12 +377,12 @@ protected function parametros_js() } return $params; } - - + + function crear_objeto_js() - { + { return "new ef_html({$this->parametros_js()})"; - } + } } ?> From 20539964bc7fac6fc623ee997cda1107e3ef6065 Mon Sep 17 00:00:00 2001 From: Ricardo Dalinger Date: Thu, 6 Feb 2020 11:29:53 -0300 Subject: [PATCH 6/6] Changelog Update && archivo lock --- CHANGELOG.md | 6 ++++ composer.lock | 99 ++++++++++++++++++++++++++------------------------- 2 files changed, 56 insertions(+), 49 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c9f3b97a..c7025ae41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ [CURRENT](https://github.com/SIU-Toba/framework/compare/master...develop) +[3.3.1](https://github.com/SIU-Toba/framework/releases/tag/v3.3.1) (2020-02-06) +- Actualiza version de CKEditor (implica cambio en URL del asset) +- Mejora chequeo en condicional del metodo get_nombre_clase_extendida +- Bugfix a la lectura de variables de entorno para configurar el manejo de sesiones (credits svier) +- Bugfix en toba_ei_cuadro_salida_html, se recupera inicializacion de variable $css y agrega parametro actual faltante en invocacion (credits esassone) + [3.3.0](https://github.com/SIU-Toba/framework/releases/tag/v3.3.0) (2019-12-27) - Se fija como version minima de PHP 7.3.0 - Se actualiza el item de login en toba_usuarios y toba_referencia, tambien se eliminan objetos huerfanos diff --git a/composer.lock b/composer.lock index 9caae0a50..cc904d3e8 100644 --- a/composer.lock +++ b/composer.lock @@ -1083,16 +1083,16 @@ }, { "name": "paragonie/sodium_compat", - "version": "v1.12.1", + "version": "v1.12.2", "source": { "type": "git", "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "063cae9b3a7323579063e7037720f5b52b56c178" + "reference": "3b953109fdfc821c1979bc829c8b7421721fef82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/063cae9b3a7323579063e7037720f5b52b56c178", - "reference": "063cae9b3a7323579063e7037720f5b52b56c178", + "url": "https://api.github.com/repos/paragonie/sodium_compat/zipball/3b953109fdfc821c1979bc829c8b7421721fef82", + "reference": "3b953109fdfc821c1979bc829c8b7421721fef82", "shasum": "" }, "require": { @@ -1161,7 +1161,7 @@ "secret-key cryptography", "side-channel resistant" ], - "time": "2019-11-07T17:07:24+00:00" + "time": "2019-12-30T03:11:08+00:00" }, { "name": "pear/console_getopt", @@ -2424,16 +2424,16 @@ }, { "name": "symfony/yaml", - "version": "v4.4.2", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "a08832b974dd5fafe3085a66d41fe4c84bb2628c" + "reference": "cd014e425b3668220adb865f53bff64b3ad21767" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/a08832b974dd5fafe3085a66d41fe4c84bb2628c", - "reference": "a08832b974dd5fafe3085a66d41fe4c84bb2628c", + "url": "https://api.github.com/repos/symfony/yaml/zipball/cd014e425b3668220adb865f53bff64b3ad21767", + "reference": "cd014e425b3668220adb865f53bff64b3ad21767", "shasum": "" }, "require": { @@ -2479,7 +2479,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-12-10T10:33:21+00:00" + "time": "2020-01-21T11:12:16+00:00" }, { "name": "vlucas/phpdotenv", @@ -2581,6 +2581,7 @@ "escaper", "zf2" ], + "abandoned": "laminas/laminas-escaper", "time": "2014-03-05T17:29:35+00:00" }, { @@ -2636,6 +2637,7 @@ "stdlib", "zf2" ], + "abandoned": "laminas/laminas-stdlib", "time": "2014-03-05T17:29:35+00:00" }, { @@ -2684,6 +2686,7 @@ "uri", "zf2" ], + "abandoned": "laminas/laminas-uri", "time": "2014-03-05T17:29:35+00:00" }, { @@ -2748,6 +2751,7 @@ "validator", "zf2" ], + "abandoned": "laminas/laminas-validator", "time": "2014-03-05T17:29:35+00:00" } ], @@ -2816,31 +2820,27 @@ }, { "name": "egulias/email-validator", - "version": "1.2.15", + "version": "1.2.16", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "758a77525bdaabd6c0f5669176bd4361cb2dda9e" + "reference": "92fd7ea285f1edd1503d78f75b8d8992b0fb3941" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/758a77525bdaabd6c0f5669176bd4361cb2dda9e", - "reference": "758a77525bdaabd6c0f5669176bd4361cb2dda9e", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/92fd7ea285f1edd1503d78f75b8d8992b0fb3941", + "reference": "92fd7ea285f1edd1503d78f75b8d8992b0fb3941", "shasum": "" }, "require": { "doctrine/lexer": "^1.0.1", - "php": ">= 5.3.3" + "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "^4.8.24" + "phpunit/phpunit": "^4.8.36|^7.5.15", + "satooshi/php-coveralls": "^1.0.1" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, "autoload": { "psr-0": { "Egulias\\": "src/" @@ -2864,7 +2864,7 @@ "validation", "validator" ], - "time": "2018-09-25T20:59:41+00:00" + "time": "2019-12-30T08:17:06+00:00" }, { "name": "facebook/webdriver", @@ -2924,6 +2924,7 @@ "selenium", "webdriver" ], + "abandoned": "php-webdriver/webdriver", "time": "2019-06-13T08:02:18+00:00" }, { @@ -3343,11 +3344,11 @@ }, { "name": "siu/arai-cli", - "version": "v2.7.3", + "version": "v2.7.5", "source": { "type": "git", "url": "https://gitlab.siu.edu.ar/siu-arai/arai-cli.git", - "reference": "9a23c4ae6e1f9a52b8b46cb7ddd9b1aebc00f759" + "reference": "cc94ebfc874f203b54f25877955cc958281b4967" }, "require": { "egulias/email-validator": "~1.2", @@ -3357,7 +3358,7 @@ "php": ">=5.6", "pimple/pimple": "~3.0", "seld/cli-prompt": "~1.0", - "siu/arai-crypto": "~1.1.0", + "siu/arai-crypto": "~1.2.0", "siu/arai-json-parser": "~3.1.5", "symfony/console": "~3.1", "symfony/debug": "~3.1" @@ -3382,18 +3383,18 @@ } }, "description": "Librería cliente de los componentes ARAI", - "time": "2019-06-25T18:14:30+00:00" + "time": "2020-01-16T21:58:00+00:00" }, { "name": "siu/arai-crypto", - "version": "v1.1.0", + "version": "v1.2.0", "source": { "type": "git", "url": "https://gitlab.siu.edu.ar/siu-arai/arai-crypto", - "reference": "7c9078d7b8469551209fba9cca4db4399647b692" + "reference": "a0d46cba52ac74aa73c5a45e6925d402941a1247" }, "require": { - "php": ">=5.6" + "php": ">=7.1" }, "conflict": { "paragonie/halite": "<1.6.0 || >1.7.0" @@ -3402,7 +3403,7 @@ "mikey179/vfsstream": "1.6.5", "paragonie/constant_time_encoding": "^1|^2", "paragonie/halite": "1.6.0", - "paragonie/sodium_compat": "~1.8", + "paragonie/sodium_compat": "~1.12", "phpunit/phpunit": "~5.7" }, "suggest": { @@ -3415,7 +3416,7 @@ } }, "description": "Librería que ofrece servicios de criptografía para ARAI", - "time": "2019-02-08T19:14:39+00:00" + "time": "2020-01-03T22:04:32+00:00" }, { "name": "siu/arai-json-parser", @@ -3446,11 +3447,11 @@ }, { "name": "siu/manejador-salida-bootstrap", - "version": "v1.3.0", + "version": "v1.3.1", "source": { "type": "git", "url": "https://gitlab.siu.edu.ar/siu/manejador-salida-bootstrap.git", - "reference": "81d64b6b661f079ed5f9250d2151b554fafa8b94" + "reference": "2f7683e108e668da327e7e63b88ca1878e239c9c" }, "require": { "siu/interfaces-manejador-salida-toba": "^1.2" @@ -3476,20 +3477,20 @@ } ], "description": "Implementacion del patron 'Abstract Factory' para la salida Bootstrap", - "time": "2019-12-23T17:37:35+00:00" + "time": "2020-02-06T12:38:37+00:00" }, { "name": "symfony/console", - "version": "v3.4.36", + "version": "v3.4.37", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1ee23b3b659b06c622f2bd2492a229e416eb4586" + "reference": "7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1ee23b3b659b06c622f2bd2492a229e416eb4586", - "reference": "1ee23b3b659b06c622f2bd2492a229e416eb4586", + "url": "https://api.github.com/repos/symfony/console/zipball/7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12", + "reference": "7c5bdd346f9d90a2d22d4e1fe61e02dc19b98f12", "shasum": "" }, "require": { @@ -3548,20 +3549,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-12-01T10:04:45+00:00" + "time": "2020-01-10T07:52:48+00:00" }, { "name": "symfony/debug", - "version": "v3.4.36", + "version": "v3.4.37", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086" + "reference": "70dd18e93bb8bdf3c4db7fde832619fef9828cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/f72e33fdb1170b326e72c3157f0cd456351dd086", - "reference": "f72e33fdb1170b326e72c3157f0cd456351dd086", + "url": "https://api.github.com/repos/symfony/debug/zipball/70dd18e93bb8bdf3c4db7fde832619fef9828cf8", + "reference": "70dd18e93bb8bdf3c4db7fde832619fef9828cf8", "shasum": "" }, "require": { @@ -3604,7 +3605,7 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-10-24T15:33:53+00:00" + "time": "2020-01-08T16:36:15+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -3667,16 +3668,16 @@ }, { "name": "symfony/process", - "version": "v4.4.2", + "version": "v4.4.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "b84501ad50adb72a94fb460a5b5c91f693e99c9b" + "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/b84501ad50adb72a94fb460a5b5c91f693e99c9b", - "reference": "b84501ad50adb72a94fb460a5b5c91f693e99c9b", + "url": "https://api.github.com/repos/symfony/process/zipball/f5697ab4cb14a5deed7473819e63141bf5352c36", + "reference": "f5697ab4cb14a5deed7473819e63141bf5352c36", "shasum": "" }, "require": { @@ -3712,7 +3713,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-12-06T10:06:46+00:00" + "time": "2020-01-09T09:50:08+00:00" } ], "aliases": [],