Gallery mit PHP - dringend!

Ruderfreund

Grünschnabel
Hallo,
ich überlege die ganze Zeit wie ich eine Gallery mit PHP programmiere!
Folgendes Beispiel:
- 100 Bilder in einem Ordner
- 20 Bilder pro Seite
- automatische Thumbs
- wenns geht mit Kommentarabgabe zu jedem Bild bei der Großansicht

Mein größtes Problem ist es, wie er die Bilder aus dem Ordner ausliest, und dann immer nur 20 Bilder nacheinander anzeigt. Also oben kommt eine Linkleiste mit "vor 1,2,3... zurück" hin, die er automatische generiert.
Sowas ähnliches habe ich ja schon bei meinem GB gemacht: www.05-abi.de

Oder ist es besser man lädt die ganzen Bilder in eine Mysql Tabelle?

wäre super wenn mir jemand helfen kann!
ciao
Sebastian
 
Such mal nach "Blätterfunktion".
Das ist zwar meißt in Bezug auf Datenbanken, sollte sich aber umfunktionieren lassen.
Schau mal bei opendir und readdir und closedir
Wahrscheinlich wirst Du erst das komplette Verzeichnis einlesen müssen (beim einlesen am besten gleich auf die Endung der Datei achten), die gewünschten Dateien in ein Array schreiben und im Anschluss das Array sortieren und mit array_slice auf die entsprechend aktiven Dateien der Seite beschränken.
Mit diesem verkürzten Array kannst Du dann die Links auf das Vollbild und die src im Image-Tag auf Dein Thumbnailskript (z.B. phpThumb) setzen.

EDIT: Bevor Du das Array kürzt solltest Du die Größe ermitteln, um die dynamisch generierten Links "Seite 1,2,3..." passend zu erzeugen.
 
1. man speichert keine Bilder in ne DB.
Es reicht wenn du einfach die namen der Bilder speicherst.

2. Warum benützt jeder readdir etc? glob geht doch genauso?

Ansonsten haste hier ja sicher 2 Scripte. eins was einfach dieBilder ausgibt und eins was guckt welches Bild noch nicht in der DB ist und es entsprechend einfügt.
 
Sicaine hat gesagt.:
1. man speichert keine Bilder in ne DB.
Es reicht wenn du einfach die namen der Bilder speicherst.

2. Warum benützt jeder readdir etc? glob geht doch genauso?

Ansonsten haste hier ja sicher 2 Scripte. eins was einfach dieBilder ausgibt und eins was guckt welches Bild noch nicht in der DB ist und es entsprechend einfügt.
1. Sehe ich genauso, außer, dass es simpel zum Backup ist und unabhängig von den Pfaden, aber das wiegt nicht die Nachteile auf.

2. Danke, guter Tipp, das kannte ich noch nicht.
 
Vielen Dank

ich werde mich nachher mal dransetzen und sehen, dass ich es hinkriege.
Eine Frage habe ich noch:
Ich denke mal, es ist sinnvoll die Thumbs in einer Tabelle anzeigen zu lassen...
Das heißt, bei 9 Bildern, eine Tabelle mit 3 Zeilen und 3 Spalten.
Aber wenn ich die ersten 9 Bilder des Arrays ausgebe, müsste ich die Bilder dann mit einer While-Schleife in die Tabelle einfügen und erstellen, oder?
Weiß noch nciht genau, wie ich das anstellen soll...:confused:
Oder habt ihr eine bessere Idee?

mfg
Sebastian
 
Du kannst das array erneut mit array_slice in 3 einzelne Arrays aufteilen oder Du lässt in der while-Schleife zusätzlich einen Zähler mitlaufen, mit Hilfe dessen Du bei 3 und 6 bzw. 2 und 5 (wenn bei 0 anfängst zu zählen) "</tr><tr>" ausgibts.
Aber achte darauf, dass Du auf der letzten Seite evtl. keine 9 Bilder mehr hast. Auch das kannst Du mit dem Zähler abfangen und mit einer weiteren while-Schleife entsprechend leere Zellen ausgeben.
 
Also vielen Dank!

Das Script von mir funktioniert nun 1A! Eine Frage habe ich da aber noch:
Ich habe jetzt extra ein Ordner für Thumbs erstellt das auch aus in ein Array eingelesen wird und dann als Thumbs ausgegeben wird.
Kann man das nicht einfacher machen! Gibt es keine Möglichkeit, die großen bilder einfach auch von der Dateigröße zuverkleinern, aber ohne sie zu speichern?
Oder muss ich immer extra Thumbs erstellen? Wäre mühsam, denn ich will ja einfach Bilder hochladen und dann schnell ausgeben!
mfg
Sebastian
 
Du kannst die Bilder mit dem erwähnten phpThumb live beim Abruf der Seite verkleinern.
I. d. R. empfiehlt es sich aber, die generierten Thumbs zu cachen.
Das Thumbmaker-Skript sollte dann ein eigenes von Dir sein und die Thumbs nur von phpThumb erzeugen lassen, wenn noch keins vorhanden ist. Dieses speicherst Du dann in einem eigenen Thumbs-Ordner, der dieselbe Verzeichnisstruktur abbildet, wie Deine Alben.
Ist das Thumb bereits vorhanden, schleust Du es einfach durch (den header nicht vergessen).
Vielleicht hat phpThumb ja sogar eine Funktion zum cachen, dass weiß ich nicht.
Du brauchst auf jeden Fall nicht jedesmal beide Ordner voll durchlaufen, sondern nur den Galleryordner und dann prüfen, ob das Thumb existiert, vorrausgesetzt, Du hast eine Struktur, bei der sich aus dem Originalbildpfad eindeutig auf das Thumb schliessen lässt.
Wenn Dir die Serverperformance relativ egal ist, oder sich die Bilder häufig ändern, kannst Du auch immer Live erzeugen, das macht die Sache wesentlich einfacher.
Über das Erstelldatum von Original und Thumb würde sich aber auch bei häufig wechselnden/veränderten Bildern vernünftig cachen lassen... es gibt so viele Möglichkeiten.
Das einfachste ist, Du erzeugst sie jedesmal Live beim Abruf der Seite.
 
Zurück