Neue Features für "Bildergalerie mit Wasserzeichen &

OAA
Beiträge: 134
Registriert: Sa 15. Nov 2003, 15:54
Wohnort: Regensburg
Kontaktdaten:

Neue Features für "Bildergalerie mit Wasserzeichen &

Beitrag von OAA »

Hallo,

wir erstellen gerade für einen Kunden eine Webseite.

Dabei verwenden wir obengenanntes Modul und haben es mit folgenden Features erweitert:

- vor und zurück button, wenn man ein Bild in der Grossansicht hat
- vor, index und zurück button oberhalb und unterhalb des Bildes (ideal für 1024er Auflösung)
- Auswahl in Konfiguration, ob Navi oben, unten oder an beiden Stellen gezeigt wird
- Bildversand per email mit Eingabe einer Nachricht

Wir werden das Modul online stellen, sobald unsere Kunden die Webseite und die entwickelten Module freigibt (in ca. 1 Woche).

Bei dringendem Bedarf bitte pm
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

also mit einer integrierten ecard lösung ?
klingt wirklich gut...
*** make your own tools (wishlist :: thx)
OAA
Beiträge: 134
Registriert: Sa 15. Nov 2003, 15:54
Wohnort: Regensburg
Kontaktdaten:

Beitrag von OAA »

Hallo,

hier endlich der freigegebene Code.

Die Seite ist aktiv:
http://www.telepeep.de "Events"

Imput:

Code: Alles auswählen

  /*
     Bildergallery
     (c) by LGW, 2002
     License: GPL, http://www.gnu.org/licenses/gpl.html
  
     Fragen, Anregungen, Hilfegesuche: large@lilymarleen.de
  
  Dokumentation:
  1. How it works:
  Die Bildergallery stellt alle Bilder in einem (frei wählbaren) Verzeichnis namentlich, oder
  wenn verfügbar als Thumbnails dar. Ein klick auf ein Thumbnail öffnet das Bild wahlweise in der Galleryseite
  statt der Thumbnailtabelle, oder in einer eigenen Inhaltsseite (kann wie interner Link ausgewählt werden).
  
  Ist auf dem Webserver die ImageMagick-Software vorhanden, können die benöntigten Thumbnails
  auch automatisch generiert werden; daför ist weiterhin ein Schreibzugriff für den Webserver auf
  das Thumbnail-Verzeichnis nötig (alle+lesen/schreiben/wechseln, a+rwx).
  
  2. Installation:
  Zunächstmal wie gehabt das Modul anlegen. Der obere Teil in "INPUT", der untere in "OUTPUT".
  
  
  Im Grunde genügt ein Template; sollen die Bilder "in gross" in einem anderen Template angezeigt werden,
  muss auch in diesem ein Imagelib-Modul eingetragen werden! Dort spielen die Parameter allerdings keine Rolle.
  
  Einstellungen zur Imagelib:
  
  Einzelbild-Seite:
  die Seite, in der die "grossen" Bilder dargestellt werden.
  
  Image-Directory:
  relative Verzeichnisangabe zu den Bildern (z.B. images_gallery1)
  
  Thumbnail-Directory:
  relative Verzeichnisangabe zu den Thumbnails (z.B. images_gallery1_thbs) - unbedingt ein *anderes* Verzeichnis als das Image-Directory!
  Soll Imagemagick benutzt werden, muss der Webserver hier Schreibrechte haben! (so wie z.B. im logs-Verzeichnis)
  
  Image-Dateiendung:
  Hier können alle Endungen eingetragen werden, die als Image betrachtet werden sollen. Trenner ist das Semikolon, also
  .jpg;.gif;.png
  
  Thumbnailtabelle in Spalten x Zeilen:
  Anzahl der Thumbnails in der Übersicht.
  
  Thumbnail-Grösse:
  Gibt zum einen die Grösse der Tabellenzellen an, zum anderen die Grösse auf die Imagemagick die Bilder umrechnet sofern
  automatische Thumbnails verwendet werden
  
  Pfad zum ImageMagick (optional):
  Hier wird der Pfad zu den ImageMagick-Tools hinterlegt, im Regelfall /usr/bin oder /usr/X11/bin. Wird dies Feld freigelassen,
  ist die automatische Generierung der Thumbnails ausgeschaltet!

  modified by: Philipp Kölbl & Oliver Abeltshauser
  
  */
  
  $selected = "CMS_VALUE[0]";
  
  echo "<table cellspacing=\"0\" cellpadding=\"5\" border=\"0\">
          <tr valign=\"top\">
            <td>Einzelbild-Seite</td>
             <td>
              <select name=\"CMS_VAR[0]\">";
  
  
  $sql = "SELECT * FROM $cfgTab_cat_tree AS TREE, $cfgTab_cat_side AS CATSIDE, $cfgTab_cat AS CAT, $cfgTab_cat_lang AS CATLANG, $cfgTab_side_lang AS SIDELANG WHERE TREE.idcat=CATSIDE.idcat AND CATSIDE.idcat=CATLANG.idcat AND CATLANG.idlang='$lang' AND CATSIDE.idside=SIDELANG.idside AND SIDELANG.idlang='$lang' AND CAT.idcat=TREE.idcat AND CAT.idclient='$client' ORDER BY TREE.idtree";
        $db->query($sql);
  
                if ($selected != 0) {
                   echo "<option value=0>diese Seite</option>";
                } else {
                   echo "<option value=0 selected>diese Seite</option>";
                }
                while ($db->next_record()) {
                   $spaces = "";
                        for ($i=0; $i<$db->f("level"); $i++) {
                           $spaces = $spaces . "    ";
                        }
                        if ( $db->f("idcatside") != $selected ) {
                           echo "<option value=\"".$db->f("idcatside")."\">$spaces ".$db->f("name")."---".$db->f("title")."</option>";
                        } else {
                                echo "<option value=\"".$db->f("idcatside")."\" selected>$spaces ".$db->f("name")."---".$db->f("title")."</option>";
                        }
                }
        echo "</select>";
  
  echo "      </td>
  </tr>
          <tr>
          <td>
          Image-Directory:
         </td>
              <td>
            <input size=20 type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\">
     </td>
       </tr>
  
          <tr>
          <td>
          Thumbnail-Directory:
         </td>
              <td>
            <input size=20 type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\">
     </td>
       </tr>
                 
          <tr>
          <td>
          Image-Dateieendung (z.B. .jpg;.gif):
         </td>
              <td>
            <input size=20 type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\">
     </td>
       </tr>
  
          <tr>
          <td>
           Thumbnailtabelle in Spalten x Zeilen:
         </td>
              <td>
            <input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\">x<input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\">
     </td>
       </tr>
         
  
          <tr>
          <td>
           Thumbnailgr&ouml;sse in XxY:
         </td>
              <td>
            <input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\">x<input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\">
     </td>
       </tr>
  
    
    	<tr>
    	  <td>Navigationslinks für Großansicht:</td>
    	  <td>
    	    <select name=\"CMS_VAR[10]\"> ";
		$selected_option = "CMS_VALUE[10]";
		if ($selected_option == "ou")
		    echo '<option selected value="ou">oben und unten</option>';
		else
		    echo '<option value="ou">oben und unten</option>';
  		if ($selected_option == "o")
  		    echo '<option selected value="o">nur oben</option>';
  		else
  		    echo '<option value="o">nur oben</option>';
		if ($selected_option == "u")
		    echo '<option selected value="u">nur unten</option>';
		else
		    echo '<option value="u">nur unten</option>';
		echo '</select>';

  echo "    	  </td>
    	</tr>
    
    
       <tr>
          <td>
          Pfad zum ImageMagick (optional):
         </td>
              <td>
            <input size=20 type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\">
     </td>
       </tr>
         
        </table>";
  
// ENDE INPUT 
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">&nbsp;</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">&nbsp;</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>&nbsp;&nbsp;";
    	    echo "<a href=\"$url_gallery\">&Uuml;bersicht</a>";
	    if ($next_img != "")
	        echo "&nbsp;&nbsp;<a href=\"$next_img\">n&auml;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>&nbsp;&nbsp;";
	    echo "<a href=\"$url_gallery\">&Uuml;bersicht</a>";
	    if ($next_img != "")
	        echo "&nbsp;&nbsp;<a href=\"$next_img\">n&auml;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>&nbsp;";
    }

    $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 .= "&nbsp;<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>";
?>
Wäre nett, wenn ich Meinungen dazu hören würde.

VLG
OAA
Dinkel
Beiträge: 565
Registriert: Di 22. Mär 2005, 14:52
Kontaktdaten:

Beitrag von Dinkel »

Hab mir das ganze eben mal ganz kurz angeschaut. Die Konfiguraion könnte etwas einfacher gelöst werden, also vor allem die Angabe der Verzeichnisse wäre per Pull-Down wesentlich einfacher, so muss nicht jeder Nutzer die Verzeichnisstruktur kennen.
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

@OAA
Sehr gute Arbeit. Du hast mir die Arbeit abgenommen, die ich schon seit Wochen vor mir herschiebe und aus Zeitgründen noch nicht geschafft habe ;-)


Hast du was dagegen, wenn ich die Änderungen im Orignial-Post einfüge. Der hier ist ein wenig missverständlich wegen dem Topicnamen.

Gruß
Daniel
CyberDan
Beiträge: 204
Registriert: Mo 15. Dez 2003, 13:01
Wohnort: Saarland
Kontaktdaten:

Beitrag von CyberDan »

ich habe gerade noch einen Fehler beim VErsand der Ecard gefunden. Die Mail wird versendet, aber nach dem Versand wird auf der Seite folgende Fehlermeldung ausgegeben:

Code: Alles auswählen

Warning: Unknown(../contenido/includes/config.php): failed to open stream: No such file or directory in /kunden/.../front_content.php(563) : eval()'d code on line 657

Warning: Unknown(../contenido/includes/config.php): failed to open stream: No such file or directory in /kunden/.../front_content.php(563) : eval()'d code on line 657

Warning: (null)(): Failed opening '../contenido/includes/config.php' for inclusion (include_path='.:/usr/local/lib/php') in /kunden/.../front_content.php(563) : eval()'d code on line 657
Ihre Nachricht wurde gesendet! 
edit: Habe den Fehler entdeckt. Für alle, die die Pfade in des Backends geändet habe muß in Zeile 110 des Outputs noch der genaue Pfad angepasst werden:

Code: Alles auswählen

           // absoluten Pfad aus Datenbank holen 
           include ('../contenido/includes/config.php'); 
nettertaler
Beiträge: 15
Registriert: So 6. Feb 2005, 23:29
Kontaktdaten:

Vielen Dank für das tolle Modul

Beitrag von nettertaler »

Hallo OAA

Leider bin ich nicht so pfiffig und kann meine Scripte selber schreiben. So greife ich immer wieder auf das Board zurück. Das Script kann ich gut gebrauchen, vielen Dank dafür und auch für deine Hilfe.

Viele Grüße
Ralf
lux
Beiträge: 33
Registriert: Di 12. Okt 2004, 14:11
Wohnort: .at
Kontaktdaten:

Update - Verzeichnis via Pulldownmenu

Beitrag von lux »

Hi Leute!

Super Modul! Aber ich hab es noch ein bisschen verfeinert!

Die Verzeichnise können nun via Pulldownmenu ausgewählt werden.

Ein weitere Mod werd ich euch in den nächsten Tagen zur Verfügung stellen... Großansicht als Popup

----

Es muss nur der Input ausgetauscht werden:

Code: Alles auswählen


$selected = "CMS_VALUE[0]";
$path1 = "CMS_VALUE[2]";
$path2 = "CMS_VALUE[3]";
$path2imagemagick = "/usr/bin";
  
  echo "<table cellspacing=\"0\" cellpadding=\"5\" border=\"0\"> 
          <tr valign=\"top\"> 
            <td>Einzelbild-Seite</td> 
             <td> 
              <select name=\"CMS_VAR[0]\">"; 
  
  
  $sql = "SELECT * FROM $cfgTab_cat_tree AS TREE, $cfgTab_cat_side AS CATSIDE, $cfgTab_cat AS CAT, $cfgTab_cat_lang AS CATLANG, $cfgTab_side_lang AS SIDELANG WHERE TREE.idcat=CATSIDE.idcat AND CATSIDE.idcat=CATLANG.idcat AND CATLANG.idlang='$lang' AND CATSIDE.idside=SIDELANG.idside AND SIDELANG.idlang='$lang' AND CAT.idcat=TREE.idcat AND CAT.idclient='$client' ORDER BY TREE.idtree"; 
        $db->query($sql); 
  
                if ($selected != 0) { 
                   echo "<option value=0>diese Seite</option>"; 
                } else { 
                   echo "<option value=0 selected>diese Seite</option>"; 
                } 
                while ($db->next_record()) { 
                   $spaces = ""; 
                        for ($i=0; $i<$db->f("level"); $i++) { 
                           $spaces = $spaces . "    "; 
                        } 
                        if ( $db->f("idcatside") != $selected ) { 
                           echo "<option value=\"".$db->f("idcatside")."\">$spaces ".$db->f("name")."---".$db->f("title")."</option>"; 
                        } else { 
                                echo "<option value=\"".$db->f("idcatside")."\" selected>$spaces ".$db->f("name")."---".$db->f("title")."</option>"; 
                        } 
                } 
        echo "</select>"; 
  
  echo "      </td> 
  </tr> 
          <tr> 
          <td> 
          Image-Directory: 
         </td> 
              <td> ";
            // hier die select auswahl der verzeichnisse


function get_dir_array($dir){
  global $i,$dirs_array;
  $current_dir = opendir($dir);
  while($entryname = readdir($current_dir)){
     if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!="..")){
        get_dir_array("${dir}/${entryname}");
        $dirs_array[$i] = "${dir}/${entryname}";
        $i++;
     }
  }
  closedir($current_dir);
return $dirs_array;
}

$i = 0;

$path = substr_replace($cfgClient[$client]["path"]["upload"], "", strrpos($cfgClient[$client]["path"]["upload"], "/"));
$verz_liste = get_dir_array($path);

echo "<select name=\"CMS_VAR[2]\">";

foreach ( $verz_liste as $verz ){
 $verz = eregi_replace ($cfg['path']['frontend']."/cms/", "", $verz);
 if ( $path1 == $verz ){ $wwi =  "selected";   }
 else { $wwi = ""; }
 echo "<option value=\"$verz\" $wwi>$verz</option>";
}

echo "</select>"; 

echo "
     </td> 
       </tr> 
  
          <tr> 
          <td> 
          Thumbnail-Directory: 
         </td> 
              <td> 
           ";

echo "<select name=\"CMS_VAR[3]\">";

foreach ( $verz_liste as $verz ){
 $verz = eregi_replace ($cfg['path']['frontend']."/cms/", "", $verz);
 if ( $path2 == $verz ){ $wwi =  "selected";   }
 else { $wwi = ""; }
 echo "<option value=\"$verz\" $wwi>$verz</option>";
}

echo "</select>";

echo "
 
     </td> 
       </tr> 
                  
          <tr> 
          <td> 
          Image-Dateieendung (z.B. .jpg;.gif): 
         </td> 
              <td> 
            <input size=20 type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\"> 
     </td> 
       </tr> 
  
          <tr> 
          <td> 
           Thumbnailtabelle in Spalten x Zeilen: 
         </td> 
              <td> 
            <input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\">x<input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\"> 
     </td> 
       </tr> 
          
  
          <tr> 
          <td> 
           Thumbnailgr&ouml;sse in XxY: 
         </td> 
              <td> 
            <input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\">x<input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\"> 
     </td> 
       </tr> 
  
    
       <tr> 
         <td>Navigationslinks für Großansicht:</td> 
         <td> 
           <select name=\"CMS_VAR[10]\"> "; 
      $selected_option = "CMS_VALUE[10]"; 
      if ($selected_option == "ou") 
          echo '<option selected value="ou">oben und unten</option>'; 
      else 
          echo '<option value="ou">oben und unten</option>'; 
        if ($selected_option == "o") 
            echo '<option selected value="o">nur oben</option>'; 
        else 
            echo '<option value="o">nur oben</option>'; 
      if ($selected_option == "u") 
          echo '<option selected value="u">nur unten</option>'; 
      else 
          echo '<option value="u">nur unten</option>'; 
      echo '</select>'; 

  echo "         </td> 
       </tr> 
    
    
       <tr> 
          <td> 
          Pfad zum ImageMagick (optional): 
         </td> 
              <td> 
            <input size=20 type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\"> 
     </td> 
       </tr> 
          
        </table>"; 
  
// ENDE INPUT
Schöne Grüße

Lux

http://www.luxmedia.at
Das Leben besteht aus Nullen und Einsen!
nettertaler
Beiträge: 15
Registriert: So 6. Feb 2005, 23:29
Kontaktdaten:

Beitrag von nettertaler »

Ich nutze das Script weiterhin auf einer Schulseite.

Hat nicht jemand Lust mir noch 2 kleine Wünsche in das Script einzubauen? Hier meine Wünsche:

1. Ich bin von Natur aus neugierig und würde gerne auch immer eine versendete Bildnachricht bekommen. Leider habe ich es noch nicht geschafft, meine Mailaddy an die richtige Stelle im Script zu setzen, so das ich auch eine Kopie bekomme.

2. Wir möchten gerne eine Galerie mit Fotos, die über das Schuljahr hinweg geschossen wurden mit einem kleinen Bildertext versehen, damit man kurz die Situation auf dem Foto beschreiben kann. Das gibt es ja schon für andere Galerien, doch leider bekomme ich es selber nicht eingebaut.

Es wäre schön, wenn sich jemand etwas Zeit nehmen würde. Wäre auch für eine kleine Spende bereit, bitte vorher anfragen.

Gruß Ralf
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

Hallo Ralf,

ich weiss nicht, ob dich das interessiert, aber ich finde das:
nettertaler hat geschrieben:1. Ich bin von Natur aus neugierig und würde gerne auch immer eine versendete Bildnachricht bekommen. Leider habe ich es noch nicht geschafft, meine Mailaddy an die richtige Stelle im Script zu setzen, so das ich auch eine Kopie bekomme.
ueberhaupt nicht hoeflich, Privatnachrichten anderer zu lesen, von Missachtung der Privatsphaere und des "Briefgeheimnisses" ganz zu schweigen ...

Gruss
Christa
nettertaler
Beiträge: 15
Registriert: So 6. Feb 2005, 23:29
Kontaktdaten:

Beitrag von nettertaler »

Halchteranerin hat geschrieben:Hallo Ralf,

ich weiss nicht, ob dich das interessiert, aber ich finde das:
nettertaler hat geschrieben:1. Ich bin von Natur aus neugierig und würde gerne auch immer eine versendete Bildnachricht bekommen. Leider habe ich es noch nicht geschafft, meine Mailaddy an die richtige Stelle im Script zu setzen, so das ich auch eine Kopie bekomme.
ueberhaupt nicht hoeflich, Privatnachrichten anderer zu lesen, von Missachtung der Privatsphaere und des "Briefgeheimnisses" ganz zu schweigen ...
Das so etwas kommt, hätte ich mir fast denken können. :-) Irgendwie hast du Recht und ich sollte den Schülern eigentlich trauen. Wenn jemand also nur den Punkt 2 Wunsch erfüllt möchte, bin ich natürlich auch zufrieden. :-)
hari
Beiträge: 39
Registriert: Do 21. Aug 2003, 19:21
Kontaktdaten:

Problem mit der Installation

Beitrag von hari »

Ich benutze Contenido 4.4.5.
Nun habe ich diese Galerie nach bekannter Weise installiert.
1) Modul installiert
2)Template erstellt
3)Kategorie und Artikel erstellt

Bilder in die entsprechende Datei (Verzeichnis hochgeladen und den Pfad angegeben.

Die Homepage liegt im Root
Contenido ein Verzeichnis weiter

Wenn ich in den Artikel hineingehe erhalte ich im Artikel (HP) eine Fehlermeldung mit folgendem Inhalt:

Code: Alles auswählen


Warning: imagecreatefrompng(images/wasserzeichen.png): failed to open stream: No such file or directory in /homepages/33/d96200902/htdocs/contenidocms/contenido/includes/include.con_editcontent.php(571) : eval()'d code on line 947

Warning: imagesx(): supplied argument is not a valid Image resource in /homepages/33/d96200902/htdocs/contenidocms/contenido/includes/include.con_editcontent.php(571) : eval()'d code on line 948

Warning: imagesy(): supplied argument is not a valid Image resource in /homepages/33/d96200902/htdocs/contenidocms/contenido/includes/include.con_editcontent.php(571) : eval()'d code on line 949

Warning: imagecopymerge(): supplied argument is not a valid Image resource in /homepages/33/d96200902/htdocs/contenidocms/contenido/includes/include.con_editcontent.php(571) : eval()'d code on line 955


Root ist bei mir "contenidocms"

Die Bilder liegen in "upload - galerie-
Die Thumbs in upload - galerie-thumb_galerie

Den Pfad zu Contenido im Output habe ich geändert, da die HP im Root liegt:

Code: Alles auswählen


           // absoluten Pfad aus Datenbank holen 
           include ('contenido/includes/config.php'); 

Bilder werden auch nicht angezeigt, sondern nur deren Platzhalter.

Was habe ich falsch gemacht?
Wo gibt es eine genaue Gebrauchsanweisung?
nettertaler
Beiträge: 15
Registriert: So 6. Feb 2005, 23:29
Kontaktdaten:

Beitrag von nettertaler »

Viel Ahnung habe ich nicht, habe selber etwas gefummelt, bis ich es geschafft hab.

Es gibt wohl nur die kurze Beschreibung im Code. Die musste ich mir 5x durchlesen, bis ich gerafft hab, was ich so alles machen muss. :D

Der Pfad zum Wasserzeichen cms/images/wasserzeichen.png stimmt aber?

Gruß Ralf
hari
Beiträge: 39
Registriert: Do 21. Aug 2003, 19:21
Kontaktdaten:

Bildgroesse veraendert sich

Beitrag von hari »

Habe mich soweit selbst durchgearbeitet.

Der Fehler lag an der noch nicht installierten >wasserzeichen.png<
Dieses ist nun erledigt. Die ERROR-Meldung ist nun weg.

Danach tauchte allerding noch ein Fehler auf. Die Pfadangabe zu den Bilder fing mit:
/homepages/33/xxxxxxxx/contenidocms/upload/weiterer Pfad...
Das war so nicht richtig. Das habe ich auch korrigiert.

Jetzt taucht aber ein weitereres Problem auf. Die hochgeladenen Bilder habe ich in der Groesse von 450x312 px. Rufe ich nun die Homepage auf und gehe auf die Galerieseite, so wird auch das entsprechende Thumbnail geladen. Klicke ich auf dieses Bild, so erscheint auch wie gewollt das grosse bild. Nur hat sich leider auch die Groesse veraendert auf 600x416 px.
Dieses ist allerdings nicht meine Absicht. Die hochgeladene Groesse soll beibehalten werden, da sie sonst das Outfit der Homepage veraendert.

Was kann ich tun, dass die gewollte Groesse bleibt?
hari
Beiträge: 39
Registriert: Do 21. Aug 2003, 19:21
Kontaktdaten:

Keine Thumbnails

Beitrag von hari »

Ich habe ein weiteres Template fuer eine zweite Galerie erstellt. Bilder in ein neues Verzeichnis hochgeladen und einen neuen Artikel erstellt.
Gehe ich auf die neue Seite, so werden keine Thumbnails angezeigt. Stattdessen nur die Bildnummern. Druecke ich einmal auf eine Bildnummer, so erscheint das vergroesserte Bild. Alle weitere Funktionen gehen

Nur leider die Thumbnails nicht.

Galerie A funktioniert:
http://www.koengernheimer-dalmatiner.de ... p?idcat=47

Galerie B funktioniert nicht
http://www.koengernheimer-dalmatiner.de ... p?idcat=48

Was habe ich falsch gemacht?

Hier einmal die geaenderten Daten:

Code: Alles auswählen

//Galerie mit Card

//Input
//--------------------------------------------------------

$selected = "CMS_VALUE[0]";
$path1 = "CMS_VALUE[2]";
$path2 = "CMS_VALUE[3]";
$path2imagemagick = "/usr/bin";

  echo "<table cellspacing=\"0\" cellpadding=\"5\" border=\"0\">
          <tr valign=\"top\">
            <td>Einzelbild-Seite</td>
             <td>
              <select name=\"CMS_VAR[0]\">";


  $sql = "SELECT * FROM $cfgTab_cat_tree AS TREE, $cfgTab_cat_side AS CATSIDE, $cfgTab_cat AS CAT, $cfgTab_cat_lang AS CATLANG, $cfgTab_side_lang AS SIDELANG WHERE TREE.idcat=CATSIDE.idcat AND CATSIDE.idcat=CATLANG.idcat AND CATLANG.idlang='$lang' AND CATSIDE.idside=SIDELANG.idside AND SIDELANG.idlang='$lang' AND CAT.idcat=TREE.idcat AND CAT.idclient='$client' ORDER BY TREE.idtree";
        $db->query($sql);

                if ($selected != 0) {
                   echo "<option value=0>diese Seite</option>";
                } else {
                   echo "<option value=0 selected>diese Seite</option>";
                }
                while ($db->next_record()) {
                   $spaces = "";
                        for ($i=0; $i<$db->f("level"); $i++) {
                           $spaces = $spaces . "    ";
                        }
                        if ( $db->f("idcatside") != $selected ) {
                           echo "<option value=\"".$db->f("idcatside")."\">$spaces ".$db->f("name")."---".$db->f("title")."</option>";
                        } else {
                                echo "<option value=\"".$db->f("idcatside")."\" selected>$spaces ".$db->f("name")."---".$db->f("title")."</option>";
                        }
                }
        echo "</select>";

  echo "      </td>
  </tr>
          <tr>
          <td>
          Image-Directory:
         </td>
              <td> ";
            // hier die select auswahl der verzeichnisse


function get_dir_array($dir){
  global $i,$dirs_array;
  $current_dir = opendir($dir);
  while($entryname = readdir($current_dir)){
     if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!="..")){
        get_dir_array("${dir}/${entryname}");
        $dirs_array[$i] = "${dir}/${entryname}";
        $i++;
     }
  }
  closedir($current_dir);
return $dirs_array;
}

$i = 0;

$path = substr_replace($cfgClient[$client]["path"]["upload"], "", strrpos($cfgClient[$client]["path"]["upload"], "/"));
$verz_liste = get_dir_array($path);

echo "<select name=\"CMS_VAR[2]\">";

foreach ( $verz_liste as $verz ){
 $verz = eregi_replace ($cfg['path']['frontend']."/", "", $verz);
 if ( $path1 == $verz ){ $wwi =  "selected";   }
 else { $wwi = ""; }
 echo "<option value=\"$verz\" $wwi>$verz</option>";
}

echo "</select>";

echo "
     </td>
       </tr>

          <tr>
          <td>
          Thumbnail-Directory:
         </td>
              <td>
           ";

echo "<select name=\"CMS_VAR[3]\">";

foreach ( $verz_liste as $verz ){
 $verz = eregi_replace ($cfg['path']['frontend']."/", "", $verz);
 if ( $path2 == $verz ){ $wwi =  "selected";   }
 else { $wwi = ""; }
 echo "<option value=\"$verz\" $wwi>$verz</option>";
}

echo "</select>";

echo "

     </td>
       </tr>

          <tr>
          <td>
          Image-Dateieendung (z.B. .jpg;.gif):
         </td>
              <td>
            <input size=20 type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\">
     </td>
       </tr>

          <tr>
          <td>
           Thumbnailtabelle in Spalten x Zeilen:
         </td>
              <td>
            <input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\">x<input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\">
     </td>
       </tr>


          <tr>
          <td>
           Thumbnailgr&ouml;sse in XxY:
         </td>
              <td>
            <input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\">x<input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\">
     </td>
       </tr>


       <tr>
         <td>Navigationslinks für Großansicht:</td>
         <td>
           <select name=\"CMS_VAR[10]\"> ";
      $selected_option = "CMS_VALUE[10]";
      if ($selected_option == "ou")
          echo '<option selected value="ou">oben und unten</option>';
      else
          echo '<option value="ou">oben und unten</option>';
        if ($selected_option == "o")
            echo '<option selected value="o">nur oben</option>';
        else
            echo '<option value="o">nur oben</option>';
      if ($selected_option == "u")
          echo '<option selected value="u">nur unten</option>';
      else
          echo '<option value="u">nur unten</option>';
      echo '</select>';

  echo "         </td>
       </tr>


       <tr>
          <td>
          Pfad zum ImageMagick (optional):
         </td>
              <td>
            <input size=20 type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\">
     </td>
       </tr>

        </table>";

// ENDE INPUT

--------------------------------------

//OUTPUT

<?

// 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.koengernheimer-dalmatiner.de\">Hilperts Dalmatiner</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="150"><b>Empfänger Name:</b></td>
        <td class ="text"><?php echo $empfaenger_name; ?></td>
      </tr>
      <tr>
        <td class ="text" width="150"><b>Empfänger E-Mail:</b></td>
        <td class ="text"><?php echo $empfaenger_email; ?></td>
      </tr>
      <tr>
        <td class ="text" width="150"><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">&nbsp;</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="15"><b>Empfänger Name:</b></td>
        <td class ="text" ><input type="text" value="<?php echo $empfaenger_name; ?>" size="25" name="empfaenger_name"></td>
      </tr>
      <tr>
        <td class ="text" width="150"><b>Empfänger E-Mail:</b></td>
        <td class ="text" ><input type="text" value="<?php echo $empfaenger_email; ?>" size="25" name="empfaenger_email"></td>
      </tr>
      <tr>
        <td class ="text" width="150"><b>Absender Name:</b></td>
        <td class ="text" ><input type="text" value="<?php echo $absender_name; ?>" size="25" name="absender_name"></td>
      </tr>
      <tr>
        <td class ="text" width="150"><b>Absender E-Mail:</b></td>
        <td class ="text" ><input type="text" value="<?php echo $absender_email; ?>" size="25" name="absender_email"></td>
      </tr>
      <tr>
        <td class ="text" colspan="2">&nbsp;</td>
      </tr>
      <tr>
        <td class ="text" colspan="2"><b>Ihre Nachricht:</b></td>
      </tr>
      <tr>
        <td class ="text" colspan="2"><textarea rows="10" cols="58" 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&uuml;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>&nbsp;&nbsp;";
           echo "<a href=\"$url_gallery\">&Uuml;bersicht</a>";
       if ($next_img != "")
           echo "&nbsp;&nbsp;<a href=\"$next_img\">n&auml;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>&nbsp;&nbsp;";
       echo "<a href=\"$url_gallery\">&Uuml;bersicht</a>";
       if ($next_img != "")
           echo "&nbsp;&nbsp;<a href=\"$next_img\">n&auml;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  = 450;
                $height_new = intval($height_old * $width_new / $width_old);
            }  else {
                $height_new = 450;
                $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>&nbsp;";
    }

    $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 .= "&nbsp;<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>";
?>
Gesperrt