Template-Engine

Öhm... versteh ich nicht ganz sorry!

Ich bin in English nicht so der Hit, daher wäre es im Deutscher Sprache für mich einwenig vom Vorteil ;)
 
Na, ums Englisch wirst du aber wohl kaum drumrumkommen ;) Ich kann dir aber mal empfehlen die Template-Klasse des phpBB anzugucken, die ist etwas anders aufgebaut, als Smarty, aber m.M.n. sehr angenehm im Einsatz.

Ich finde deinen Weg Templates einzusetzen aber etwas verwirrend, geradezu umständlich. Ich hab das so verstanden, dass du den HTML-Code für das Template inklusive aller Platzhalter in ein Formularfeld eingibst, dass dann abgeschickt wird und im Script "ausgefüllt" wird (Platzhalter ersetzen). Anschließend wird die ganze Schose dann als Datei gespeichert. D.h. also eine fertige HTML-Datei, so wie sie der Besucher sehen soll. Ich denke, dass es bei diese Lösung wesentlich schneller ginge statt der Platzhalter gleich den richtigen Inhalt in die Seite einzufügen.

Normalerweise dienen Templates dazu dynamische Inhalte, also wechselnder Art, bequem darstellen zu können. Die meisten Tempalte-Engines funktionieren so, dass eine Template-Datei bereits vorhanden ist, die vom Script dann eingelesen wird (z.B. mit file_get_contents();), woraufhin die Platzhalter (z.b. {PLATZHALTER}) durch den Inhalt aus der Datenbank ersetzt wird. Diesen kompilierte Code wird dann an den Browser ausgegeben (echo). An den Rohdaten der Template-Datei wird also nichts verändert, ebensowenig an den Daten in der Datenbank. Die kompilierte Template-Datei muss auch nicht gespeichert werden, um sie an den Browser ausgeben zu können. Das geschieht z.B. in einem Cache-System.
 
Kann man die {Platzhalter} nicht auch durch bestimmte Scripts füllen lassen? Menü, Content (News-Script, Forum, Blog, ...) ? Denn so etwas würde ich gerne mal machen - eine HTML Datei für das Design und dadrin entsprechende Platzhalter für wie eben genannt: Menü, & Content (als Beispiel).
 
Kann man die {Platzhalter} nicht auch durch bestimmte Scripts füllen lassen? Menü, Content (News-Script, Forum, Blog, ...) ?
U.A. genau DAS macht ein Tpl.System... ;)

My Favourite Template System:
PHP:
<h1><?php echo($headings[1]); ?></h1> <!-- geht doch? -->
<h2><?= $headings[2] ?></h2> <!-- für die Faulen... -->
 
Zuletzt bearbeitet:
Hmm... den Code kapier ich zwar imo nicht ;-) Aber so etwas möchte ich gerne verwenden, da ich dann schneller div. Designs verwenden könnte, da man dann ja Designs in der Datenbank registrieren könnte, um sie aus einem bestimmten Ordner zu laden (im Speziellen meine ich verschiedene CSS-Styles, könnten aber auch ganz andere HTML Dateien sein, die ein anderes Lokk&Feel vermitteln sollen).

Gibt es denn dafür eine kompakte Anleitung? Denn ich denke, dass Smarty dafür eigentlich schon zu groß ist und das ganze bremsen würde (stehe auch nicht so auf fertiges Zeug :D)
 
Mein Post war eigentlich als Witz gemeint, bzw. zeigt meine pers. Einstellung zu diesem Thema: PHP selbst ist schon eine super Template Engine!
 
net ganz ;) ich muss in die Design-Datei die ganze logik zum auswerten, welches Script geladen werden soll da mit reinschreiben, obwohl es damit nix zu tun hat. Da würd ich halt gerne trennen
 
Zitat von FreddyKruegger Beitrag anzeigen
Ich möchte in einer PHP per eval(); ein Template aufrufen...
Keine gute Idee. Denn dadurch kann auch jeglicher PHP-Code ausgeführt werden, was eine gravierende Sicherheitslücke bedeutet. Außerdem ist es langsamer als die Variante des direkten Ersetzens.

Ich hab ne nette tpl Klasse, in der nur Variablen geparst werden :)
Mach es auch meistens mit eval und hatte bis jetzt keinerlei Probleme
 
Also wie gesagt!

Ich will es so machen wie bei dem wBB eben... da wird auch erst der HTML Cde in die Datenbank gespeichert und es dann per Cachen in ein tpl konvertiert dabei ruft aber die PLATZHALTER ($index_bit beispiel) nicht auf das Template zu sondern auf die Datenbank also ist es garnicht mal so performence Fressend wie es allen anscheinend denken!

Ich arbeite mit der Forensoftware schon ziemlich lange und die Template-Engine ist garnicht mal so schlecht aufgebaut!

Also mir geht es ja nur darum das ich den inhalt in eine Datenbank speichere und diese wenn gebraucht wird aufgerufen wird in der DB zugleich soll eine geparste PHP datei in einem dafür angegebenen Ordner erstellt werden

Wenn ich dann zusätzlich das tpl brauch klicke ich auf cachen und es wird dann eines erstellt

Das mit {Platzhalter} ist für mich zwar nicht wirklich neu aber ich habe mich nun mal an das eval() und Platzhalter ($var) gewöhnt und würde dieses auch gerne so weiter für mich mit übernehmen!
 
Zurück