noob: Templates und Schleifen

Mahlzeit,

ich bin beim Schreiben meiner eigenen kleinen Template Engine gerade auf ein Problem gestoßen. Ich möchte URLs zu Bildern aus einer MySQL Datenbank auslesen und diese Bilder dann ausgeben. Nur wie mache ich das? Im Template kann ich keinen PHP Code verwenden und in der PHP Datei sollte ich keinen HTML Code verwenden?
Wie wird denn sowas üblicherweise gemacht?

Mfg, noob

  1. Tach,

    Ich möchte URLs zu Bildern aus einer MySQL Datenbank auslesen und diese Bilder dann ausgeben.

    Keine Ahnung wie nachher Deine Ausgabe aussehen soll, handelt es sich um ein Bild pro Seite oder mehrere an verschiedenen Stellen? Möchtest Du eine Liste mit mehreren Bildern ausgeben,wie in einer Art Gallerie dargestellt?

    Wie wird denn sowas üblicherweise gemacht?

    Kommt darauf an wie Deine Engine aufgebaut ist. Wenns diese ganz einfach ist brauchst Du für die Erzeugung einer dynamischen Liste mind. 2 Templates:

    Template 1 stellt den Html-Code für ein Bild in einer Tabellenzelle dar, also z.B. <td><img src="{IMG_SRC}" alt="{IMG_ALT}" border="0" width="{IMG_WIDTH}" height="{IMG_HEIGHT}" /></td>

    Dieses Template musst Du innerhalb Deiner Schleife in PHP für jedes Bild erneut einlesen und innerhalb der Schleife mit den entsprechenden Werten Deiner DB füllen, hier wäre es der Source, Alt-Text, die Breite und Höhe.
    Am Ende der Schleife liest Du jedes gefüllte Template1 in ein Array, z.B. $all_images[]

    Template 2 stellt eine Tabellenreihe dar und liest in einer Schleife eine bestimmte Anzahl (je nach dem ob Du 3 oder 10 Bilder in einer Reihe haben willst) von Tabellenzellen ein, also z.B. <tr>{ONE_ROW}</tr>

    In PHP musst Du wieder in einer Schleife das Template einlesen und durch die Anzahl der Bilder pro Reihe füllen und im Template ersetzen.

    Template3 Schliesslich ist der Rest Deiner Seite und der Tabellenanfang und das Tabellenende in das alle Reihen eingelesen werden.

    Mehr kann ich leider ohne genauere Angaben von Dir nicht dazu schreiben, hoffe es hilft Dir ein wenig?

    Grüsse AndreD

    1. Ja, danke, an so eine Lösung dachte ich auch.