Template System

mtk-flo

Erfahrenes Mitglied
Hallo,

ich will mir ein eigenes Template System schreiben, weiß aber nicht genau wie.

Ich will verschieden Templates zur Auswahl haben, die der Admin selber editieren kann.
Z.B. Kann er bei einer News zwischen 3 Templates wählen.

Die Template liegen in einer HTML Datei.

Ich lese aus der DB die News ein, wo drin steht, welches Template verwendet wird.
Ein Datensatz sieht so im Moment aus:

header | datum | text | autor | template
1. April | 1.4.06 | April April | Admin | tmpl1.html

Nun muss ich irgendwie meine Template Variabeln tauschen mit dem Inhalt aus der DB.
Nur wie ?


templ1.html
HTML:
<HTML>
<HEAD>
<TITLE>Template 1</TITLE>
</HEAD>
<BODY>
{tmpl_header} - {tmpl_datum}<br>
{tmpl_text}<br>
geschrieben von {tmpl_autor}
</BODY>
</HTML>
 
Darf ich dir einen Vorschlag machen: Nimm lieber nur ein Template, das aber beliebig verändert werden kann und formatiere es anschließend mit CSS. Das könntest du auch mit mehreren Themes in Verbindung bringen.
 
Bei mir laeuft das folgendermassen:
  • index.php liest output.html
  • index.php includet verschiedene Scripts die verschiedene Indizes im Array $changes fuellen
  • index.php ersetzt die Platzhalter im Template mittels str_replace() durch die Inhalte von $changes
  • index.php gibt die fertige Seite aus
 
Wozu das Rad neu erfinden:
Check die Pear-Module aus (http://pear.php.net)... es gibt auch eine Reihe anderer mächtiger Template-Module oder -Klassen, die sowohl effektiv als auch effizient sind (mal googlen).

Sehr zu Empfehlen kann ich das HTML_Flexy_Template aus den Pear-Modulen.

Sollte nur ne Anregung sein ;-)
 
Also, wenn du ne ganz feine und saubere Lösung haben willst, nimm Smarty, die Template-Engine der PHP-Entwickler.

Die bietet sogar die Möglichkeit, Templates direkt aus einer Datenbank zu laden. Außerdem kannst du dann auch in den Templates z.B. mit Schleifen etc. arbeiten:

http://smarty.php.net
 
Zurück