Tom: Eigene Templates

Beitrag lesen

Hello Lukas,

Also erstmal wollte ich nur sagen, dass ich hier ganz neu im Forum, und erst 13 Jahre alt bin!
Aber mein Alter hat mich trotzdem nicht daran gehindert, mit programmieren anzufangen!

Meine Frage lautet: Wie kann ich ein einfaches Templatesystem entwickeln?
Ich will euch genaueres anhand einen Beispiels erklären. Das Beispiel ist eine Downloadseite. Es gibt eine Downloads.php (in der wird eine Liste aller verfügbaren Downloads aufgelistet), eine  eine download.php (hier wird ein Download gezeit, auf den man geklickt hat, und eine download.tpl.htm (hier drin soll das Template stehen).

Die download.php vergibt jedem einzelnem Download eine downloadID, und über die soll der Browser dann erkennen, welcher Download das jetzt ist. In einer Datenbank sollen die Zeilen: "downloadID", "headline", "teaser", "Text", "Foto" sein. Ich will in der download.php eingetragen haben, dass der das, was in der Datenbank steht, auslesen will. Aber halt die richtige downloadID.

Der HTML Code für download.tpl.php:

<!doctype html>
<html>
    <head>
       <title>Templatesystem</title>
       <meta charset="UTF-8">
    </head>
    <body>
          <!--Die Überschrift soll angezeigt werden: -->
            [:HEADLINE:]

<!--Der Teaser soll ausgegeben werden:-->
            [:TEASER:]

<!--Der Text soll ausgegeben werden:-->
            [:TEXT:]

<!--Ein Foto soll angezeigt werden:-->
            [:FOTO:]

</body>
</html>

  
Ich finde Deinen Ansatz gut.  
Vollständige Trennung von Markup, Style und Content wäre ein erstrebenswertes Ziel.  
  
Das ertüchtigt das System dann ganz leicht zur Syndication. Die Partner können also ein eigenes Markup und eigene Sytels bereitstellen und nuten nur den Content der zentralen Verwaltung.  
  
Wie man das dann abwickeln kann, da gibt es unterschiedliche Ansätze.  
Ich würde mich freuen, dich bei deinen eigenen Gedanken zu dem Thema zu unterstützen.  
  
  
Du könntest selbstverständlich auch schauen, wie es andere "Templatesysteme" machen. Aber ich würde das erst nach der Formulierung der eigenen Gedanken tun, denn man wird sehr schnell blind für Innovation und Kreativität, wenn "man es so macht, wie es üblich ist", also "das Rad nicht neu erfindet". Aber ich bin sicher, dass das ultimative Rad noch gar nicht erfunden wurde.  
  
Mein Vorschlag wäre also: erstmal eigene Ideen diskutieren, sich nicht kirre machen lassen von "Best-Practice"-Vorschlägen, die hier ganz bestimmt gleich kommen werden \*g\*  
  
Die Methode, die dir M. vorgeschlagen hat, ist eine übliche, hält aber die Trennung nicht ein. Man gibt dem Template-Trustie damit auch Macht über die Programmierung. Dies gilt es aber i.d.R. zu unterbinden.  
  
  
  
Die Schwierigkeit bei Deiner Methode (die ich persönlich am saubersten finde) sind immer die optionalen oder wiederholten Inhalte (Tabellen, Listen, Abfragen aus der Datenbank, usw.) Das kann man aber auch lösen.  
  
Und ein Template-System ist nur so gut, wie die zusätzlichen Werkzeuge für den Developer. Man muss also sowohl feststellen können, welche Platzhalter im Template zur Verfügung stehen, als auch wissen, welche Replace-Funktionen dafür zur Verfügung stehen.  
  
Und man sollte sich von vorne herein immer klar machen, dass das Template nur passiv bleibt und nur zur Darstellung dient, nicht aber zur Steuerung!  
  
  
Wenn Du Interesse hast, daraus eine längere Sache zu machen, dann kannst Du mir gerne auch eine eMail schreiben an tom.vom.berg@online.de  
  
Und als Grundidee schau Dir mal die Mächtigkeit der PHP-Funktion str\_replace() an  
<http://de2.php.net/manual/en/function.str-replace.php>  
  
  
  
  
  
  
  
  
Liebe Grüße aus dem schönen Oberharz  
  
  
Tom vom Berg  
![](http://selfhtml.bitworks.de/Virencheck.gif)  
  

-- 
 ☻\_  
/▌  
/ \ Nur selber lernen macht schlau  
[Die ultimative Seite für Selbermacher](http://getscript.de/)