Templatesysteme



  • Trennung von HTML und PHP klingt ja schön und gut. Ich versteh aber nicht, wie es funktionieren soll. Ich meine manchmal sind doch HTML und PHP-Code so eng verknüpft, dass keine direkte Trennung möglich ist. Benutzt ihr Templatesysteme und könnt ihr mir vielleicht ein paar praktische Beispiele nennen, an denen mir der unglaubliche Vorteil deutlich wird. Ach ja und bitte jetzt nicht auf meinem Unverständnis rumhacken, sondern mir den Vorteil verdeutlichen...
    MfG

    Tobsen



  • Der Vorteil von Template-Systemen ist ganz klar der, dass kein PHP-verseuchter HTML-Code existiert und umgekehrt. Ausserdem ermöglicht er ein einfaches Austauschen des Designs der ganzen Seite ohne auch nur eine Zeile code auszutauschen.

    Ich hab mal für einen flüchtigen bekannten etwas Zeit darin investiert, PHPNuke in einer der frühen Versionen im Design anzupassen (PHP/HTML mixed aufs übelste). Die Arbeit am Design war wirklich zum erbrechen.

    Für dich siehts mit einem Template aus, als würdest du ne normale Seite designen und kannst das Ergebnis gleich anschauen und normal mit einem HTML-Editor bearbeiten... mit eingebautem PHP-Code wird das etwas mühsam.

    Ich hab nach diesen Erfahrungen mti PHP Nuke angefangen ein Templatesystem zu implementieren.

    Um das zu verdeutlichen was ich oben gesagt habe, hier ein Beispiel anhand einer alten Seite (ist nichtmehr aktiv.):

    Template: http://www.junix.ch/bcb/design/teilnehmer.html
    Geparstes Template: http://www.junix.ch/bcb/teilnehmer.php

    Unterdessen hab ich allerdings die Parser-Engine (zumindest konzeptionell) umgebaut und sollte sie irgendwann mal umsetzen (o;

    Auch sonst sind Templatescripts sehr Praktisch. Siehe hier:
    http://www.junix.ch/gb/guestbook.php?Cid=1
    http://www.junix.ch/gb/guestbook.php?Cid=2
    http://www.junix.ch/gb/guestbook.php?Cid=3
    http://www.junix.ch/gb/guestbook.php?Cid=9
    http://www.junix.ch/gb/guestbook.php?Cid=10

    Immer das Selbe script, nur das Design unter Arsch weggezogen und neu eingesetzt.

    -junix



  • Na ja, sind diese Templatesysteme so 'ne Art Textersetzung/Makro oder so...?
    Ich habe ein ziemlich großes PHP-Projekt (fast fertig), doch mir geht die Mischung der HTML und des PHP-Codes auf die Nerven. Ist es viel Arbeit dies nachträglich zu ändern? Gibt es denn extra-dateien in denen der PHP_Code steht und in 'ner anderen Datei ist dann das HTML-Grundgerüst oder wie? Wie werden die Dateien miteinander verbunden oder liege ich völlig falsch?
    MfG

    Tobsen


  • Mod

    es gibt verschiedene ansaetze wie man ein template system realisiert.

    der primitivste ansatz ist simple textersetzung.
    dh du schreibst ne HTML datei:

    <html>
    <head><title>{TITLE}</title></head>
    <body>
    <h1>{HEADER}</h1>
    <div class="content">{CONTENT}</div>
    </body>
    </html>
    

    und im PHP code ladest du dieses file dann laesst ne textersetzung drueber laufen die {TITLE} durch "Willkommen" ersetzt, oder so aehnlich 🙂

    am einfachsten ist es vermutlich, wenn du dir fertige engines ansiehst. zB
    smarty oder FastTemplate



  • Tobsen schrieb:

    Na ja, sind diese Templatesysteme so 'ne Art Textersetzung/Makro oder so...?

    In Primitivstform ist das Templatesystem (wie Shade schon gesagt hat) eifnach ein str_replace.

    Mit der Zeit werden dir aber diverse Einschränkungen auffallen die du mit nur str_replace nicht lösen kannst. Das war der Punkt an dem ich einen aufwendigen Parser zu schreiben begann (dessen Redesign schon seit langem ansteht). Wenn du in obigen html-Code von teilnehmer.html schaust, wirst du sehen, dass ich da auch bedingtes Einsetzen von Daten und schleifen implementiert habe.
    So muss ich nur noch ein Array mit Daten füllen und dem Parser übergeben. Hab das Zeugs leider nie ausführlich dokumentiert (sonst könnt ich dir mal die Doku geben (o: ) was mit ein grund ist wieso ich das Ding redesignen will.

    Es gibt natürlich auch andere Ansätze.

    Tobsen schrieb:

    Ich habe ein ziemlich großes PHP-Projekt (fast fertig), doch mir geht die Mischung der HTML und des PHP-Codes auf die Nerven.

    Wieso fragst du denn nach Vorteilen, wenn du sie eh schon kennst? (o;

    Ist es viel Arbeit dies nachträglich zu ändern?

    Naja, die Hauptarbeit liegt darin, HTML und PHP zu trennen.

    Gibt es denn extra-dateien in denen der PHP_Code steht und in 'ner anderen Datei ist dann das HTML-Grundgerüst oder wie?

    Ungefähr. Mit dem PHP-Code machst du die Datenaufbereitung, mit dem HTML-Code machst du schliesslich das Design. Im Prinzip ist das ähnlich wie mit XML *duck* Das design das du machst ist auf eine Art die Beschreibungsdatei wo welche Daten hinsollen. Mit PHP generierst du (meist ein Array) mit den Daten die da rein sollen. Das Ergebnis des Zusammenführens ist dann das ausgefüllte Design.

    Wie werden die Dateien miteinander verbunden oder liege ich völlig falsch?

    Du liegst absolut richtig. Verbunden werden Daten und Design dann über einen Template-Parser der die Daten am richtigen Ort einsetzt.

    -junix



  • hat schon mal jemand von euch mit dem phptemple-Templatesystem gearbeitet? Was ist zur Zeit das aktuellste und schnellste Templatesystem? Lohnt sich ein Templatesystem auch bei kleinen Projekten?
    MfG

    Tobsen



  • Lohnt sich ein Templatesystem auch bei kleinen Projekten?

    Haste erst mal angefangen damit zu arbeiten, dann gibst dus auch für kleine Projekte nichtmehr her (o: Es lohnt sich in jedem Fall, denn du musst dich null um die Formatierung der Daten kümmern. (Die wird ja durch Tempalte und -Parser bestimmt) sondern kannst dich voll und Ganz der Funktionalität widmen. Und der Code wird auch mti einem Schlag les- und Wartbar... You'll see (o:

    -junix



  • Ein paar gute Templatesystem findet du hier:
    http://www.dclp-faq.de/q/q-stil-content-code.html


Anmelden zum Antworten