Thread wie trenne ich den Inhalt und das layout bei cgi/html (43 answers)
Opened by chris- at 2008-10-01 10:05

scriptor
 2008-10-07 12:54
#115241 #115241
User since
2008-05-07
69 Artikel
BenutzerIn
[Homepage] [default_avatar]
Auctioneer+2008-10-07 01:58:23--
Der Vorteil von HTML Templates liegt vielleicht darin, dass diese etwas einfacher mit HTML Editoren nachbearbeitet werden können. Allerdings kann es passieren, dass, je nach Template System, interne "Seiten-Schnittstellen-Kommando-Wörter" nach einer solchen Bearbeitung plötzlich weg sind, und dann funzt die Template nicht mehr.

HTML Templates machen vielleicht Sinn, wenn grosse HTML Inhalte eingelesen werden müssen, denn der Script selber nimmt sonst riesige Ausmasse an, was die Uebersichtlichkeit beim Editieren erschweren kann. Allerdings kann man den Script in einzelne Teile zerlegen, um dieses Problem zu lösen.

Da normalerweise in einem Script sehr viele sehr kurze HTML Sequenzen vorhanden sind, die vielleicht nur eine oder zwei HTML Zeilen beinhalten, macht es fast keinen Sinn, derartige Dinge auszulagern, denn sonst verliert man ohne HTML Teile letztlich den Ueberblick im Script selber. Ich habe mir soeben ein derartiges "Werk" zur Brust genommen und gestaunt, wie schlecht man es machen kann, nur weil man um jeden Preis "templaten" wollte.

Ich bin platt! So etwas von jemanden zu lesen, der sich mit einer großen Webanwendung beschäftigt...
Eine meine ersten Massnahmen war es seinerzeit ein einfaches Template-System einzuführen und parallel ein einheitliches internes Nutzdatenformat (Hash-Array). Alles, was ich an Logik brauche, steckt entweder schon in den Datenbankabfragen oder Skripten - die teilweise automatisch- auf die Nutzdaten angewandt werden.
HTML im Skript gibt es nur noch für die hierarchische Ausgabe der Navigation (Nested Set Model nach <ul>) und einige Funktionen, die HTML erzeugen sollen (z.B.: "%%gartikel.art.kurz.html_textarea(100,3,gartikel_art_kurz)%%").
Die Menge HTML ist doch kein Maßstab, selbst der Seitentitel wird bei mir aus einem Template erzeugt (Ausschnitt aus der index.html der aktuellen Version):
Code: (dl )
1
2
3
<ins class="ssperl" id="tmpl_pagename"><h1 class="pagename">%%.pagename%%:&nbsp;<span>%%.pagetitel%%</span></h1>
</ins>
<script type="text/ssperl" >MetaFillTemplate( $tmpl_pagename, undef);</script>

Mein Ziel war immer, das ein nicht programmierfähiger Webdesigner die Vorlagen bearbeiten kann. Deshalb werde ich im nächsten Schritt auch keinerlei Perl mehr in den Seitenvorlagen haben.
Das Zeitargument könnte gegen das aufwendige Parsen von Templates stehen. Dem kann mit Kompilieren oder/und Cachen auf verschiedensten Ebenen (Template/Seite) begegnet werden.
Ich würde nie und nimmer einen Schritt zurück in den Code machen!

View full thread wie trenne ich den Inhalt und das layout bei cgi/html