Seite 4 von 5
Verfasst: Mi 24. Mär 2004, 19:13
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???
Verfasst: Di 6. Apr 2004, 16:49
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.
verdammt...
Verfasst: Fr 18. Jun 2004, 11:40
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
Modul OK
Verfasst: Fr 18. Jun 2004, 11:49
von Zeitgeist
Nachtrag:
=======
Modul OK, man(n) muss halt JPG nehmen und nicht GIF
nur was mach ich mit der blöden Dateiverwaltung?
nu aber
Verfasst: Fr 18. Jun 2004, 13:42
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
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
Re: nu aber
Verfasst: Fr 18. Jun 2004, 18:28
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.
Verfasst: Di 6. Jul 2004, 19:24
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!
Verfasst: Do 15. Jul 2004, 08:46
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é
Verfasst: Do 15. Jul 2004, 08:58
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
Verfasst: Do 15. Jul 2004, 10:07
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é
Verfasst: Do 15. Jul 2004, 11:34
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
Verfasst: Do 15. Jul 2004, 11:41
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é
Verfasst: Mo 17. Jan 2005, 22:20
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(" ",$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ö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ü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!!!!
Bildbeschreibung aus der Dateiverwaltung
Verfasst: Di 21. Jun 2005, 21:24
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(" ",$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ö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ü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
?>
Verfasst: Mi 6. Jul 2005, 22:16
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?