Moin ich hab mal eine frage ich will meine seite mit PHP und templates(HTML) bauen und wollte fragen wie der code ist das das PHP script eine template lädt
cu
damit wird der seiteninhalt an der stelle wo das include steht eingefügt.
das kann eine statische html-seite sein, oder wiederum eine php-seite, in der dann auch noch befehle ausgeführt werden.
oft ist mit dem begriff 'template' aber etwas gemeint, wo bestimmte platzhalter drin stehen, die dann beim einlesen des templates durch andere, dynamische werte ersetzt werden.
da musst du dann natürlich auch dafür sorgen, dass die entsprechenden werte übergeben werden, sofern sie nicht in der inkludierten seite selber ermittelt werden.
I don't believe in rebirth. Actually, I never did in my whole lives.
Ich kann dir Smarty wärmstens empfehlen. Anfangs sehr komplex und die Syntax ist etwas gewöhnungsbedürftig, aber wenn´s läuft, ist Smarty absolut super.
Was schnelleres hab ich noch nicht gefunden. Auf der Seite ist auch eine sehr umfangreiche Doku zu finden.
Gruß oms
{brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!
ich habe gerade angefangen mich mit templates zu beschäftigen.
zur engeren auswahl gehören momentan
IT(X) (hier ist der vorteil, dass es mit den php-versionen ausgeliefert wird und nicht extra installiert werden muss)
und
Smarty (mehr funktionen, aber auch anspruchsvoller)
Nun zur Frage:
meine seiten sollen später folgendermassen aufgebaut sein:
...
include (header.php)
Und hier dazwischen soll der Inhalt(== HTML-text) sein, wobei dieser aus einer datenbank
(mySQL) ausgelesen werden soll --->dann vom template-script geparst wird--> und dann ausgegeben werden soll
include (footer.php)
A) wie kann ich sowas überhaupt realisieren (datenbank-text-wird-geparst)?
B) welches Template system würdest du mir dafür empfehlen?
Im Prinzip braucht du mindestens 2 Dateinen. Einmal dein Template selber und dein Skript in dem du alles bewerkstelligst.
Im Template File machst du dein ganzes Design, deinen statischen Header und Footer und in der Mitte o. ä. setzzt du dir Platzhalter. Dies können Platzhalter für einfache Variablen sein oder aber auch komplexe Schleifengebilde etc.
In deinem Bearbeitungsskript machst du nun deine gesamten SQL-Abfragen usw. und sammelst dir alle Daten, die du brauchst. Anschließend sagst du deiner Template Engine für welche Platzhalter in deinem Template er deine Daten einsetzen soll. Zum Schluß läßt du alles parsen und fertig.
Von IT(X) hab ich nicht wirklich Ahnung. Hab auch nichtwirklich viel drüber gehört. Vielleicht kannst du ja mal posten, was es so kann?
Ansonsten hast dann mit Smarty die Möglichkeit, deine Seiten zu cachen. Dann brauchst du zum Beispiel relativ statische Abfragen nur alle halbe Stunde oder so zumachen.
Und....Smarty ist sauschnell. Smarty parsed dein Template nicht bei jedem Durchlauf. Smarty kann dein Templates "compilieren". Dafür schreibt es dein Template in echten PHP Code um und läßt dann bei jeden Aufruf (wenn caching deaktiviert) nur die Zend Engine dein compiliertes Template parsen. Die macht dann auch die Ersetzungen an den bestimmten Stellung. Dadurch wird die Sache richtig flott. Da kann dannn kein in PHP geschriebener Parser mithalten.
Zu dem kannst du in Smarty verschachteln, wie du willst.
Gruß oms
{brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!
danke erstmal für deine antwort und für deinen hinweis auf
smarty. - werde mir das teil mal näher ansehen.
(habe allerdings gelesen, dass es ziemlich komplex sein soll)
leider glaube ich, du hast meine frage nicht ganz verstanden
(oder ich hab sie unverständlich formuliert!).
ich weiss durchaus wie template-classen funktionieren.
die reguläre arbeitsweise ist mir völlig klar.
mein problem ist, das ich überhaupt KEIN STATISCHES FILE!!!!
mehr haben möchte. das bedeutet, das also auch die template"files" in der
datenbank abgelegt werden sollen.
dann holt sich die classe das teil aus der datenbank schreibt es irgendwie
in ne variable, holt sich die restlichen informationen (platzhalter) aus der DB
und parst dann die eine variable mit den platzhalterinformationen aus der
anderen variable durch.
(hoffe das war verständlich? isn bisschen komplex die ganze geschichte)
sinn der ganzen sache ist dann, dass man das design dann ONLINE ändern kann, ohne etwas (template-file) per ftp hochladen zu müssen.
wenn ich das mit dem template in der DB gelöst habe, ist CACHING
mein nächster grosser punkt, denn die seite soll 100% dynamisch
werden und das würde normalerweise bedeuten, sie wird lahm wie ne krücke.
kennst du gute tutorials zu smarty?
könntest mir ja mal deine link sposten.
Wie gesagt, ich hab keine Ahnung von IT(X). Hast du da einen netten Link, wo ich mir was anlesen kann?
Ich hab nur ein paar andere Template Engines getestet, die nur auf Template-Code basierten, also nicht die Zend Parsing Engine benutzen. Die waren alle langsamer. Es kommt da natürlich auf den Umfang an.
Eine wirkliche Alternative zu Smarty hab ich noch nicht gefunden.
Gruß oms
{brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!
Kommentar