Modul: Bildergalerie mit Ausgabe in einem Fremdmodul

Gesperrt
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Modul: Bildergalerie mit Ausgabe in einem Fremdmodul

Beitrag von Beleuchtfix »

Ich benutze Neue Version des Moduls Bilder-Galerie von Large Green Wood http://www.contenido.org/forum/viewtopi ... 4480#14480 und habe sie angepasst, so dass die Bildausgabe entweder per Popupfenster oder aber in einem getrennten Modul erfolgt.

Damit lässt sich eine Übersicht erzeugen und an anderer Stelle ein Bild groß anzeigen.

Beschreibung:

Code: Alles auswählen

soll thunbnails genrieren und ne Liste darstellen.. habs gefunden unter:
http://www.clearcreative.de/module.html

Achtung: 
Dateierweiterung ist Case-sensitive, Eingabe des verzeichnisses erfolgt relative zum startfoldr (frontend.php), 
ohne führenden "/", aber mit end "/" Bsp: "upload/bilder/"
Für die "thumbs" muss ein eigenes Unterverzeichnis gewählt werden, da sonst bei jedem Aufruf die Bilder dupliziert werden.
Input:

Code: Alles auswählen

$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]\">"; 

echo "<option value=1 "; 
if ($selected == 1){ 
   echo " selected "; 
} 
echo ">PopUp-Fenster</option>"; 
echo "<option value=0 "; 
if ($selected == 0){ 
   echo " selected "; 
} 
echo ">diese Seite</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=3 type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\">x<input size=3 maxlength=3 type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\"> 
   </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

<script language="JavaScript"> 
function boo(){ 
} 
</script> 

<div class="htmltext"> 
<? 

// Bildergalerie 
// Imageresize über ImageMagick *ODER* GD 
// Version: 15.01.2004 
// 
// Author: ?? 
// Modified by: Robert Strouhal www.clearcreative.de 
// Modified by: Florian Behrendt 08.06.2005
//     es wird immer nur die Galerie angezeigt, die Ausgabe erfolgt in einem eignem Modul



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]"; 

//-- 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); 
   imagecopyresampled ($target, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 

   ImageJPEG($target,$targetFile,100); 
} 



//-- functions ende ---------------------------------- 

if (!isset($mmstart)) { 
  $mmstart=0; 
} 

// Anzeige eines Bildes oder Übersicht? 
// orginal ist die nächste Zeile!
// if ($subfile!="") {    
// if ($subfile!="never_print_always_gallery") { 
// Bild anzeigen 
/* echo "<center><a href=\"javascript:history.back()\">back / zurück</a></center>"; 
echo "<br>"; 
echo "<img src=\"$subfile\">"; 
echo "<br>"; 
echo "<center><a href=\"javascript:history.back()\">back / zurück</a></center>"; 

} else { */
// Gallery anzeigen 

$handle=opendir($imagedir); 

echo "<table>"; 
$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{ 
                 // Bilder 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); 
                } 
            } else 
              $thumbnail=true; 
            if ($n%$cols==0) 
              echo "<tr>\n"; 
            if ($image_idcat!=0){ 
// Bilder in PopUp anzeigen 
$imageSize = getimagesize($imagedir."/".$file); 
$js = " onClick=\"javascript:window.open('".$imagedir."/".$file."','','height=".($imageSize[1]+30).",width=".($imageSize[0]+30)."')\" "; 
$url = "javascript:boo();";    
            }else{ 
              $url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcat=$idcat&idart=$idart&idside=$idside&subfile=".rawurlencode($imagedir."/".$file)); 
$js = ""; 
              } 

            echo "<td valign=\"middle\" align=\"center\" width=\"$thb_x_size\" height=\"$thb_y_size\"><a href=\"$url\" $js>".($thumbnail ? "<img src=\"$thumbnails/thb_$file\" border=\"0\">":"$file")."</a></td>\n"; 
            $n++; 
            if ($n%$cols==0) 
              echo "</tr>\n"; 


        // nur solange wie's not tut... 
        if ($n>=$rows*$cols) 
          break; 

    } 
echo "<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)); 
  echo "<a href=\"$url\">&laquo;</a>"; 
} 

echo "<span style=\"font-size: 9pt;\">| Images".($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)); 
  echo "<a href=\"$url\">&raquo;</a>"; 
} 

echo "</tr>\n"; 
echo "</table>"; 
 // Ende Gallery anzeigen 


echo "</p>"; 
?> 
</div> 
Ausgabe-Modul
Nur Output:

Code: Alles auswählen

<script language="JavaScript"> 
function boo(){ 
} 
</script> 

<?php
// Bildergalerie Anzeige in einem fremden Modul!
// Imageresize über ImageMagick *ODER* GD 
// Version: 15.01.2004 
// 
// Author: ?? 
// Modified by: Robert Strouhal www.clearcreative.de 
// Modified by: Florian Behrendt  08.06.2005

if ($subfile!="") { 
// Bild anzeigen 
//echo "<center><a href=\"javascript:history.back()\">back / zurück</a></center>"; 
echo "<br>"; 
echo "<img src=\"$subfile\">"; 
echo "<br>"; 
// echo "<center><a href=\"javascript:history.back()\">back / zurück</a></center>"; 

}
?>
Gruß
Florian
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

sieht man das modul irgendwo im einsatz ? ;-)
*** make your own tools (wishlist :: thx)
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Noch im privaten Test.

Gruss Florian
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Inzwischen auch schon lange öffentlich, aber habe ich vergessen.

http://www.schneeschuhprofi.de/cms/fron ... t=87&m=&s=

Gruß
Florian
Deltapapa
Beiträge: 62
Registriert: Fr 17. Jun 2005, 23:32
Wohnort: Mildtstedt
Kontaktdaten:

Beitrag von Deltapapa »

Hallo Florian, sieht gut aus!
Was machst du, wenn es mehr bilder sind wie in dem beispiel?
z.B 25 oder so?
dann ist das angezeigte bild ne bisschen tief, oder ?
oder bricht er irgendwann selbstständig um?
Ansonsten nicht schlecht, vor allem tolle Bilder
(Lebe zur Zeit in der Wüste von New Mexico, da machen diese winterbilder richtig lust auf kaltes wetter :-) vor allem wenn man jeden tag hier bis zu 35 Grad hat.....

Deltapapa
C 4.4.5 r1
Das Internet wurde von www.bademeister.com erfunden
Beleuchtfix
Beiträge: 1082
Registriert: Di 22. Jul 2003, 10:14
Wohnort: Hessen
Kontaktdaten:

Beitrag von Beleuchtfix »

Du kannst die Anzahl der Bilder in Spalten und Reihen eingeben. Dann kommt ein Seitenumbruch.
Gruß
Florian
Gesperrt