imagemagick upload für Version 4.4?

Gesperrt
kasi
Beiträge: 14
Registriert: Fr 14. Nov 2003, 15:39
Kontaktdaten:

imagemagick upload für Version 4.4?

Beitrag von kasi »

Hallo!

Bei den Erweiterungen unter der Contenido-Seite gibt es ein Modul Imagemagickupload, dass die Eigenschaft hat, Bilder schon beim Hochladen in die Dateiverwaltung auf eine bestimmte Größe zu skalieren. Das Problem dabei ist, dass sich diese Erweituerung nur unter Version 4.2 einsetzen lässt. Ich habe schon versucht, das Formular an die Version 4.4 anzupassen, bin aber gescheitert.

Der Code der Erweiterung ist folgender:

Code: Alles auswählen

<?
// path to imagemagick convert executable...
$imagemagickexe = "/usr/bin/convert";

        //********** Fileupload with form *******
        echo "  <form name=upload action=\"$formaction\" method=post enctype=\"multipart/form-data\">";
 	        $sess->hidden_session();
		//$tmp_area = "upl";
		//echo "  <INPUT type=hidden name=area VALUE='$tmp_area'>";
		//echo "  <INPUT type=hidden name=action VALUE=\"30\">";
		echo "  <INPUT type=hidden name=upltype VALUE=\"$upltype\">";
        echo "  <TABLE cellpadding=$cellpadding cellspacing=$cellspacing border=$border>
                <TR><TD class=head colspan=3 width=600>$text</TD></TR>
                <TR><TD class=head>".$lngUpl["file"]."</TD><TD colspan=2 class=content>";
        echo "    <INPUT type=file size=50 maxlength=100000 name=\"userfile\" accept=\"*\">";
        echo "  </TD></TR><TR><TD class=head>".$lngUpl["size"]."</td><TD class=content colspan=2>";
        echo "  max x:<INPUT type=text name=sizex VALUE=\"\" SIZE=5> X ";
        echo "  max y:<INPUT type=text name=sizey VALUE=\"\" SIZE=5>".$lngUpl["sizehint"]."</TD></TR>";
		echo "  <TR><TD class=head>".$lngUpl["description"]."</TD><TD class=content>";
        echo "    <INPUT type=text name=description VALUE=\"\" SIZE=50>";
        echo "    <INPUT type=hidden name=uplfiletype VALUE=\"".$cfgClient[$client]["filetype"]["$upltype"]."\">";
        echo "  </TD><TD class=content>";
        echo "    <INPUT type=image src=\"".$cfgPathImg."but_ok.gif\" border=0>";
//	echo "      <a href=\"#\" class=action onclick=\"upload.submit()\">".$lngUpl["upload"]."</a>";
        echo "  </TD></TR></TABLE>";
        echo "  </form>";

        /////// Copy the temporary file and put it in DB
        $userfile_name = $HTTP_POST_FILES['userfile']['name'];
        $source = $HTTP_POST_FILES['userfile']['tmp_name'];
        $target = "$path". $userfile_name;

        if ($source != "none" AND $source != "") {
				// support for imagemagick
				if ( $sizex OR $sizey) {
					$cmd="$imagemagickexe -resize \"".$sizey."x".$sizey.">\" ".$HTTP_POST_FILES['userfile']['tmp_name']." ".$HTTP_POST_FILES['userfile']['tmp_name'];
					exec($cmd);
				}
				if ( !copy($source, $target) ) {
                        echo("failed to copy \"$source\" nach \"$target\"<br>\n");
                } else {
                       	$sql = "SELECT idupl FROM $cfgTab_upl WHERE idclient='$client' AND filename='$userfile_name' AND dirname='$upltype' AND filetype='".$cfgClient[$client]["filetype"]["$upltype"]."'";
			$db->query($sql);
			if ($db->next_record()) {
				$sql = "UPDATE $cfgTab_upl SET idclient='$client', filename='$userfile_name', dirname='$upltype', filetype='".$cfgClient[$client]["filetype"]["$upltype"]."', description='$description' WHERE idupl='".$db->f("idupl")."'";
				$db->query($sql);
			} else {
				$sql = "INSERT INTO $cfgTab_upl (idclient, filename, dirname, filetype, description) VALUES ('$client','$userfile_name','$upltype','".$cfgClient[$client]["filetype"]["$upltype"]."','$description')";
				$db->query($sql);
			}
//                         echo ("\"$source\" nach \"$target\" kopiert.<br>\n");
                }
//        } else {
//                echo "Keine Datei ausgewaehlt. <br><br>";
        }




?>

Leider weiß ich, wie ich die Eingabefelder ändern muss, um das Eingabeformular in die Dateiverwaltung einzugliedern, da sich die Variablen geändert haben.
Ich hatte vor, das Formular zum Skalieren eines Bildes neben das eigentliche Upload-Formular setzen und das Formular auch in das Rechtemanagement einzubinden.
In der Readme der Erweiterung steht folgendes:

Code: Alles auswählen

Readme: ImageMagick unterstützung beim Bilder-upload

BESCHREIBUNG:
-------------
mit dieser erweiterung können hochgeladene bilder vor dem abspeichern im cms
verkleinert werden. das seitenverhältnis des bildes bleibt dabei bestehen.
mann kann so z.b. bilder mit 1024x768 pixel hochladen und diese dann auf dem
server als 640x480 pixel bild abspeichern.

ACHTUNG:
--------
dieser workaround ist nur mit contenido 4.2 getestet. sollten bereits
änderungen an der datei upl_upload_form.inc.php vorgenommen worden sein,
bitte die datei nicht ersetzen sondern die unterschiedlichen zeilen manuell
hinzufügen.


INSTALLATION:
-------------
1. kopiere die datei upl_upload_form.inc.php ins verzeichnis contenido/inc/

2. in der datei upl_upload_form.inc.php den ggf. pfad zum imagemagick convert programm anpassen.
   default ist /usr/bin/convert (variable ist $imagemagickexe ganz am anfang der datei)

3. folgende einträge in der datei contenido/inc/cfg_language_de.inc.php hinzufügen:
$lngUpl["size"]	= "Abmessungen";
$lngUpl["sizehint"] = "x und y leer lassen = originalgroesse, x oder y = auf maximalwert verkleinern/vergroessern unter beibehalten des seitenverhältnisses.";
Half mit aber auch nicht recht viel weiter...

Weiß jemand eine Abhilfe?

Danke im Voraus

kasi
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ist wohl verloren gegangen...
ich häng das mal zusammen, falls wieder jemand nach imagemagik sucht.
-> http://www.contenido.de/forum/viewtopic ... highlight=
*** make your own tools (wishlist :: thx)
Gesperrt