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; }
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}"); } }
/** * 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); } }
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; }
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; }