Zufallsbilder generieren (mit Thumbnail) und bei Klick per Lightbox öffnen?

Rayne

Erfahrenes Mitglied
Hallo!

Ich bin gerade dabei, meine Website http://www.sky-divezone.de ein wenig zu überarbeiten.

Wie ihr sehen könnt, befinden sich rechts neben dem Content drei Bilder, die bei jedem Refresh oder Wechseln zufällig getauscht werden.
Momentan ist dies mit JavaScript gelöst, das aber mehrere Nachteile hat:

- Bilder sind nicht anklickbar
- es können keine Ordner angegeben werden, jedes Bild muss per Hand im Script hinzugefügt werden
- es werden keine Thumbnails erzeugt, muss also alle Fotos extra für die Zufallsbilder als Thumb in einem extra Ordner abspeichern

Da ich mich bis dato noch nicht mit php auseinandergesetzt habe, suche ich nach vorgefertigten Scripts, habe aber auch bei längerer Suche keine gefunden, die ungefähr meinen Anforderungen entsprechen:

- ich kann mehrere Ordner angeben, aus denen das Script ein Bild auswählt, ein Vorschaubild generiert und ausgibt
- die Bilder sollen anklickbar sein, um das Originalbild zu sehen (per Lightbox?)

Da ich meine Bilder per Lightbox anzeigen lasse, wäre es natürlich schön, wenn auch die Zufallsbilder damit arbeiten würden. Ist das möglich?

Kennt ihr solche Scripts, die ihr mir empfehlen könnt? Wisst ihr gar selber, wie man so etwas umsetzen könnte?

Ich bin wirklich für jede Hilfe dankbar :)
 
Erstmal: Was ist Lightbox?
Dann: Ich kenne kein Script, welches das tut, was du wünschst, aber wenn du dich ein wenig mit PHP auseinandersetzen würdest, könntest du sicher ein Script, welches eine Gallerie anzeigt, auseinandernehmen und die wichtigsten Teile daraus entnehmen, um sie nach deinen Wünschen anzupassen.
Aber ansonsten bleibt noch, dir ein Script für Thumbnails zu suchen, wenn du eins hast, sollte das auch recht einfach zu konfigurieren sein (sprich: Ordner/Dateien angeben). Dann fehlt halt nur noch eine Funktion zum zufälligem Auswählen des Bildes, das lässt sich aber einfach mit rand() lösen. Bei speziellen Fragen kann ich dir da auch gerne helfen ;)

Und dass die Bilder anklickbar sein sollen, tja. Dazu müsstest du halt einen Link setzen. HTML? :rtfm ;)
 
Eine Lightbox ist ein JavaScript basierendes AddOn zur komfortablen Inline-Anzeige von weiteren Inhalten, die man meist über eine (interaktive) Schaltfläche aufrufen kann.

Die prinzipiellen Schritte zur Erstellung eines verkleinerten oder vergrößerten Bildes sind nicht schwer. Aus dem Originalbild wird eine Ressource erzeugt, mit der gearbeitet werden kann.
PHP:
$original = imagecrreatefromjpg($pfad);
$breite = 150;
$hoehe = 96;
$thumbnail = imagecreatetruecolor($breite, $hoehe);
imagecopyresampled ($thumbnail, $original, 0, 0, 0, 0, $breite, $hoehe, imagesx($original), imagesy($original));
header('Content-Type: image/jpeg');
imagejpeg($thumbnail, '', 80);
Das wäre nur ein kleines Beispiel für ein sehr, sehr simples Thumbnailscript. Das benötigt sicher noch einige Modifikationen. Wenn du PHP5 ordentlich nutzen kannst, würde ich auch eine modifizierte Version meiner Image-Klasse anbieten, die sehr sicher ist und auch alle Aufgaben mehr als zufriedenstellend erledigen kann.
Die Thumbnails kannst du on the Fly erzeugen oder auch einfach so erzeugen und dann speichern - Was dir lieber ist ;)
Die Lightbox-Funktion müsstest du dann einfach folgendermaßen einbinden:
HTML:
<a href="/pfad/zum/original.jpg" rel="lightbox"><img src="/pfad/zum/thumbnail.jpg" alt="Zufallsbild" /></a>

Für deine genauen Ziele möchte ich dir nur ungern fertige Snippets in den Rachen legen, da deine Ziele gut zum Lernen geeignet sind...
Interessant wären vor allem, was die Ordnerdurchsuchung angeht, die PHP-interne Directory-Klasse und die Funktion [phpf]getimagesize[/phpf] - Du könntest, als kleinen Ansatz, das Zielverzeichnis durchlaufen, und überall wo getimagesize kein leeres Array zurückgibt die Datei als "Bilddatei" betrachten und verwerten. Besser geht das zwar mit einer Datenbank, in der du die ganzen Bilder erfasst, aber ist erstmal weniger wichtig. Über ein weiteres Script, angenommen thumb.php kannst du nun den GET-Parameter file abfangen und schauen, ob $_GET['file'] in deinem Bildverzeichnis besteht. Wenn ja, wird es verwertet und ausgegeben.
 
Zurück