hotti: Eigene Templates

Beitrag lesen

hi,

Meine Frage lautet: Wie kann ich ein einfaches Templatesystem entwickeln?

Vorab überlegen, was gebraucht wird und wie die Patzhalter aussehen könnten. Für Dein Vorhaben sollte das Templatesystem (nennen wir es Template Engine, TE) Loops können. Hinzu kommt das einfache Ersetzen von Platzhaltern, die einfache Literale (Strings) sind. Oft gebraucht in einem Template sind Kontroll-Elemente if/else. Das wären die Mindestanforderungen.

Die Platzhalter könnten so aussehen, Loops mit %loop_*% beginnen, wobei * dann ein frei wählbarer Name ist. Die TE muss wissen, wann Schluss ist, das könnten wir einheitlich mit %endloop% kennzeichnen.

Ähnlich if/else und das mal zusammen mit einer Schleife in einem Template

%if_downloads%

%loop_downloads%
 <h2> %title% </h2>
 <p> %descr% </p>
%endloop%

%else%

<p>Leider gibts heute nix zum Download, aber <a href=%link_story%" title="%title_story%">eine schöne Gute-Nacht-Geschichte</a>.   </p>

%endif%

So oder so ähnlich sehen viele Templates aus, gesprochen wird die Sprache der TE wobei die Geschäftslogik und die Beschaffung der Inhalte an einer anderen Stelle erfolgt.

Umsetzen könntest Du das entweder mit Regulären Ausdrücken oder mit einem Parser, Ersteres ist einfacher, Beispiel fürs Loop: Alles was zwischen %loop_*% und %endloop% liegt, wird ermittelt, das ist sozusagen ein Template im Template, hier wären dann nur noch Literale zu ersetzen. Die TE geht durch das Array der Platzhalter und nimmt die Ersetzungen vor.

Ähnlich %if_*% %else% %endif% hier hätten wir wiederum kleine Template-Fragmente innerhalb des gesamten Templates.

Zum Schluss werden die übriggebliebenen %literale% ersetzt und das Template gilt als gerendert.

Willst Du Dir das antun? Ja, oder Ja? Ja, ich habs auch gemacht und ich habe es nicht bereut, an meiner TE habe ich immer wieder meine Freude beim Erstellen von Seiten mit dynamischen Inhalten oder interaktiven Anwendungen, weil sowohl Code als auch Templates schön übersichtlich sind.

MfG