Neue Version des Moduls Bilder-Galerie von Large Green Wood

roman
Beiträge: 127
Registriert: Fr 25. Apr 2003, 15:36
Kontaktdaten:

Beitrag von roman »

Meine GD Lib ist zu alt und deshalb muss ich die thumbs selber bauen...

Im Bereich Dateiverwaltung gibt es die Möglichkeit Bildvermerke zu schreiben. Kann das Modul diese auslesen und darstellen???
Bobby Shaftoe
Beiträge: 32
Registriert: Di 22. Jul 2003, 14:38
Kontaktdaten:

Beitrag von Bobby Shaftoe »

die gd lib ist nicht unbedingt zu alt, nur sind die methoden im modul zu neu :)
man kann auch mit einer gdlib < 2.0 mit durchaus akzeptablen ergebnissen bilder resizen. nur darf man dafür kein imagecopyresampled verwenden, sondern muss imagecopyresized verwenden (die erste der genannten funktionen wird nur von IM, nicht aber von der GDLib unterstützt). der unterschied zwischen resize und resample:

bei resize wird nach dem schema "nearest neighbour" skaliert.
bei resample wird bikubisch skaliert, das ergebnis ist qualitativ besser.
Zeitgeist
Beiträge: 205
Registriert: Fr 5. Sep 2003, 09:47
Wohnort: Hamburg
Kontaktdaten:

verdammt...

Beitrag von Zeitgeist »

Hilfe....

Ich hab mir dieser Gallerie experimentiert, bzw. sie eingebaut...
Der einfachheit halber habe ich nicht den Dateiupload benutzt sondern die Bilder via FTP hochgeladen....

bisher hat die Dateiverwaltung dann bei Aufruf den inhalt neu indiziert und manuell hochgeladene Bilder angezeigt...

diesmal habe ich aber KEINE Dateiverwaltung mehr(!)
wenn ich die aufrufe werden mir keine Verzeichniss und keine Bilder mehr angezeigt.
WIE kann ich das beheben/eine neue indizierung erzwingen??????

Zum Modul:
ich bekomme auch nur links zu den Images angezeigt, keine Thumbs.
GD ist >2.0
Verzeichnisse sind angelegt
Schreibrechte erteilt
Thumbs werden nicht angelegt, auch keine 0 Byte Dateien

Momentan macht mich aber das Problem der Dateiverwaaltung viel wuschiger....help me (kill me)

greets
TimeSpirit
Zeitgeist
Beiträge: 205
Registriert: Fr 5. Sep 2003, 09:47
Wohnort: Hamburg
Kontaktdaten:

Modul OK

Beitrag von Zeitgeist »

Nachtrag:
=======

Modul OK, man(n) muss halt JPG nehmen und nicht GIF :(

nur was mach ich mit der blöden Dateiverwaltung?
Zeitgeist
Beiträge: 205
Registriert: Fr 5. Sep 2003, 09:47
Wohnort: Hamburg
Kontaktdaten:

nu aber

Beitrag von Zeitgeist »

so,
Probleme behoben..Dateiverwaltung wieder da.
Hatte nichts mit dem Modul sondern mit dem Mandanten Pfad zu tun :( :)

Aber man kennt mich ja, immer wieder habe ich neue (abstruse) Ideen
:twisted:

1. wäre es klasse, wenn man in das PopupFenster mit dem Bild einen Link einbinden könnte (klick auf`s Bild schliesst Fenster)

2. wäre es super, wenn man wahlweise auch die Beschreibung mit anzeigen könnte
Dann würde das pflegen der Beschreibungen auch Sinn machen und evtl. hätten die Besucher durch die angezeigte Beschreibung auch einen "Mehrwert"

ansonsten: Klasse Sache, funkt nun wie gewünscht und macht (bisher) keine Probleme.
Danke

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

Re: nu aber

Beitrag von Halchteranerin »

Zeitgeist hat geschrieben:1. wäre es klasse, wenn man in das PopupFenster mit dem Bild einen Link einbinden könnte (klick auf`s Bild schliesst Fenster)
Das duerfte nicht so schwierig sein. Guck Dir das Bildergalerie-Modul, welches Andreas ('kummer') vor 2-3 Tagen veroeffentlicht hat (im Forum). Da ist das mit dem Popup so gemacht, dass beim Anklicken das Fenster zugeht.
newimagine
Beiträge: 33
Registriert: Di 6. Jul 2004, 19:18
Kontaktdaten:

Beitrag von newimagine »

Tach,
ich habe das modul installiert und es läuft auch prima.
allerdings habe ich noch folgendes problem:
ich möchte bestimmte bilder bestimmten artikeln zuweisen.
gibt es da eventuell schon irgendetwas, was ich übersehen habe?

Bitt um kurze Antwort. Danke!
ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Beitrag von ReneWho »

Hi,

die Galerie funktioniert einwandfrei. Habe jedoch folgende
Meldung im Errorlog:

Code: Alles auswählen

[15-Jul-2004 09:37:20] PHP Warning:  strstr(): Empty delimiter. in /homepages/38/d97470565/htdocs/cms/front_content.php(563) : eval()'d code on line 91
Ich kann mich damit anfreunden sie zu ignorieren *g*. sicher
hat das etwas zu bedeuten...aber nur was ?

grüßels René
Zeitgeist
Beiträge: 205
Registriert: Fr 5. Sep 2003, 09:47
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Zeitgeist »

Hallo,
ich hab auch Fehlermeldungen....
und noch ein anderes Problem:

Wenn ein User ein Bild hochlädt, wird dieses 2-3x (in gross&Klein) auf dem Server gespeichert. Manchmal nur ein Dummy in dem nur das Wasserzeichen ist, aber manchmal eben auch 3fach (Unterschied nur der TimeStamp)

greets
TimeSpirit
Rechtschreibfehler sind nicht als "Fehler" sondern als Hommage an Pisa zu verstehen ;)
Keine Einträge im Errorlog :)
Contenido 4.4.4 - Firefox -
ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Beitrag von ReneWho »

Hi,

habe in die galerie die popup funktion von Andreas Kummer
integriert. Das popup resize habe ich über javascript gelöst,
da mir die php variante zu viel zeit geraubt hat :-):

hier ist der modifizierte output
(input gibt es auf seite [1])

Code: Alles auswählen

<? 

// Bildergalerie 
// Imageresize über ImageMagick *ODER* GD 
// Version: 15.01.2004 
// 
// Author: Large Green Wood  vgl. http://www.contenido.de/front_dev/upload/1ImageGal.txt 
// Modified by: Robert Strouhal www.clearcreative.de 




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); 
   // Ä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; 
} 

// Anzeige eines Bildes oder Übersicht? 

if ($subfile!="") { 
// Bild anzeigen 
echo "<center><a href=\"javascript:history.back()\">zurück</a></center>"; 
echo "<br>"; 
echo "<img src=\"$subfile\">"; 
echo "<br>"; 
echo "<center><a href=\"javascript:history.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) 
              $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));
            echo "<td valign=\"middle\" align=\"center\" width=\"$thb_x_size\" height=\"$thb_y_size\"><a href=\"#\" onClick=\"window.open('{$cfgClient[$client]["path"]["htmlpath"]}popupviewer.php?uri={$imagedir}/{$file}','bild','width=200,height=200,top=10,left=10,scrollbars=yes,topmargin=0,leftmargin=0');\">".($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\">vorherige Bilder...</a>"; 
} 

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

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


echo "</p>"; 
?>

Hier nun die Datei Popupviewer, diese platziert ihr in dem verzeichnis
in welchem sich die front_content.php befindet (/cms/):
(den code in eine datei kopieren und anschließend popupviewer.php
nennen)

Code: Alles auswählen

<html>

        <head>
                <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
                <meta name="generator" content="Adobe GoLive 5">
                <title></title>
                <style media="screen" type="text/css"><!--
#layer1 { position: absolute; top: 0px; left: 0px; visibility: visible }
--></style>
<SCRIPT TYPE="text/javascript">

<!--
function targetopener(mylink, closeme, closeonly)
{
if (! (window.focus && window.opener))return true;
window.opener.focus();
if (! closeonly)window.opener.location.href=mylink.href;
if (closeme)window.close();
return false;
}
//-->

function resize()	{
		properwidth = Number( document.images["galeriebild"].width );
		if (properwidth<250){
		properwidth=250;
		}
		properheight = Number( document.images["galeriebild"].height )+10;
		if (document.layers) {	
			window.innerWidth = properwidth+5;
			window.innerHeight = properheight+5;
		}
		else {
			window.resizeTo(properwidth+5, properheight+20);
			window.innerWidth = properwidth+5;
			window.innerHeight = properheight+20;
	  	}	
	}

</SCRIPT>
        </head>

        <body onload="resize()" bgcolor="#ffffff">
                <div id="layer1">
                        <a href="/"  onClick="return targetopener(this,true,true)"><img src="<?print $_GET['uri'];?>" name="galeriebild" border="0"></a></div>
                <p></p>
        </body>

</html>
das wars
gruß René
Zuletzt geändert von ReneWho am Sa 17. Jul 2004, 10:25, insgesamt 3-mal geändert.
Zeitgeist
Beiträge: 205
Registriert: Fr 5. Sep 2003, 09:47
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Zeitgeist »

Hi,
ich habs noch nicht eingebaut, aber macht "zurück" in einem Popup Sinn?
Wäre "close" nicht sinnvoller?

Oder wenn "zurück" dann nicht auch "vor"?

Kann auch sein, dass ich "zu dumm" bin den Source richtig zu interpretieren

greets
TimeSpirit
Rechtschreibfehler sind nicht als "Fehler" sondern als Hommage an Pisa zu verstehen ;)
Keine Einträge im Errorlog :)
Contenido 4.4.4 - Firefox -
ReneWho
Beiträge: 101
Registriert: Do 5. Feb 2004, 13:10
Kontaktdaten:

Beitrag von ReneWho »

Hallo Zeitgeist
macht "zurück" in einem Popup Sinn?
Wäre "close" nicht sinnvoller?
Das ist ein überbleipsel aus der "originalversion". relevant
ist der code bei der thumbausgabe. dort öffnet javascript
ein popup an das die url des originalbildes weitergegeben wird.
die passage "zurück" kann ignorriert oder gelöscht werden.

René
mr.o
Beiträge: 8
Registriert: Do 30. Sep 2004, 23:16
Wohnort: Holtland
Kontaktdaten:

Beitrag von mr.o »

Hallo Ihr fleißigen,

Ich habe mit die Bildergalerie angesehen und fand diese sehr simpel und deswegen sehr gut.
Lobend zu erwähnen "DIESES MODUL LÄUFT AUCH MIT EINER 2. NAVIGATION".
Leider kann ich von meinen Kunden nicht erwarten, dass diese sich mit Verzeichnissen und der Verlinkung von Dateien (in diesem Fall Bilder) auskennen.
Um es kurz zu machen ich habe euer Modul etwas umgeschrieben und Drop Down Feld für die Verzeichnissauswahl des Originalbildes und des Tumpnails eingebaut. Es werden alle Ordner und Unterordner im Verzeichniss "cms/upload" aufgelistet.
Zusätzlich habe ich eine Defaulteinstellung für die Dateitypen eingerichtet.
Defaultwert = ".jpg;.gif;.png"
Weiter habe ich die Möglichkeit eingebaut, das Modul abzustellen, da nicht jeder Artikel, der mit diesem Template konfiguriert wurde auch genug Bilder für eine Bilder-Galerie hat.

INFO: Version dieses Moduls ist die der ersten Seite ohne weitere Änderungen (außer meinen).

Hier der Code:
INPUT:

Code: Alles auswählen

$selected = "CMS_VALUE[0]"; 

class pfad { 

   function pfad($pfad) { 
      $this->pfad = $pfad; 
      $this->pathlen = strlen($this->pfad); 
   } 

   function getPath($root,$level = 0) { 
      $content = $this->readDir($root); 

      foreach ($content as $file) { 
         if (is_dir($root.$file)) { 
            $verzeichnis = substr($root,$this->pathlen); 
            $returnvalue["./upload/{$verzeichnis}{$file}"] = str_repeat("&nbsp;",$level * 5).$file; 
            $returnvalue = array_merge($returnvalue,$this->getPath($root.$file."/",$level+1)); 
         } 
      } 

      return $returnvalue; 
   } 

   function readDir($path) { 
      $handle = opendir($path); 

      while ($file = readdir ($handle)) { 
         if ($file != "." && $file != "..") $returnvalue[] = $file; 
      } 
      closedir($handle); 

      return $returnvalue; 
   } 

   function makeSelect($preselection) { 
      $pfad = $this->getPath($this->pfad); 

      foreach ($pfad as $key => $value) { 
         if ($preselection == $key) { 
            echo "<option value=\"$key\" selected=\"selected\">$value</option>"; 
         } else { 
            echo "<option value=\"$key\">$value</option>"; 
         } 
      } 
   } 
}

//funktion für die checkboxen 
function d_checked($which) { 
  if ($which != "") { 
    return "checked"; 
  } 
} // end function 

$pfad = new pfad($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload']); 

echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\">
         <tr> 
        <td>Gallerie verwenden:</td> 
        <td><input type=\"checkbox\" value=\"on\" ".d_checked("CMS_VALUE[10]")." name=\"CMS_VAR[10]\"><font size=\"-2\"> Wird empfolhlen, wenn mehr als 3 Bilder vorhanden sind!</font></td> 
        </tr>
        <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></td>"; 
echo "</tr> 
      <tr bgcolor=\"#E8E8EE\"> 
        <td>Bilderpfad:</td> 
        <td><select size=\"1\" name=\"CMS_VAR[2]\" />"; 
$pfad->makeSelect("CMS_VALUE[2]"); 
echo "	</td> 
     </tr>
     <tr> 
        <td>Thumbnailpfad:</td> 
        <td><select size=\"1\" name=\"CMS_VAR[3]\" />"; 
$pfad->makeSelect("CMS_VALUE[3]"); 
echo "	</td> 
     </tr>
     <tr bgcolor=\"#E8E8EE\"> 
        <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=2 maxlength=3 type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\"></td> 
     </tr> 
     <tr bgcolor=\"#E8E8EE\"> 
        <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>
</table>";
OUTPUT:

Code: Alles auswählen

<?php

$allowGalerie="CMS_VALUE[10]";
if ($allowGalerie == "on"){
echo "<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
// Second modified by: Mr.O www.LG-Web.de

// ANFANG OUTPUT 

$imagedir="CMS_VALUE[2]";
$thumbnails="CMS_VALUE[3]";
$imagefiletypes="CMS_VALUE[4]";
if ("$imagefiletypes" == ""){$imagefiletypes=".jpg;.gif;.png";};
$imagetypes=explode(";","$imagefiletypes");
$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? 

if ($subfile!="") { 
// Bild anzeigen 
// echo "<center><a href=\"javascript:history.back()\">zurück</a></center>"; 
// echo "<br>"; 
 echo "<img src=\"$subfile\">"; 
 echo "<br>"; 
 echo "<center><a href=\"javascript:history.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\">zur&uuml;ck</a>"; 
} 

echo "<span style=\"font-size: 9pt;\"> | Bild ".($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\">weiter</a>"; 
} 

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

echo "</div>";

}; // End if allowGalerie

?>

Leider kann ich keinen Support anbieten! Sorry, Sorry!!

Nochmals vielen Dank für eure Beiträge, Lob und Anerkennung!!!!
kenzo
Beiträge: 112
Registriert: Di 8. Jul 2003, 19:46
Kontaktdaten:

Bildbeschreibung aus der Dateiverwaltung

Beitrag von kenzo »

Ich benutze das Bildergaleriemodul von clear.creative und das funktioniert super.
Hat aber jemand einen Tipp, wie ich die Bildbeschreibung aus der Dateiverwaltung unter die Thumbs und die Bilder in der Großansicht bekomme.

Wie lese ich diese aus. Kann mir noch geholfen werden?


Danke für Eure Hilfe

Hier der von mir verwendete Code

Input:

Code: Alles auswählen

$selected = "CMS_VALUE[0]"; 

class pfad { 

   function pfad($pfad) { 
      $this->pfad = $pfad; 
      $this->pathlen = strlen($this->pfad); 
   } 

   function getPath($root,$level = 0) { 
      $content = $this->readDir($root); 

      foreach ($content as $file) { 
         if (is_dir($root.$file)) { 
            $verzeichnis = substr($root,$this->pathlen); 
            $returnvalue["./upload/{$verzeichnis}{$file}"] = str_repeat("&nbsp;",$level * 5).$file; 
            $returnvalue = array_merge($returnvalue,$this->getPath($root.$file."/",$level+1)); 
         } 
      } 

      return $returnvalue; 
   } 

   function readDir($path) { 
      $handle = opendir($path); 

      while ($file = readdir ($handle)) { 
         if ($file != "." && $file != "..") $returnvalue[] = $file; 
      } 
      closedir($handle); 

      return $returnvalue; 
   } 

   function makeSelect($preselection) { 
      $pfad = $this->getPath($this->pfad); 

      foreach ($pfad as $key => $value) { 
         if ($preselection == $key) { 
            echo "<option value=\"$key\" selected=\"selected\">$value</option>"; 
         } else { 
            echo "<option value=\"$key\">$value</option>"; 
         } 
      } 
   } 
} 

//funktion für die checkboxen 
function d_checked($which) { 
  if ($which != "") { 
    return "checked"; 
  } 
} // end function 

$pfad = new pfad($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload']); 

echo "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"5\" border=\"0\"> 
         <tr> 
        <td>Gallerie verwenden:</td> 
        <td><input type=\"checkbox\" value=\"on\" ".d_checked("CMS_VALUE[10]")." name=\"CMS_VAR[10]\"><font size=\"-2\"> Wird empfolhlen, wenn mehr als 3 Bilder vorhanden sind!</font></td> 
        </tr> 
        <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></td>"; 
echo "</tr> 
      <tr bgcolor=\"#E8E8EE\"> 
        <td>Bilderpfad:</td> 
        <td><select size=\"1\" name=\"CMS_VAR[2]\" />"; 
$pfad->makeSelect("CMS_VALUE[2]"); 
echo "   </td> 
     </tr> 
     <tr> 
        <td>Thumbnailpfad:</td> 
        <td><select size=\"1\" name=\"CMS_VAR[3]\" />"; 
$pfad->makeSelect("CMS_VALUE[3]"); 
echo "   </td> 
     </tr> 
     <tr bgcolor=\"#E8E8EE\"> 
        <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=2 maxlength=3 type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\"></td> 
     </tr> 
     <tr bgcolor=\"#E8E8EE\"> 
        <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> 
</table>";


Output:

Code: Alles auswählen


<?php 

$allowGalerie="CMS_VALUE[10]"; 
if ($allowGalerie == "on"){ 
echo "<script language=\"JavaScript\"> 
function boo(){ 
} 
</script> 

<center>
<div class=\"htmltext\">"; 

// Bildergalerie 
// Imageresize über ImageMagick *ODER* GD 
// Version: 15.01.2004 
// 
// Author: ?? 
// Modified by: Robert Strouhal www.clearcreative.de 
// Second modified by: Mr.O www.LG-Web.de 

// ANFANG OUTPUT 

$imagedir="CMS_VALUE[2]"; 
$thumbnails="CMS_VALUE[3]"; 
$imagefiletypes="CMS_VALUE[4]"; 
if ("$imagefiletypes" == ""){$imagefiletypes=".jpg;.gif;.png";}; 
$imagetypes=explode(";","$imagefiletypes"); 
$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? 

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

} else { 
// Gallery anzeigen 

$handle=opendir($imagedir); 

echo "<center><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\">zur&uuml;ck</a>"; 
} 

echo "<span style=\"font-size: 9pt;\"> | Bild ".($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\">weiter</a>"; 
} 

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

echo "</div>"; 

}; // End if allowGalerie 

?>
i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt »

Wie kann man die Beschreibung des Bildes auslesen? Wenn man Bilder in einen Ordner lädt, kann man ja auch einen Text dazu eigeben. Diesen würde ich gerne auslesen. Nur wie?
Gruss,
Michael

"Keep on riding this Bike!" (Jackson Mulham)
Gesperrt