Frage zu Templates
Andreas
- php
0 Stefan Neumann0 Andreas
0 Jan Lehnardt0 Andreas
Hallo!
Grundsätzlich glaube ich zwar zu wissen, was man mit Templates meint, also irgendeine Art von Vorlage, die in mehrere Dateien eingefügt wird, so das bei eventuellen Änderungen immer nur die Vorlage geändert werden muß. Jetzt habe ich die Frage, ob das spezielle Dateien bzw. eine speziele Art der Einbindung ist, oder ob es einfach z.B. per include eingebundene Dateien sind, die z.B. eine Navigationsleiste enhalten, die auf jeder Seite mit <? include "nav.inc" ?> an entsprechender Stelle eingebunden wird.
2. Möglichkeit die mir einfiele wäre es Einstellungen für die Seite aus einer Include Datei oder direkt aus der DB einzubinden, die an entsprechender Stelle in den html-Code eingesetzt werden. Wobei diese Möglichkeit glaub ich nicht sehr gut ist, vor allem solche Daten aus der DB zu holen.
3. Möglichkeit mit allseits bekanntem CSS, Klassen... was ja speziell für das Design vorgesehen ist.
Jetzt frage ich mich ob das auch dasselbe ist, wenn man über Templates spricht, oder ob es da noch andere bessere Möglichkeiten gibt, auf mehreren Seiten gleich bleibende Elemente zentral einstellen zu können. Was meint Ihr immer genau, wenn Ihr über Templates sprecht?
Grüsse
Andreas
Hi,
Was mit Template genau gemeint ist und wie es funktioniert
hängt vom Zusammenhang ab (C++, XML, etc.). Bei PHP kenn ich Templates von FastTemplate (http://www.thewebmasters.net/).
Dort ist ein Template HTML-Code mit "Platzhaltern". Mit
Hilfe der FastTemplate-Klasse kann man diese Platzhalter
durch andere Inhalte ersetzen. Da dies beliebig
verschachtelbar ist kann man recht komplexe Sachen basteln.
Gut wenn man die echo's loswerden will oder zu mehreren an
einer Seite arbeitet.
Gruss,
Stefan
Hi!
Und wie ist das von der Performance? Jedenfalls hatte ich bei meinen selbst gebastelten Lösungen mit zig Datenbakabfragen und Einbindung über Echo wirklich das Gefühl, dass das die Seiten sehr langsam macht. Wie ist das bei Templates?
Grüsse
Andreas
Hi,
Templates im klassischen Sinn sind normale HTML Dokumente, die an einigen
stellen Platzhalter haben. Diese Platzhalter werden im Programmablauf
mit Inhalten gefüllt. Beispiel:
---huhu.tpl---
<html>
<head>{TITLE}</head>
<body>{CONTENT}</body>
</html>
--ende--
--index.php--
$tp=new templateEnginge();
$tp->set_file('huhu.tpl');
$tp->set_var('TITLE','Meine Seite [tm]');
$tp->set_var('CONTENT','Hier ist viel interessanter Text');
$tp->pparse();
--ende--
Damit wird eine strikte Trennung von Programmlogik und Layout erreicht. Das ist
u.A. sehr hilfreich wenn zwei Abteilungen (Design und Technik) an einem Projekt
arbeiten.
Intern verwenden die miesten template Engines die preg_* Funktionen von PHP die
Platzhalterersetzungen vorzunehmen.
Beliebte Template Engines:
http://sf.net/projects/phplib/
http://pear.php.net/manual/en/packages.templates.php
http://www.phpinsider.com/php/code/Smarty/
Jan
--
Hi!
---huhu.tpl---
<html>
<head>{TITLE}</head>
<body>{CONTENT}</body>
</html>
--ende--
Und die {} werden automatisch erkannt?
--index.php--
$tp=new templateEnginge();
$tp->set_file('huhu.tpl');
$tp->set_var('TITLE','Meine Seite [tm]');
$tp->set_var('CONTENT','Hier ist viel interessanter Text');
$tp->pparse();
--ende--
warum $tp->pparse();? was bewirkt das?
http://sf.net/projects/phplib/
http://pear.php.net/manual/en/packages.templates.php
http://www.phpinsider.com/php/code/Smarty/
Danke für die Links, muß ich mich wohl mal einarbeiten!
Grüsse
Andreas
Hi,
Und die {} werden automatisch erkannt?
das macht die Template Engine
warum $tp->pparse();? was bewirkt das?
das ust aus der PHPLIB template engine abgeschaut.
pparse steht fuer parse und print, d.h. die varianblen werden ersetzt und das ergebnis ausgegeben.
http://sf.net/projects/phplib/
http://pear.php.net/manual/en/packages.templates.php
http://www.phpinsider.com/php/code/Smarty/
Danke für die Links, muß ich mich wohl mal einarbeiten!
jo.
Jan
--