Hallo Ortwin,
habe am code eigentlich nix verändert, es ist der von dem tread
http://www.contenido.org/forum/viewtopi ... sc&start=0
Aber hier nochmal der ganze output:
Code: Alles auswählen
<?
// Bildergalerie
// Imageresize der Thumbs über ImageMagick *ODER* GD
// Wasserzeichen einbauen und große Bilder in gleiche Größen verkleinern
// Versenden von Bildern als Mail
// Version: 25.03.2005
//
// Author: Large Green Wood vgl. http://www.contenido.de/front_dev/upload/1ImageGal.txt
// Modified by: Robert Strouhal www.clearcreative.de
// Modified by: Daniel Buhmann www.cyberdan.de
// Modified by: Philipp Kölbl philipp(at)philk.de (Links zum vorwärts und rückwärts blättern,
// Mailversand) & Oliver Abeltshauser
//
echo "<p>\n";
// ANFANG OUTPUT
$imagedir="CMS_VALUE[2]";
$thumbnails="CMS_VALUE[3]";
$imagetypes=explode(";","CMS_VALUE[4]");
$rows="CMS_VALUE[6]";
$cols="CMS_VALUE[5]";
$thb_x_size="CMS_VALUE[7]";
$thb_y_size="CMS_VALUE[8]";
$image_idcat="CMS_VALUE[0]";
$image_idside="CMS_VALUE[1]";
$im_path="CMS_VALUE[9]";
$blaettern="CMS_VALUE[10]";
//-- config ende -------------------------------------
function is_image($filename,$typearray) {
reset($typearray);
while($val=each($typearray)) {
if (strstr($filename,$val[value])!==false) {
return true;
}
}
}
// verkleinert ein Bild auf die angegebene Breite (bei Querformat) oder Höhe (bei Hochformat)
// Seitenverhältnisse werden beibehalten
function resizeImageGD($sourceFile, $targetFile, $newwidth=50, $newheight=50){
$source = ImageCreateFromJpeg($sourceFile);
$width = ImageSx($source);
$height = ImageSy($source);
if ($width > $height){ // Querformat
$newheight = $height*($newwidth/$width);
}else{ // Hochformat
$newwidth = $width*($newheight/$height);
}
$target = ImageCreateTrueColor($newwidth,$newheight);
// ÄNDERUNG vgl. Forums-Beitrag imagecopyresized ($target, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
imagecopyresampled ($target, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
ImageJPEG($target,$targetFile,100);
}
//-- functions ende ----------------------------------
if (!isset($mmstart)) {
$mmstart=0;
}
$handle=opendir($imagedir);
// Anzeige eines Bildes oder Übersicht?
if ($subfile!="") {
if ($mail=="yes") {
// Mail versenden
if ($image_idcat!=0)
$img_url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcatside=$image_idcat&subfile=$subfile");
else
$img_url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcat=$idcat&idart=$idart&idside=$idside&subfile=$subfile");
$betreff = "Sie haben ein Bild erhalten!";
if ($mailsent == 1) {
if ($absender_name == "" || $absender_email == "" || $empfaenger_email == "" || $empfaenger_name == "")
$mailsent = 2;
$preg = "(^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$)";
$email = $absender_email;
if(!preg_match("/$preg/",$email,$email))
$mailsent = 2;
$email = $empfaenger_email;
if(!preg_match("/$preg/",$email,$email))
$mailsent = 2;
}
if ( $mailsent == 1 ) {
// absoluten Pfad aus Datenbank holen
include ('../contenido/includes/config.php');
include $cfg["path"]["contenido"].$cfg["path"]["includes"] . 'cfg_sql.inc.php';
// Verbinden mit der Datenbank
$db = new DB_Contenido;
$query = "SELECT htmlpath FROM ".$cfg["tab"]["clients"]." WHERE idclient='".$client."'";
$db->query($query);
$db->next_record();
$front = $db->f("htmlpath");
$mailtext = "Hallo ".$empfaenger_name.", <br><br>".
$absender_name." hat Ihnen folgendes Bild geschickt:<br><br>".
"<a href=\"$front$img_url\"><img src=\"".$front.$subfile."\"></a><br><br>\n";
if ($nachrichtentext != "") {
$mailtext .= "Folgende Nachricht wurde gesendet:<br><br>";
$mailtext .= nl2br(htmlentities($nachrichtentext))."<br><br>\n";
}
$mailtext .= "<hr>Ein Service von <a href=\"http://www.telepeep.de\">www.telepeep.de</a>";
$mailheader = "MIME-Version: 1.0\n";
$mailheader .= "From: ".$absender_name."<".$absender_email.">\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\n";
$mailheader .= "Content-Transfer-Encoding: 8bit\n";
$mailheader .= "X-Mailer: PHP/" .phpversion();
mail($empfaenger_email,$betreff,$mailtext,$mailheader);
// Bestätigung
?>
Ihre Nachricht wurde gesendet!
<br>
<center><img src="<?php echo $subfile; ?>"></center>
<br>
<br>
<center>
<table width="95%">
<tr>
<td class ="text" width="200"><b>Empfänger Name:</b></td>
<td class ="text"><?php echo $empfaenger_name; ?></td>
</tr>
<tr>
<td class ="text" width="200"><b>Empfänger E-Mail:</b></td>
<td class ="text"><?php echo $empfaenger_email; ?></td>
</tr>
<tr>
<td class ="text" width="200"><b>Absender Name:</b></td>
<td class ="text" ><?php echo $absender_name; ?></td>
</tr>
<tr>
<td class ="text" width="200"><b>Absender E-Mail:</b></td>
<td class ="text"><?php echo $absender_email; ?></td>
</tr>
<tr>
<td class ="text" colspan="2"> </td>
</tr>
<tr>
<td class ="text" colspan="2"><b>Ihre Nachricht:</b></td>
</tr>
<tr>
<td class ="text" colspan="2"><?php echo $nachrichtentext; ?></td>
</tr>
</table>
</form>
<a href="<?php echo $img_url; ?>">zurück</a>
</center>
<?php
}
if ($mailsent != 1) {
if ($mailsent == 2)
echo "Bitte prüfen Sie Ihre Eingaben! Alle Felder müssen sinnvoll ausgefüllt werden.";
else
echo "Sie können das folgende Bild als Mail versenden:";
// Beginn Layout Mailseite
?>
<br>
<center><img src="<?php echo $subfile; ?>"></center>
<br>
<br>
<center>
<form name="postcard" action="<?php echo $auth->url(); ?>" method="post">
<table width="95%">
<tr>
<td class ="text" width="200"><b>Empfänger Name:</b></td>
<td class ="text" ><input type="text" value="<?php echo $empfaenger_name; ?>" size="30" name="empfaenger_name"></td>
</tr>
<tr>
<td class ="text" width="200"><b>Empfänger E-Mail:</b></td>
<td class ="text" ><input type="text" value="<?php echo $empfaenger_email; ?>" size="30" name="empfaenger_email"></td>
</tr>
<tr>
<td class ="text" width="200"><b>Absender Name:</b></td>
<td class ="text" ><input type="text" value="<?php echo $absender_name; ?>" size="30" name="absender_name"></td>
</tr>
<tr>
<td class ="text" width="200"><b>Absender E-Mail:</b></td>
<td class ="text" ><input type="text" value="<?php echo $absender_email; ?>" size="30" name="absender_email"></td>
</tr>
<tr>
<td class ="text" colspan="2"> </td>
</tr>
<tr>
<td class ="text" colspan="2"><b>Ihre Nachricht:</b></td>
</tr>
<tr>
<td class ="text" colspan="2"><textarea rows="10" cols="68" name="nachrichtentext"><?php echo $nachrichtentext; ?></textarea></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submit" value="Abschicken"></td>
</tr>
</table>
<input type="hidden" name="mailsent" value="1">
</form>
</center>
<a href="<?php echo $img_url; ?>">zurück</a>
<?php
// Ende Layout Mailseite
}
} else {
// Bild anzeigen
$n=0;
$filearray=Array();
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && is_image($file,$imagetypes))
$filearray[]=$file;
}
reset($filearray);
$prev_img = "";
$next_img = "";
$this_img = "";
$found = 0;
$n = 0;
while ($ffile=each($filearray)) {
$file=$ffile[value];
if ($imagedir."/".$file == $subfile) {
$prev_img = $temp_url;
$found = 1;
$imgno = $n;
} else if ($found == 1)
$found = 2;
if ($image_idcat!=0)
$temp_url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcatside=$image_idcat&subfile=".rawurlencode($imagedir."/".$file));
else
$temp_url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcat=$idcat&idart=$idart&idside=$idside&subfile=".rawurlencode($imagedir."/".$file));
if ($found == 1)
$this_img = $temp_url;
if ($found == 2) {
$next_img = $temp_url;
$found = 0;
}
$n++;
}
$mmstart = floor($imgno / ($rows * $cols)) * ($rows * $cols);
$url_gallery=$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&subid=$subid&idside=$idside&mmstart=".$mmstart);
// Bild anzeigen
if ($blaettern == "ou" || $blaettern=="o") {
echo "<center>";
if ($prev_img != "")
echo "<a href=\"$prev_img\">vorheriges</a> ";
echo "<a href=\"$url_gallery\">Übersicht</a>";
if ($next_img != "")
echo " <a href=\"$next_img\">nächstes</a>";
echo "</center>";
echo "<br><center><a href=\"$this_img&mail=yes\">Dieses Bild als Mail versenden?</a></center>";
}
echo "<center>";
echo "<br>";
echo "<img src=\"$subfile\">";
echo "<br></center>";
if ($blaettern == "ou" || $blaettern=="u") {
echo "<br><center>";
if ($prev_img != "")
echo "<a href=\"$prev_img\">vorheriges</a> ";
echo "<a href=\"$url_gallery\">Übersicht</a>";
if ($next_img != "")
echo " <a href=\"$next_img\">nächstes</a>";
echo "</center>";
}
echo "<br><center><a href=\"$this_img&mail=yes\">Dieses Bild als Mail versenden?</a></center>";
}
} else {
// Gallery anzeigen
echo "<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\">";
// Thumnail-Code generieren
$gallery = "";
$n=0;
$filearray=Array();
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && is_image($file,$imagetypes)) {
$filearray[]=$file;
}
}
reset($filearray);
// skip images...
for ($n=0;$n<$mmstart;$n++)
$ffile=each($filearray);
$n=0;
while ($ffile=each($filearray)) {
$file=$ffile[value];
// generate thumbnail, if nessesairy. Now THIS is fun :)
// natuerlich nur, wenn imagemagick vorhanden ist...
if (!file_exists($thumbnails."/thb_".$file) ) {
if ($im_path!="") {
$cmd=$im_path."/convert -scale ".$thb_x_size."x".$thb_y_size." ".$imagedir."/".$file." ".$thumbnails."/thb_".$file;
exec($cmd);
// nochmal prüfen!
$thumbnail=file_exists($thumbnails."/thb_".$file);
} else{
// Thumbnails mit GD verkleinern
@ini_set("max_execution_time", 120);
@resizeImageGD($imagedir."/".$file, $thumbnails."/thb_".$file, $thb_x_size,$thb_y_size);
$thumbnail=file_exists($thumbnails."/thb_".$file);
}
//Wasserzeichen einbauen und Bilder auf 500 Pixel Höhe oder Breite verkleinern
$size = getimagesize($imagedir."/".$file);
$width_old = $size[0];
$height_old = $size[1];
$old_picture = imagecreatefromjpeg($imagedir."/".$file);
if ($width_old > $height_old) {
$width_new = 600;
$height_new = intval($height_old * $width_new / $width_old);
} else {
$height_new = 600;
$width_new = intval($width_old * $height_new / $height_old);
}
$new_picture = imagecreatetruecolor($width_new, $height_new);
imagecopyresampled($new_picture, $old_picture, 0, 0, 0, 0, $width_new, $height_new, $width_old, $height_old);
$transition = 40;
$watermarkfile = imagecreatefrompng('images/wasserzeichen.png');
$watermarkpic_width = imagesx($watermarkfile);
$watermarkpic_height = imagesy($watermarkfile);
//rechts unten von OAA
$watermarkdest_x = $width_new - $watermarkpic_width;
$watermarkdest_y = $height_new - $watermarkpic_height;
// Ende OAA
imagecopymerge($new_picture, $watermarkfile, $watermarkdest_x, $watermarkdest_y, 0, 0, $watermarkpic_width, $watermarkpic_height, $transition);
imagejpeg($new_picture, $imagedir."/".$file, 100);
} else
$thumbnail=true;
if ($n%$cols==0)
$gallery .= "<tr>\n";
if ($image_idcat!=0)
$url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcatside=$image_idcat&subfile=".rawurlencode($imagedir."/".$file));
else
$url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcat=$idcat&idart=$idart&idside=$idside&subfile=".rawurlencode($imagedir."/".$file));
$gallery .= "<td valign=\"middle\" align=\"center\" width=\"$thb_x_size\" height=\"$thb_y_size\"><a href=\"$url\">".($thumbnail ? "<img src=\"$thumbnails/thb_$file\" border=\"0\">":"$file")."</a></td>\n";
$n++;
if ($n%$cols==0)
$gallery .= "</tr>\n";
// nur solange wie's not tut...
if ($n>=$rows*$cols)
break;
}
// Links zum Blättern durch die Thumbnail-Seite
$blaetterlinks = "<tr> <td colspan=\"$cols\" align=\"center\">";
if ($mmstart>0) {
$url=$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&subid=$subid&idside=$idside&mmstart=".($mmstart-$rows*$cols));
$blaetterlinks .= "<a href=\"$url\">vorherige Bilder...</a> ";
}
$blaetterlinks .= "<span style=\"font-size: 9pt;\">| zeige Bilder ".($mmstart+1)." - ".($mmstart+$n)." |</span>";
if ($n+$mmstart<count($filearray)) {
$url=$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&subid=$subid&idside=$idside&mmstart=".($mmstart+$rows*$cols));
$blaetterlinks .= " <a href=\"$url\">weitere Bilder...</a>";
}
// alles ausgeben
if ($blaettern == "ou" || $blaettern=="o") {
echo $blaetterlinks;
}
echo $gallery;
if ($blaettern == "ou" || $blaettern=="u") {
echo $blaetterlinks;
}
echo "</tr>\n";
echo "</table>";
} // Ende Gallery anzeigen
echo "</p>";
?>
Für mich ist eigentlich die gallery in ihrer ursprungsform aber mit dem blättern wichtig, das verändert des orginal bildes und das wasserzeichen brauche ich nicht (und geht bei mir auch irgenwie net, mein errorlog dreht da immer durch)
habe mir nun aber auch endlich php bücher bei terrashop.de bestellt, freue mich schon riesig auf die neuen bücher. wenn man visual basic kann, und sich dann mit php beschäftigt ist das schon was anderes....
vielen dank und viele grüße aus new mexico....
dirk