/** * Función que construye la SQL para insertar o actualizar los datos y los guarda. */ function datuakGorde($cTabla, $cWhere, $aEdicion, $aMensajes = NULL) { $cError = ""; $aRet = ""; // Primero verificamos las condiciones de cada campo foreach ($aEdicion as $aDatos) { $cError .= isset($aDatos["verifica"]) ? dd_verificaCampo($aDatos) : ""; } // Revisar los errores if ($cError != "") { if (!is_null($aMensajes) and isset($aMensajes["gaizki"])) { return mensajes($cError, "gaizki"); } return FALSE; } $aSQL = sql_crear($cWhere ? "update" : "insert", $cTabla, $cWhere); // al terminar la verificación revisar los errores foreach ($aEdicion as $aDatos) { $aParametros = explode(" ", $aDatos["tipo"]); switch (strtolower($aParametros[0])) { case "hidden": case "info": case "codigodirecto": case "infofuncion": case "separador": case "verificapassword": case "readonly": // case "html": quitado por Roger...PELMA!! break; case "adjunto": $lPendiente = true; break; case "imagen": case "irudia": if ($_REQUEST[$aDatos["campo"] . "_EZABATU"] == '1') { sql_add($aSQL, $aDatos["campo"], "", "cadena"); } else { $lPendiente = true; } break; case "nuevopassword": if ($_REQUEST[$aDatos["campo"]] != "") { if (isset($aParametros[3]) and $aParametros[3] == "md5") { sql_add($aSQL, $aDatos["campo"], md5($_REQUEST[$aDatos["campo"]]), "cadena"); } else { sql_add_request($aSQL, $aDatos["campo"], "cadena"); } } break; case "fijo": sql_add($aSQL, $aDatos["campo"], $aDatos["valor"], $aParametros[1]); break; case "listafuncion": sql_add_request($aSQL, $aDatos["campo"], $aParametros[2]); break; case "html": // añadido por RO 05/05/2010 if (isset($aDatos["campo"])) { sql_add_request($aSQL, $aDatos["campo"], $aParametros[0]); } elseif (isset($aDatos["campos"])) { foreach ($aDatos["campos"] as $tcampo => $tipo) { sql_add_request($aSQL, $tcampo, $tipo); } } break; default: sql_add_request($aSQL, $aDatos["campo"], $aParametros[0]); } } // si hemos recogido campos, salvamos (puede ser un caso de solo imágenes ) if (sql_esvacia($aSQL)) { $lResul = true; } else { $lResul = mysql_query(sql_sql($aSQL)); } if ($lResul and $lPendiente) { // hacemos una seguna pasada para la imágenes, los adjuntos y demás. // preparamos la nueva ID if ($cWhere == "") { $mID = mysql_insert_id(); $campoID = mysql_campoClave($cTabla); $aSQL = sql_crear("update", $cTabla, "{$campoID}={$mID}"); } else { $campoID = mysql_campoClave($cTabla); $mID = mysql_mlookup("SELECT {$campoID} FROM {$cTabla} WHERE {$cWhere}"); $aSQL = sql_crear("update", $cTabla, $cWhere); } // ahorita buscamos imágenes y demás foreach ($aEdicion as $aDatos) { $aParametros = explode(" ", $aDatos["tipo"]); $cTipo = strtolower($aParametros[0]); $cFile = $aDatos["campo"]; if (($cTipo == "adjunto" or $cTipo == "imagen" or $cTipo == "irudia") and isset($_FILES[$cFile]) and $_FILES[$cFile]["name"] and isset($aParametros[1])) { if (isset($aParametros[2])) { $aTempFile = extrae_ExtensionNombre($_FILES[$cFile]["name"]); $cNuevoNombre = strtr($aParametros[2], array("%i" => $mID, "%n" => $aTempFile["nombre"], "%e" => $aTempFile["ext"])); } else { $cNuevoNombre = $_FILES[$cFile]["name"]; } if (!move_uploaded_file($_FILES[$cFile]["tmp_name"], $aParametros[1] . "/" . $cNuevoNombre)) { echo sprintf("<div class='gaizkiTxiki'>Error al subir el fichero (campo %s). ¿tiene más de %sbytes?</div>\n", $aDatos["campo"], ini_get("upload_max_filesize")); } else { sql_add($aSQL, $aDatos["campo"], $cNuevoNombre, "cadena"); // ahora vemos si hay que hacer thumbnail if (($cTipo == "imagen" or $cTipo == "irudia") and isset($aDatos["thumbnail"])) { $aThumb = explode(" ", $aDatos["thumb"]); switch (count($aThumb)) { case "0": break; case "1": $aThumb[1] = $aThumb[0]; case "2": $aThumb[2] = 75; case "3": $aThumb[3] = "thumb"; case "4": $aThumb[4] = "nocrop"; default: crearThumbnail($aParametros[1], $cNuevoNombre, $aThumb[3], $aThumb[0], $aThumb[1], $aThumb[2], $aThumb[4]); } } // ahora vermos si hay que ajustar la imagen if (($cTipo == "imagen" or $cTipo == "irudia") and isset($aDatos["ajustar"])) { $aThumb[0] = (int) $aDatos["ajustar"]; mImageResize($aParametros[1] . "/" . $cNuevoNombre, $aParametros[1] . "/" . $cNuevoNombre, "KEEP_PROPORTIONS_ON_BIGGEST", $aThumb[0]); } } } } // grabamos si es que hemos podido mover if (!sql_esvacia($aSQL)) { mysql_query(sql_sql($aSQL)); } } // DEBUG if (!$lResul) { echo "<h3>Error</h3>" . sql_sql($aSQL) . "<br>" . mysql_error(); } if (!is_null($aMensajes)) { if ($lResul) { echo "<div class='ondo'>" . $aMensajes["ondo"] . "</div>\n"; } else { echo "<div class='gaizki'>" . $aMensajes["gaizki"] . "<p>SQL:" . sql_sql($aSQL) . "</p><p>MYSQL:" . mysql_error() . "</p></div>\n"; } } return $lResul; }
function ddlib_guardarAdjuntos($cTabla, $cWhere, $aEdicion) { // hacemos una seguna pasada para la imágenes, los adjuntos y demás. // preparamos la nueva ID if ($cWhere == "") { $mID = mysql_insert_id(); $campoID = mysql_campoClave($cTabla); $aSQL = sql_crear("update", $cTabla, "{$campoID}={$mID}"); } else { $campoID = mysql_campoClave($cTabla); $mID = mysql_mlookup("SELECT {$campoID} FROM {$cTabla} WHERE {$cWhere}"); $aSQL = sql_crear("update", $cTabla, $cWhere); } // ahorita buscamos imágenes y demás foreach ($aEdicion as $aDatos) { $aParametros = explode(" ", $aDatos["tipo"]); $cTipo = strtolower($aParametros[0]); $cFile = $aDatos["campo"]; if ($cTipo == "adjunto" || $cTipo == "imagen" || $cTipo == "irudia" and isset($_FILES[$cFile]) and $_FILES[$cFile]["name"] and isset($aParametros[1])) { if (isset($aParametros[2])) { // mascara para guardar el nombre del nuevo fichero $aTempFile = extrae_ExtensionNombre($_FILES[$cFile]["name"]); $cNuevoNombre = strtr($aParametros[2], array("%i" => $mID, "%n" => $aTempFile["nombre"], "%e" => $aTempFile["ext"])); } else { $cNuevoNombre = $_FILES[$cFile]["name"]; } if (!move_uploaded_file($_FILES[$cFile]["tmp_name"], $aParametros[1] . "/" . $cNuevoNombre)) { echo sprintf("<div class='gaizkiTxiki'>Error al subir el fichero (campo %s). ¿tiene más de %sbytes?</div>\n", $aDatos["campo"], ini_get("upload_max_filesize")); } else { sql_add($aSQL, $aDatos["campo"], $cNuevoNombre, "cadena"); // ahora vemos si hay que hacer thumbnail if ($cTipo == "imagen" || $cTipo == "irudia") { if (isset($aDatos["thumbnail"])) { $aThumb = explode(" ", $aDatos["thumbnail"]); switch (count($aThumb)) { case "0": break; case "1": $aThumb[1] = $aThumb[0]; case "2": $aThumb[2] = 75; case "3": $aThumb[3] = "thumb"; case "4": $aThumb[4] = "nocrop"; default: crearThumbnail($aParametros[1], $cNuevoNombre, $aThumb[3], $aThumb[0], $aThumb[1], $aThumb[2], $aThumb[4]); } } // ahora vermos si hay que ajustar la imagen if (isset($aDatos["ajustar"])) { $aThumb[0] = (int) $aDatos["ajustar"]; mImageResize($aParametros[1] . "/" . $cNuevoNombre, $aParametros[1] . "/" . $cNuevoNombre, "KEEP_PROPORTIONS_ON_BIGGEST", $aThumb[0]); } } } } } // grabamos si es que hemos podido mover if (!sql_esvacia($aSQL)) { mysql_query(sql_sql($aSQL)); } }