Ich programmiere momentan eine Bildergallery in PHP.
Das ganze ist in diesem Prinzip aufgebaut: Zuerst gelangt man auf eine Galleryübersicht mit den verkleinerten Fotos. Klickt man ein solches an öffnet sich das dazugehörige grosse Foto im gleichen Fenster. Unter dem Foto gibt es einen next-, prev-, und Back to Gallery Button.
Diese Funktionen funktionieren auch alle, ausser, dass man unendlich lang den next- bzw. prev- Button klicken kann und es im Array immer noch eines dazuzählt. Dies hat zu Folge das am Ende der Gallery einfach keine Fotos mehr angezeigt werden und statt dessen das "Bild nicht gefunden"-Symbol angezeigt wird.
Ich würde jetzt aber gerne eine Funktion einbauen, welche es möglich macht, dass beim ersten Foto im Array der prev-Button weggelassen wird und beim letzten Foto der next-Button...
Hier noch die Codes:
gallery.php
---------------
<?php
echo "<script type=\"text/javascript\">\n";
echo "function NewWindow (Adresse) {\n";
echo " Fenster1 = window.open(Adresse, \"Zweitfenster\", \"width=600,height=600,left=100,top=200\");\n";
echo " Fenster1.focus();\n";
echo "}\n";
echo "</script>\n";
include("functions/check_thumb.php");
$files = $thumbs = array(); /* 2 Arrays werden erstellt */
$path = "images/fotoalbum";
$verzeichnis = @opendir($path);
if(!$verzeichnis) die ("Kann Verzeichnis $path nicht öffnen");
rewinddir($verzeichnis);
while($file = readdir($verzeichnis)) {
if($file != "." and $file != "..") {
array_push($files, "$file");
}
}
sort($files);
$imgnr = 0;
foreach($files as $file) {
$thumbfile = "upload/thumbfiles/$file.thumb";
check_thumb("$path/$file", $thumbfile);
echo "<a method=\"GET\" name=\"thumbnail\" href='thumbnail.php?imgnr=$imgnr'>\n";
echo "<img src=\"$thumbfile\"></a>\n";
$imgnr++;
}
?>
thumbnail.php
--------------------
<?php
include("functions/check_thumb.php");
$files = $thumbs = array(); /* 2 Arrays werden erstellt */
$path = "images/fotoalbum";
$verzeichnis = @opendir($path);
$imgnr = $_GET['imgnr'];
if(!$verzeichnis) die ("Kann Verzeichnis $path nicht öffnen");
rewinddir($verzeichnis);
while($file = readdir($verzeichnis)) {
if($file != "." and $file != "..") {
array_push($files, "$file");
}
}
sort($files);
echo "<html>\n";
echo " <head>";
echo " <title>Gallery</title>\n";
echo " </head>\n";
echo " <body>\n";
echo " <p align=\"center\"><img src=\"$path/",$files[$imgnr],"\"></p>\n";
echo " <p align=\"center\">© The Riot Plugs</p>\n";
print_r(array_search($thumbnail,$files));
echo "<p align=\"center\">\n";
if($imgnr =
echo "<a method=\"GET\" name=\"thumbnail\" href='thumbnail.php?imgnr=",$imgnr-1,"'>prev</a> \n";
echo "<a href=\"gallery.php\">Gallery</a> \n";
echo "<a method=\"GET\" name=\"thumbnail\" href='thumbnail.php?imgnr=",$imgnr+1,"'>next</a>\n";
echo "</p>";
echo " </body>\n";
echo "</html>\n";
?>
umwandeln.php:
----------------------
<?php
include("functions/check_thumb.php"); /* Die Quintessenz aus "Bilder und Thumbnails" als Funktion */
$files = array();
$path = "images/fotoalbum";
$verzeichnis = @opendir($path); /* öffnet das Verzeichnis (@ unterdrückt Fehlermeldung) */
if (!$verzeichnis) die ("Kann Verzeichnis $path nicht öffnen");
rewinddir($verzeichnis); /* setzt den Verzeichnis-Zeiger auf die erste Datei */
while($file = readdir($verzeichnis)) { /* durchläuft alle Dateien im Verzeichnis */
if($file != "." and $file != "..") {
array_push($files, "$file"); /* Dateien werden in das Array $files gespeichert */
}
}
sort($files); /* soriert, weil das durch readdir() nicht immer gewährleistet ist */
foreach($files as $file) {
if(check_thumb("$path/$file", "upload/thumbfiles/$file.thumb")) { /* includet Funktion, legt Thumbs an,
wenn sie noch nicht existieren */
echo "Thumbfile für $file neu gemacht <br />\n"; /* die Funktion gibt "true" zurück
wenn neu erstellt */
}
else echo "Thumbfile für $file gabs schon<br />\n"; /* "false für Thumb gabs schon */
}
echo "fertig";
?>
Kann mir jemand helfen???
Das ganze ist in diesem Prinzip aufgebaut: Zuerst gelangt man auf eine Galleryübersicht mit den verkleinerten Fotos. Klickt man ein solches an öffnet sich das dazugehörige grosse Foto im gleichen Fenster. Unter dem Foto gibt es einen next-, prev-, und Back to Gallery Button.
Diese Funktionen funktionieren auch alle, ausser, dass man unendlich lang den next- bzw. prev- Button klicken kann und es im Array immer noch eines dazuzählt. Dies hat zu Folge das am Ende der Gallery einfach keine Fotos mehr angezeigt werden und statt dessen das "Bild nicht gefunden"-Symbol angezeigt wird.
Ich würde jetzt aber gerne eine Funktion einbauen, welche es möglich macht, dass beim ersten Foto im Array der prev-Button weggelassen wird und beim letzten Foto der next-Button...
Hier noch die Codes:
gallery.php
---------------
<?php
echo "<script type=\"text/javascript\">\n";
echo "function NewWindow (Adresse) {\n";
echo " Fenster1 = window.open(Adresse, \"Zweitfenster\", \"width=600,height=600,left=100,top=200\");\n";
echo " Fenster1.focus();\n";
echo "}\n";
echo "</script>\n";
include("functions/check_thumb.php");
$files = $thumbs = array(); /* 2 Arrays werden erstellt */
$path = "images/fotoalbum";
$verzeichnis = @opendir($path);
if(!$verzeichnis) die ("Kann Verzeichnis $path nicht öffnen");
rewinddir($verzeichnis);
while($file = readdir($verzeichnis)) {
if($file != "." and $file != "..") {
array_push($files, "$file");
}
}
sort($files);
$imgnr = 0;
foreach($files as $file) {
$thumbfile = "upload/thumbfiles/$file.thumb";
check_thumb("$path/$file", $thumbfile);
echo "<a method=\"GET\" name=\"thumbnail\" href='thumbnail.php?imgnr=$imgnr'>\n";
echo "<img src=\"$thumbfile\"></a>\n";
$imgnr++;
}
?>
thumbnail.php
--------------------
<?php
include("functions/check_thumb.php");
$files = $thumbs = array(); /* 2 Arrays werden erstellt */
$path = "images/fotoalbum";
$verzeichnis = @opendir($path);
$imgnr = $_GET['imgnr'];
if(!$verzeichnis) die ("Kann Verzeichnis $path nicht öffnen");
rewinddir($verzeichnis);
while($file = readdir($verzeichnis)) {
if($file != "." and $file != "..") {
array_push($files, "$file");
}
}
sort($files);
echo "<html>\n";
echo " <head>";
echo " <title>Gallery</title>\n";
echo " </head>\n";
echo " <body>\n";
echo " <p align=\"center\"><img src=\"$path/",$files[$imgnr],"\"></p>\n";
echo " <p align=\"center\">© The Riot Plugs</p>\n";
print_r(array_search($thumbnail,$files));
echo "<p align=\"center\">\n";
if($imgnr =
echo "<a method=\"GET\" name=\"thumbnail\" href='thumbnail.php?imgnr=",$imgnr-1,"'>prev</a> \n";
echo "<a href=\"gallery.php\">Gallery</a> \n";
echo "<a method=\"GET\" name=\"thumbnail\" href='thumbnail.php?imgnr=",$imgnr+1,"'>next</a>\n";
echo "</p>";
echo " </body>\n";
echo "</html>\n";
?>
umwandeln.php:
----------------------
<?php
include("functions/check_thumb.php"); /* Die Quintessenz aus "Bilder und Thumbnails" als Funktion */
$files = array();
$path = "images/fotoalbum";
$verzeichnis = @opendir($path); /* öffnet das Verzeichnis (@ unterdrückt Fehlermeldung) */
if (!$verzeichnis) die ("Kann Verzeichnis $path nicht öffnen");
rewinddir($verzeichnis); /* setzt den Verzeichnis-Zeiger auf die erste Datei */
while($file = readdir($verzeichnis)) { /* durchläuft alle Dateien im Verzeichnis */
if($file != "." and $file != "..") {
array_push($files, "$file"); /* Dateien werden in das Array $files gespeichert */
}
}
sort($files); /* soriert, weil das durch readdir() nicht immer gewährleistet ist */
foreach($files as $file) {
if(check_thumb("$path/$file", "upload/thumbfiles/$file.thumb")) { /* includet Funktion, legt Thumbs an,
wenn sie noch nicht existieren */
echo "Thumbfile für $file neu gemacht <br />\n"; /* die Funktion gibt "true" zurück
wenn neu erstellt */
}
else echo "Thumbfile für $file gabs schon<br />\n"; /* "false für Thumb gabs schon */
}
echo "fertig";
?>
Kann mir jemand helfen???