示例#1
0
 static function get_lista_parametros_carga()
 {
     $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;
 }
 static function get_lista_parametros()
 {
     $param = parent::get_lista_parametros();
     array_borrar_valor($param, 'edit_expreg');
     array_borrar_valor($param, 'edit_mascara');
     array_borrar_valor($param, 'edit_unidad');
     array_borrar_valor($param, 'edit_maximo');
     return $param;
 }
示例#3
0
 function generar_layout_template_impresion(toba_impresion $obj_salida)
 {
     $restantes = array_keys($this->_dependencias);
     //Parseo del template
     $pattern = '/\\[dep([\\s\\w+=\\w+]+)\\]/i';
     if (preg_match_all($pattern, $this->_info_pantalla['template_impresion'], $resultado)) {
         $salida = $this->_info_pantalla['template_impresion'];
         for ($i = 0; $i < count($resultado[0]); $i++) {
             $original = $resultado[0][$i];
             $atributos = array();
             foreach (explode(' ', trim($resultado[1][$i])) as $atributo) {
                 $partes = explode('=', $atributo);
                 $atributos[$partes[0]] = $partes[1];
             }
             if (!isset($atributos['id'])) {
                 throw new toba_error_def($this->get_txt() . "Tag [dep] incorrecto, falta atributo id");
             }
             if (isset($this->_dependencias[$atributos['id']])) {
                 ob_start();
                 $this->_dependencias[$atributos['id']]->vista_impresion_html($obj_salida);
                 $html = ob_get_clean();
                 $salida = str_replace($original, $html, $salida);
                 array_borrar_valor($restantes, $atributos['id']);
             }
         }
         echo $salida;
     } else {
         echo $this->_info_pantalla['template_impresion'];
     }
     if (!empty($restantes)) {
         $faltan = implode(', ', $restantes);
         throw new toba_error_def($this->get_txt() . " Template de impresión incompleto, falta incluir las siguientes dependencias: {$faltan}");
     }
 }
示例#4
0
 /**
  * Método que se utiliza en la respuesta del filtro del combo editable usando AJAX
  */
 function servicio__filtrado_ef_ce()
 {
     require_once toba_dir() . '/php/3ros/JSON.php';
     if (!isset($_GET['filtrado-ce-ef']) || !isset($_GET['filtrado-ce-valor'])) {
         throw new toba_error_seguridad("Filtrado de combo editable: Invocación incorrecta");
     }
     toba::memoria()->desactivar_reciclado();
     $id_ef = trim(toba::memoria()->get_parametro('filtrado-ce-ef'));
     $filtro = trim(toba::memoria()->get_parametro('filtrado-ce-valor'));
     $fila_actual = trim(toba::memoria()->get_parametro('filtrado-ce-fila'));
     //--- Resuelve la cascada
     $maestros = array($id_ef => $filtro);
     $cascadas_maestros = $this->_carga_opciones_ef->get_cascadas_maestros();
     $ids_maestros = $cascadas_maestros[$id_ef];
     foreach (explode('-|-', toba::memoria()->get_parametro('cascadas-maestros')) as $par) {
         if (trim($par) != '') {
             $param = explode("-;-", trim($par));
             if (count($param) != 2) {
                 throw new toba_error_seguridad("Filtrado de combo editable: Cantidad incorrecta de parametros ({$par}).");
             }
             $id_ef_maestro = $param[0];
             //--- Verifique que este entre los maestros y lo elimina de la lista
             if (!in_array($id_ef_maestro, $ids_maestros)) {
                 throw new toba_error_seguridad("Filtrado de combo editable: El ef '{$id_ef_maestro}' no esta entre los maestros de '{$id_ef}'");
             }
             array_borrar_valor($ids_maestros, $id_ef_maestro);
             $campos = $this->_elemento_formulario[$id_ef_maestro]->get_dato();
             $valores = explode(apex_qs_separador, $param[1]);
             if (!is_array($campos)) {
                 $maestros[$id_ef_maestro] = $param[1];
             } else {
                 //--- Manejo de claves múltiples
                 if (count($valores) != count($campos)) {
                     throw new excepction_toba("Filtrado de combo editable: El ef {$id_ef_maestro} maneja distinta cantidad de datos que los campos pasados");
                 }
                 $valores_clave = array();
                 for ($i = 0; $i < count($campos); $i++) {
                     $valores_clave[$campos[$i]] = $valores[$i];
                 }
                 $maestros[$id_ef_maestro] = $valores_clave;
             }
         }
     }
     //--- Recorro la lista de maestros para ver si falta alguno. Permite tener ocultos como maestros
     foreach ($ids_maestros as $id_ef_maestro) {
         if (isset($fila_actual)) {
             //-- Caso especial del ML, necesita ir a la fila actual y recargar su estado
             $this->ef($id_ef_maestro)->ir_a_fila($fila_actual);
             $this->ef($id_ef_maestro)->cargar_estado_post();
         }
         if (!$this->ef($id_ef_maestro)->tiene_estado()) {
             throw new toba_error_seguridad("Filtrado de combo editable: El ef maestro '{$id_ef_maestro}' no tiene estado cargado");
         }
         $maestros[$id_ef_maestro] = $this->ef($id_ef_maestro)->get_estado();
     }
     toba::logger()->debug("Filtrado combo_editable '{$id_ef}', Cadena: '{$filtro}', Estado de los maestros: " . var_export($maestros, true));
     $valores = $this->_carga_opciones_ef->ejecutar_metodo_carga_ef($id_ef, $maestros);
     /*//--- Matchea en la respuesta parte de la pregunta
     		foreach ($valores as $clave => $valor) {
     			$valores[$clave] = str_ireplace($filtro, "<em>$filtro</em>", $valor);
     		}*/
     toba::logger()->debug("Filtrado combo_editable '{$id_ef}', Respuesta: " . var_export($valores, true));
     $json = new Services_JSON();
     if (is_array($valores)) {
         $resultado = array();
         foreach ($valores as $klave => $valor) {
             //Lo transformo en recordset para mantener el ordenamiento en Chrome
             $resultado[] = array($klave, $valor);
         }
         echo $json->encode($resultado);
     } else {
         echo $json->encode($valores);
     }
 }
示例#5
0
文件: ci_efs.php 项目: emma5021/toba
 function conf__param_varios(toba_ei_formulario $form)
 {
     $tipo_ef = $this->get_tipo_ef();
     if (in_array($tipo_ef, array('ef_editable_numero', 'ef_editable_moneda', 'ef_editable_numero_porcentaje'))) {
         $form->set_descripcion('Definir los [wiki:Referencia/efs/numero parámetros del número]');
         $form->set_modo_descripcion(false);
     }
     $fila = $this->get_tabla()->get_fila($this->s__seleccion_efs_anterior);
     //--- Se desactivan los efs que no forman parte de la definicion
     $param = $this->get_definicion_parametros(false);
     $todos = $this->dependencia('param_varios')->get_nombres_ef();
     $efs_a_desactivar = array();
     foreach ($todos as $disponible) {
         if (!in_array($disponible, $param)) {
             $efs_a_desactivar[] = $disponible;
             if (isset($this->parametros[$disponible])) {
                 unset($this->parametros[$disponible]);
             }
         }
     }
     //-- Si es un popup no eliminar la carpeta (es cosmetico)
     if (!in_array('popup_item', $efs_a_desactivar)) {
         array_borrar_valor($efs_a_desactivar, 'popup_carpeta');
         array_borrar_valor($efs_a_desactivar, 'popup_carga_desc_estatico');
         //-- Si esta seteado el item, buscar la carpeta asociada
         if (isset($fila['popup_item']) && isset($fila['popup_proyecto'])) {
             $fila['popup_carpeta'] = toba_info_editores::get_carpeta_de_item($fila['popup_item'], $fila['popup_proyecto']);
         }
     }
     $this->dependencia('param_varios')->desactivar_efs($efs_a_desactivar);
     //--- Si es un popup y tiene carga estatica chequear el checkbox
     $tiene_clase = isset($fila['popup_carga_desc_clase']) && $fila['popup_carga_desc_clase'] != '';
     $tiene_include = isset($fila['popup_carga_desc_include']) && $fila['popup_carga_desc_include'] != '';
     if ($tiene_clase || $tiene_include) {
         $fila['popup_carga_desc_estatico'] = 1;
     }
     return $fila;
 }
示例#6
0
 static function get_lista_parametros()
 {
     $param = toba_ef_editable::get_lista_parametros();
     array_borrar_valor($param, 'edit_unidad');
     array_borrar_valor($param, 'edit_placeholder');
     return $param;
 }