function geraDados($s, $s1, $s2, $s3, $s4, $s5, $s6, $s7, $s8, $s9, $s10, $s11, $s12, $s13, $s14, $s15, $s16, $s17) { $s = strtoupper($s); $s4 = strtoupper($s4); if (strlen($s) != $this->TAM_COD_EMP) { return "Erro: tamanho do codigo da empresa diferente de 26 posições."; } if (strlen($s4) != $this->TAM_CHAVE) { return "Erro: tamanho da chave da chave diferente de 16 posições."; } if (strlen($s1) < 1 || strlen($s1) > 8) { return "Erro: número do pedido inválido."; } if (is_numeric($s1)) { $s1 = str_pad($s1, 8, '0', STR_PAD_LEFT); } else { return "Erro: numero do pedido não é numérico."; } if (strlen($s2) < 1 || strlen($s2) > 11) { return "Erro: valor da compra inválido."; } if (strstr($s2, ',')) { $s20 = substr($s2, -2); if (!is_numeric($s20)) { return "Erro: valor decimal não é numérico."; } if (strlen($s20) != 2) { return "Erro: valor decimal da compra deve possuir 2 posições após a virgula."; } $s2 = substr($s2, 0, strlen($s2) - 3) . $s20; } else { if (!is_numeric($s2)) { return "Erro: valor da compra não é numérico."; } if (strlen($s2) > 8) { return "Erro: valor da compra deve possuir no máximo 8 posições antes da virgula."; } $s2 = $s2 . "00"; } $s2 = str_pad($s2, 10, '0', STR_PAD_LEFT); $s6 = trim($s6); if ($s6 == "02" && $s6 == "01" && $s6 == "") { return "Erro: código de inscrição inválido."; } if ($s7 == "" && !is_numeric($s7) && strlen($s7) > 14) { return "Erro: número de inscrição inválido."; } if ($s10 == "" && (!is_numeric($s10) || strlen($s10) != 8)) { return "Erro: cep inválido."; } if ($s13 == "" && (!is_numeric($s13) || strlen($s13) != 8)) { return "Erro: data de vencimento inválida."; } if (strlen($s15) > 60) { return "Erro: observação adicional 1 inválida."; } if (strlen($s16) > 60) { return "Erro: observação adicional 2 inválida."; } if (strlen($s17) > 60) { return "Erro: observação adicional 3 inválida."; } else { function corta($str, $n) { return str_pad(substr($str, 0, $n), $n, ' ', STR_PAD_RIGHT); } $s3 = corta($s3, 40); $s5 = corta($s5, 30); $s6 = corta($s6, 2); $s7 = corta($s7, 14); $s8 = corta($s8, 40); $s9 = corta($s9, 15); $s10 = corta($s10, 8); $s11 = corta($s11, 15); $s12 = corta($s12, 2); $s13 = corta($s13, 29); $s14 = corta($s14, 60); $s15 = corta($s15, 60); $s16 = corta($s16, 60); $s17 = corta($s17, 60); $s18 = $this->Algoritmo($s1 . $s2 . $s3 . $s5 . $s6 . $s7 . $s8 . $s9 . $s10 . $s11 . $s12 . $s13 . $s14 . $s15 . $s16 . $s17, $s4); $s19 = $this->Algoritmo($s . $s18, $this->CHAVE_ITAU); $s19 = $this->Converte($s19); return $s19; } }
/** * Tabla para editar/añdir un registro completo */ function tablaEdicion($cTitulo, $aDatos, $cSQL = "", $aHidden = "", $cEnviar = "", $aItzuli = "") { $aAfter = array(); $cResul = $cTitulo ? "<h2><span>{$cTitulo}</span></h2>\n" : ""; $cResul .= "\n<form name='editar' method='post' action='" . mScript() . "' enctype='multipart/form-data' >\n<div>"; // Buscamos el primero campo obligatorio. foreach ($aDatos as $fila) { if ($fila["acceso"] !== false and isset($fila["verifica"]) and $fila["verifica"] == "no_vacio") { $cResul .= "<div class='obligatorio'>*" . t("beherrezkoa") . "</div>"; break; } } $cHidden = ""; if (is_array($aHidden)) { foreach ($aHidden as $name => $value) { $cHidden .= "<input type='hidden' name='{$name}' value='{$value}' />\n"; } } $cTabla = "<table class='edicion'>\n"; if ($cSQL != "") { /* en un modificación los valores se obtienen por una consulta SQL */ $lerroa = mysql_query_registro($cSQL); } else { /* en una adición de obtienen con los valores por defecto */ $lerroa = array(); foreach ($aDatos as $fila) { $lerroa[$fila["campo"]] = isset($fila["defecto"]) ? $fila["defecto"] : ""; } } $nCont = 1; if ($lerroa) { foreach ($aDatos as $fila) { if ($fila["acceso"] === false) { continue; } $aParametros = explode(" ", $fila["tipo"]); $cTipo = strtolower($aParametros[0]); if ($cTipo != "hidden" and $cTipo != "separador" and $cTipo != "codigodirecto" and $cTipo != "fijo") { $cTabla .= "\n<tr>\n"; if (isset($fila["verifica"]) and $fila["verifica"] == "no_vacio") { $cTabla .= "<th><label for='campo_{$nCont}' class='obligatorio'>" . $fila["cabecera"] . "*</label></th>\n"; } else { $cTabla .= "<th><label for='campo_{$nCont}'>" . $fila["cabecera"] . "</label></th>\n"; } $cTabla .= "<td>"; } $generaTDTR = true; switch ($cTipo) { /* @TODO Traducir literales */ case "fijo": break; case "adjunto": if ($lerroa[$fila["campo"]]) { $cTabla .= "<a href='" . $aParametros[1] . "/" . $lerroa[$fila["campo"]]; $cTabla .= "' > " . corta($lerroa[$fila["campo"]], 50) . "</a><br>"; $cTabla .= t("Cambiar fichero adjunto: ") . "<input type='file' name='" . $fila["campo"] . "' class='botoiak' />"; } else { $cTabla .= t("Adjuntar nuevo archivo: ") . "<input type='file' name='" . $fila["campo"] . "' class='botoiak' />"; } $fila["adicional"] .= ($fila["adicional"] ? "<br/>" : "") . "(MAX: " . ini_get("upload_max_filesize") . "bytes)"; break; case "imagen": case "irudia": if ($lerroa[$fila["campo"]]) { $cTabla .= "<img src='./" . $aParametros[1] . "/" . $lerroa[$fila["campo"]] . "' class='irudia' />"; $cTabla .= t("Cambiar imagen: ") . "<input type='file' name='" . $fila["campo"] . "' class='botoiak' />\n"; if ($fila["adicional"]) { $cTabla .= "<span class='adicional'>" . $fila["adicional"] . "</span>"; } $cTabla .= "<br/>" . t("Borrar imagen: ") . "<input type='checkbox' name='{$fila[campo]}_EZABATU' value='1' />"; } else { $cTabla .= t("Sin imagen") . "<br/>"; $cTabla .= t("Nueva imagen: ") . "<input type='file' name='" . $fila["campo"] . "' class='botoiak' />"; } break; case "separador": $cTabla .= "\n<tr>\n"; $cTabla .= "<th colspan='2' class='separador'>" . $fila["cabecera"] . "</th></tr>\n"; $generaTDTR = false; break; case "codigodirecto": $aAfter[] = $fila["funcion"]; break; case "hidden": $cHidden .= "<input type='hidden' value='" . (isset($fila["value"]) ? $fila["value"] : $lerroa[$fila["campo"]]) . "' name='" . $fila["cabecera"] . "' />"; $generaTDTR = false; break; case "listavalores": case "lista": $cTabla .= "<select name='" . $fila["campo"] . "' id='campo_{$nCont}' >\n"; if (isset($fila["valoresAdicionales"])) { foreach ($fila["valoresAdicionales"] as $adicionalID => $adicionalValor) { $cTabla .= "<option value='" . $adicionalID . "'" . ($adicionalID == $lerroa[$fila["campo"]] ? " SELECTED " : "") . ">"; $cTabla .= $adicionalValor . "</option>\n"; } } $aLista = explode("|", substr($fila["tipo"], $cTipo == "lista" ? 6 : 13)); $nParametros = 0; while ($aLista[$nParametros]) { if ($cTipo == "lista") { $cTabla .= "<option value='{$nParametros}'" . ($lerroa[$fila["campo"]] == $nParametros ? " SELECTED " : "") . " >"; } else { $cTabla .= "<option value='" . $aLista[$nParametros] . "'"; $cTabla .= ($lerroa[$fila["campo"]] == $aLista[$nParametros] ? " SELECTED " : "") . " >"; } $cTabla .= $aLista[$nParametros] . "</option>\n"; $nParametros++; } $cTabla .= "</select>\n"; break; case "listafuncion": case "listafuncioncadena": case "listasql": $cTabla .= "<select name='" . $fila["campo"] . "' id='campo_{$nCont}' " . (isset($fila["clase"]) ? " class='" . $fila["clase"] . "'" : "") . ">\n"; if (isset($fila["valoresAdicionales"])) { foreach ($fila["valoresAdicionales"] as $adicionalID => $adicionalValor) { $cTabla .= "<option value='" . $adicionalID . "'"; if (substr($adicionalValor, 0, 3) == "---") { $cTabla .= " disabled='disabled' "; } if ($adicionalID == $lerroa[$fila["campo"]]) { $cTabla .= " selected='selected' "; } $cTabla .= ">" . $adicionalValor . "</option>\n"; } } if ($cTipo == "listasql") { $rsTemporal = mysql_query(substr($fila["tipo"], 8)); while ($lerroaTemp = mysql_fetch_array($rsTemporal)) { $cTabla .= "<option value='" . $lerroaTemp[0] . "'" . ($lerroaTemp[0] == $lerroa[$fila["campo"]] ? " SELECTED " : ""); $cTabla .= " >" . $lerroaTemp[1] . "</option>\n"; } mysql_free_result($rsTemporal); } else { $aTemporal = call_user_func($aParametros[1]); foreach ($aTemporal as $clave => $valor) { $cTabla .= "<option value='" . $clave . "'" . ($clave == $lerroa[$fila["campo"]] ? " SELECTED " : ""); $cTabla .= " >" . $valor . "</option>\n"; } } $cTabla .= "</select>\n"; break; case "checkbox": $cTabla .= "<input type='checkbox' id='campo_{$nCont}' name='" . $fila["campo"] . "'"; $cTabla .= ($lerroa[$fila["campo"]] == 1 ? " checked " : "") . " value='1' />"; break; case "info": $cTabla .= "<input type='text' name='" . $fila["campo"] . "' value='" . $lerroa[$fila["campo"]] . "'"; $cTabla .= " disabled='disabled' class='campoInformativo' id='campo_{$nCont}' />"; break; case "html": if (isset($aParametros[2])) { $cTabla .= call_user_func($aParametros[1], $lerroa[$aParametros[2]]); } else { $cTabla .= call_user_func($aParametros[1], $lerroa); } break; case "infofuncion": $cTabla .= "<input type='text' "; if (isset($fila['campo'])) { $cTabla .= " name='" . $fila["campo"] . "'"; } if (isset($aParametros[2])) { $cTabla .= " value='" . call_user_func($aParametros[1], $lerroa[$aParametros[2]]) . "'"; } else { $cTabla .= " value='" . call_user_func($aParametros[1], $lerroa) . "'"; } $cTabla .= " disabled='disabled' class='campoInformativo' id='campo_{$nCont}' />"; break; case "nuevopassword": case "verificapassword": $cTabla .= "<input type='password' id='campo_{$nCont}' value='' name='" . $fila["campo"] . "'"; if (count($aParametros) == 1) { $cTabla .= " size='" . $aParametros[1] . "' maxlength='" . $aParametros[1] . "'/>"; } elseif (count($aParametros) == 2) { $cTabla .= " size='" . $aParametros[1] . "' maxlength='" . $aParametros[2] . "'/>"; } else { $cTabla .= " >"; } break; case "texto": if (defined("FCKEDITOR") and $aParametros[1] > 4) { $oFCKeditor = new FCKeditor($fila["campo"]); $oFCKeditor->BasePath = FCKEDITOR; $oFCKeditor->Value = $lerroa[$fila["campo"]]; $oFCKeditor->Height = $aParametros[1] * 16; $oFCKeditor->Width = $aParametros[2] * 6; $cTabla .= $oFCKeditor->Create(); $generaTDTR = false; } else { $cTabla .= "<textarea id='campo_{$nCont}' {$fila[WYSIWYG]} rows='" . $aParametros[1] . "' cols='" . $aParametros[2] . "' name='" . $fila["campo"] . "'>"; $cTabla .= $lerroa[$fila["campo"]] . "</textarea>"; } break; case "readonly": $cTabla .= ddlib_etiqueta_html("input", array("type" => "text", "id" => "campo_{$nCont}", "value" => $lerroa[$fila["campo"]], "name" => $fila["campo"], "readonly" => 'readonly', "size" => $aParametros[1])); break; case "cadena": $cTabla .= "<input type='text' id='campo_{$nCont}' value='" . $lerroa[$fila["campo"]] . "' name='" . $fila["campo"] . "'"; switch (count($aParametros)) { case 2: $cTabla .= " size='" . $aParametros[1] . "' maxlength='" . $aParametros[1] . "'/>"; break; case 3: $cTabla .= " size='" . $aParametros[1] . "' maxlength='" . $aParametros[2] . "'/>"; break; default: $cTabla .= " />"; break; } break; case "fecha": $cTabla .= sprintf("<input type='text' id='campo_{$nCont}' value='%s' name='%s' size='8' onclick=\"mostrarCalendario('campo_{$nCont}','1','2010')\">", $lerroa[$fila["campo"]], $fila["campo"]) . "<div id='calendario' style='visibility:hidden;position:relative;' class='arrastrable' ></div>"; break; default: $cTabla .= "<input type='text' id='campo_{$nCont}' value='" . $lerroa[$fila["campo"]] . "' name='" . $fila["campo"] . "'/>"; break; } if ($generaTDTR) { // dibujar la información adicional si procede if ($fila["adicional"] and $cTipo != "imagen" and $cTipo != "irudia") { $cTabla .= "<span class='adicional'>" . $fila["adicional"] . "</span>"; } $cTabla .= "</td></tr>\n"; } $nCont++; } // del foreach // botones de Enviar y Volver. $cTabla .= "<tr><td class='botoiak' colspan='2'><input type='submit' value='{$cEnviar}' class='botoiak' />"; if ($aItzuli) { $cTabla .= "<input type='reset' value ='" . t("Volver") . "' onclick=\"location.href='?c={$aItzuli[c]}&a={$aItzuli[a]}'\" class='botoiak' />"; } $cTabla .= "</td></tr>\n"; $cResul .= $cHidden . "\n" . $cTabla; } $cResul .= "</table>\n"; $cResul .= "</div></form>\n"; foreach ($aAfter as $i => $c) { $cResul .= call_user_func($c, $lerroa); } return $cResul; }
function ddlib_editarCampo(&$dd, &$aDatos, $id) { $aParametros = explode(" ", $dd["tipo"]); $tipo = strtolower($aParametros[0]); $campo = ddlib_obtenerCampo(&$dd, $aDatos); // atributos por defecto $defectos = array("adjunto" => array("clase" => "boton"), "infofuncion" => array("clase" => "campo-informativo"), "readonly" => array("clase" => "campo-informativo"), "info" => array("clase" => "campo-informativo")); $atributos = _ddlib_atributos($dd, $id, $defectos[$tipo]); switch ($tipo) { case "hidden": case "fijo": case "htmldespues": case "separadortabla": case "separador": return ""; case "adjunto": if ($dd["maximo"]) { $maximo = min($dd["maximo"], ini_get("upload_max_filesize")); } else { $maximo = ini_get("upload_max_filesize"); } $adicional = "<span class='tamanno-max'>(MAX: {$maximo} bytes)</span>"; if ($campo) { $visualizar = "<a href='{$aParametros[1]}/{$campo}'>"; $visualizar .= corta($campo, 50) . "</a><br>"; $visualizar .= t("Cambiar fichero adjunto: ") . "<input type='file' {$atributos} file='{$maximo}'/>{$adicional}"; $visualizar .= "<br>" . "Borrar adjunto: " . "<input type='checkbox' name='{$dd[campo]}_BORRAR' value='1' />"; } else { $visualizar = t("Adjuntar nuevo archivo: ") . "<input type='file' {$atributos} />{$adicional}"; } return $visualizar; case "imagen": case "irudia": if ($campo) { $visualizar = "<img src='./{$aParametros[1]}/{$campo}' class='irudia' /><br/>"; $visualizar .= t("Cambiar imagen: ") . "<input type='file' {$atributos} />\n</br/>"; $visualizar .= t("Borrar imagen: ") . "<input type='checkbox' name='{$dd[campo]}_BORRAR' value='1' />"; } else { $visualizar .= t("Sin imagen") . "<br/>"; $visualizar .= t("Nueva imagen: ") . "<input type='file' {$atributos} />"; } return $visualizar; // listas // listas case "lista": case "listavalores": case "listasql": case "listafuncion": $visualizar = "<select {$atributos}>\n"; //@TODO $visualizar .= _ddlib_option_adicionales ( $dd, $campo ); switch ($tipo) { case "listasql": $lista = mysql_mlistaClavesSQL(substr($dd["tipo"], 8)); break; case "lista": $lista = $dd["lista"]; break; case "listavalores": foreach ($dd["lista"] as $valor) { $lista[$valor] = $valor; } break; case "listafuncion": $lista = call_user_func($aParametros[1]); } switch ($dd["formatolista"]) { case "checkbox": // @TODO no funciona CHECKBOX foreach ($lista as $value => $opcion) { $selected = $value == $campo ? " checked='checked' " : ""; $visualizar .= "<input {$atributos} type='checkbox' value='{$value}'{$selected}/>{$opcion}\n"; } case "radio": // @TODO no funciona RADIO foreach ($lista as $value => $opcion) { $selected = $value == $campo ? " checked='checked' " : ""; $visualizar .= "<input {$atributo} type='radio' value='{$value}'{$selected}/>{$opcion}\n"; } default: $visualizar = "<select {$atributos}>\n" . _ddlib_option_adicionales($dd, $campo); foreach ($lista as $value => $opcion) { $selected = $value == $campo ? " selected='selected' " : ""; $visualizar .= "<option value='{$value}'{$selected}>{$opcion}</option>\n"; } $visualizar .= "</select>\n"; } return $visualizar; case "checkbox": $checked = $campo ? " checked='checked' " : ""; return "<input type='checkbox' {$atributos} {$checked} value='1' />"; case "checkboxes": if (isset($dd["campos"]) && isset($dd["etiquetas"])) { $nCont = 1; foreach ($dd["campos"] as $tcampo => $tipo) { $atributos = $aDatos[$tcampo] ? " checked='checked' " : ""; $atributos .= " name='{$tcampo}' id='{$id}-{$nCont}' {$dd[atributos]} value='1'"; $cRet .= "<input type='checkbox' {$atributos}> "; $cRet .= "<label for='{$id}-{$nCont}'>" . $dd["etiquetas"][$tcampo] . "</label> \n"; $nCont++; } return $cRet; } return ""; // funciones informativas // funciones informativas case "infofijo": case "infofuncion": $campo = $tipo == "infofijo" ? substr($dd["tipo"], 9) : call_user_func($aParametros[1], $aDatos); case "readonly": case "info": return "<input type='text' {$atributos} value='{$campo}' disabled='disabled' >"; break; case "htmlfijo": return substr($dd["tipo"], 9); case "html": case "htmlfuncion": return call_user_func($aParametros[1], $aDatos); // contraseña // contraseña case "nuevopassword": case "verificapassword": $size = $aParametros[1] or $size = 40; $max = $aParametros[2] or $max = $size; return "<input type='password' value='' {$atributos} size='{$size}' maxlength='{$max}'>"; // textos y cadenas // textos y cadenas case "texto": $rows = $aParametros[2] or $rows = 8; $cols = $aParametros[1] or $cols = 40; return "<textarea {$atributos} rows='{$rows}' cols='{$cols}'>{$campo}</textarea>"; case "cadena": $size = $aParametros[1] or $size = 40; $max = $aParametros[2] or $max = $size; return "<input type='text' {$atributos} value='{$campo}' size='{$size}' maxlenght='{$max}' />"; // los campos fecha se generan mediante el atributo. // los campos fecha se generan mediante el atributo. default: return "<input type='text' {$atributos} value='{$campo}'/>"; } return $visualizar; }