コード例 #1
0
function mysql_mlookupGetEuEs($cSQL, $idioma = "")
{
    if ($idioma == "") {
        global $TIDIOMA_DEFECTO;
        $idioma = $TIDIOMA_DEFECTO;
    }
    $aDatos = mysql_query_registro($cSQL);
    if ($idioma == "eu") {
        return $aDatos[0] != "" ? $aDatos[0] : $aDatos[1];
    } else {
        return $aDatos[1] != "" ? $aDatos[1] : $aDatos[0];
    }
}
コード例 #2
0
/**
 * 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]}&amp;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;
}
コード例 #3
0
ファイル: datadriven.php プロジェクト: phyluis/librerias-php
function ddlib_edicion($aTabla, $cSQL = "", $aOpciones)
{
    /*
    
    aTabla
       acceso
       defecto
       verifica
       tipo
          separadortabla   
          separador 
          hidden        			
          fijo 
          htmldespues
    
          adjunto directorio
    	    imagen directorio 
    	     					
    		 lista   ->[lista]							
    		 listasql SQL
    		 listafuncion funcion_a_llamar						
    						$formatolista			
          checkbox	
          checkboxes  
          		utiliza el campo etiquetas		
         
          infofijo información
          infofuncion funcion 
          readonly                  			
    		 info		  
    
          htmlfijo HTML-bruto
          htmlfuncion funcion                				
    									
    		 nuevopassword size max 
    		
    		 textos cols=40 fila=8				
    		 cadena size=40 max=(size or 40)     				
    		
    		 -->sino un input=text					   			
    	 adicional
    	 atributos
    	 id
    	 clase
    	 				       
    cSQL
       si existe, es una modificación
       sino una inserción (registro nuevo 
    
    aOpciones
       titulo
       tituloSinHTML
       metodo
       enviar
       hidden
       tablaID
       tablaClase
       prefijoId (campo)
       volver   
    */
    $prefijoID = _ddlib_opcion($aOpciones, "prefijoID", "campo") . "_";
    // titulo
    $cResul = "";
    if (isset($aOpciones["titulo"])) {
        $cResul .= $aOpciones["tituloSinHTML"] == true ? $aOpciones["titulo"] : "<h2><span>{$aOpciones[titulo]}</span></h2>\n";
    }
    // Se usará mas adelante
    $cEnviar = por_defecto($aOpciones['enviar'], t("Enviar"));
    $cMetodo = por_defecto($aOpciones["metodo"], "post");
    $cEnctype = $cMetodo == "post" ? 'multipart/form-data' : 'application/x-www-form-urlencoded';
    $cResul .= "\n<form name='editar' method='{$cMetodo}' action='" . _ddlib_script() . "'  enctype='{$cEnctype}'  >\n";
    $cHidden = "";
    $aAfter = array();
    if (isset($aOpciones["hidden"])) {
        foreach ($aOpciones["hidden"] as $name => $value) {
            $cHidden .= "<input type='hidden' name='{$name}' value='{$value}' />\n";
        }
    }
    if (isset($aOpciones["siguienteAccion"])) {
        $temp = $aOpciones["siguienteAccion"];
        $cHidden .= "<input type='hidden' name='c' value='{$temp[0]}' />\n";
        $cHidden .= "<input type='hidden' name='a' value='{$temp[1]}' />\n";
        if (isset($temp[2])) {
            $cHidden .= "<input type='hidden' name='i' value='{$temp[2]}' />\n";
        }
    }
    // se revisan los campos para ver ocultos, obligatorios y demás
    foreach ($aTabla as $k => $dd) {
        list($tipo) = explode(" ", $dd["tipo"]);
        $tipo = strtolower($tipo);
        // campos hidden
        if ($tipo == "hidden") {
            $cHidden .= sprintf("<input type='hidden' value='%s' name='%s'/>", $dd["value"] || $aDatos[$dd["campo"]], $dd['campo']);
        }
        if ($tipo == "htmldespues") {
            $aAfter[] = por_defecto($dd["funcion"], substr($dd["tipo"], 12));
        }
        // Buscamos campos obligatorios
        if ($aCelda["acceso"] !== false and $aCelda["verifica"] == "no_vacio") {
            $lObligatorio = true;
        }
    }
    if ($lObligatorio) {
        $cResul .= "<div class='obligatorio'>*" . t("beherrezkoa") . "</div>";
    }
    // calcular la cabecera (pie incluido ) y luego el cuerpo.
    $atributosTabla = "class='" . _ddlib_opcion($aOpciones, "tablaClase", "edicion") . "'";
    $ultimaTabla = "";
    // obtener los valores
    if ($cSQL != "") {
        /* en un modificación los valores se obtienen por una consulta SQL */
        $aDatos = mysql_query_registro($cSQL);
    } else {
        /* en una adición de obtienen con los valores por defecto */
        $aDatos = array();
        foreach ($aTabla as $dd) {
            if (isset($dd["campo"])) {
                $aDatos[$dd["campo"]] = isset($dd["defecto"]) ? $dd["defecto"] : "";
            } else {
                if (is_array($dd["campos"]) && is_array($dd["defectos"])) {
                    foreach ($dd["campos"] as $campo => $tipo) {
                        $aDatos[$campo] = $dd["defectos"]["campo"];
                    }
                }
            }
        }
    }
    // empieza el bucle para dibujar los valores
    $nCont = 1;
    $nTabla = 1;
    if ($aDatos) {
        $cTable = "";
        foreach ($aTabla as $k => $dd) {
            if ($dd["acceso"] === false) {
                continue;
            }
            // obtener el tipo de campo
            $aParametros = explode(" ", $dd["tipo"]);
            $cTipo = strtolower($aParametros[0]);
            switch ($cTipo) {
                // casos especiales
                case "htmldespues":
                case "hidden":
                case "fijo":
                    break;
                    // separador
                // separador
                case "separadortabla":
                    if ($ultimaTabla) {
                        $cTabla .= "\n</table>";
                    }
                    $ultimaTabla = por_defecto($aOpciones["tablaID"], "tabla-{$nCont}");
                    $nTabla++;
                    $cTabla .= "\n<table {$atributosTabla} id='{$ultimaTabla}'>\n";
                case "separador":
                    if (!$ultimaTabla) {
                        $ultimaTabla = por_defecto($aOpciones["tablaID"], "tabla-{$nCont}");
                        $cTabla .= "\n<table {$atributosTabla} id='{$ultimaTabla}'>\n";
                    }
                    $atributos = _ddlib_atributos($dd, "{$prefijoID}{$nCont}");
                    $cTabla .= "\n<tr class='separador'>\n";
                    $cTabla .= "<th colspan='2' {$atributos}>{$dd[cabecera]}</th></tr>\n";
                    break;
                    // adjuntos e imagenes
                // adjuntos e imagenes
                default:
                    if ($visualizar = ddlib_editarCampo($dd, $aDatos, "{$prefijoID}{$nCont}")) {
                        if (!$ultimaTabla) {
                            $ultimaTabla = por_defecto($aOpciones["tablaID"], "tabla-{$nCont}");
                            $cTabla .= "\n<table {$atributosTabla} id='{$ultimaTabla}'>\n";
                        }
                        $obligatorio = $dd["verifica"] == "no_vacio" ? " class='obligatorio'" : "";
                        $adicional = $dd["adicional"] ? "<span class='adicional'>{$dd[adicional]}</span>" : "";
                        if (isset($dd["campos"])) {
                            // los campos multiples no tienen etiqueta
                            $cTabla .= "\n <tr><th {$obligatorio}>{$dd[cabecera]}</th>";
                        } else {
                            $cTabla .= "\n <tr><th><label for='{$prefijoID}{$nCont}' {$obligatorio}>{$dd[cabecera]}</label></th>";
                        }
                        $cTabla .= "\n     <td>{$visualizar} {$adicional}</td></tr>";
                    }
            }
            $nCont++;
        }
        // fin del bucle foreach del dd
        // botones de Enviar y Volver.
        $cTabla .= "<tr><td class='botones-enviar' colspan='2'><input type='submit' value='{$cEnviar}' class='boton' />";
        if ($aOpciones["volver"] === true) {
            $cTabla .= "<a href='" . strtr($_SERVER["HTTP_REFERER"], array("&" => "&amp;")) . "' class='boton'>Volver</a>";
        }
        $cTabla .= "</td></tr>\n";
    }
    $cResul .= $cTabla . "</table>\n" . $cHidden . "\n" . "</form>\n";
    foreach ($aAfter as $funcion) {
        $cResul .= call_user_func($funcion, $aDatos);
    }
    return $cResul;
}