html templates verwalten
andi_b
- programmiertechnik
schönen guten abend an alle die das lesen.
ich möchte irgendwie für eine art dynamischewebseitenframework die html-dateien und 'das backend' sinnvoll trennen. dabei soll natürlich der webfreak die möglichkeit haben, _ganze_ html-dokumente zu bearbeiten, u.a. um diese sinnvoll testen zu können.
auf der anderen seite möchte ich gern für den backend-programmierer die möglichkeit haben, teile der seite unabhängig nutzen zu können. es muss also irgendwie einen zwischenschritt geben, der auf befehl alles zerpflückt.
ich weiss, dass man normale templatesysteme nutzen könnte, aber da habe ich keinen einfluss darauf, wie und wo die 'zwischenspeicherung' stattfindet.
das erste was mir einfällt, wäre die htmls mittels kommentaren einzuteilen. gibt es denn etwas eleganteres (was evt für den web-menschen gar keinen aufwand macht), womit man diesen vorgang automatisieren könnte?
vielen dank und schöne grüsse,
andi
abend,
ich weiss, dass man normale templatesysteme nutzen könnte, aber da habe ich keinen einfluss darauf, wie und wo die 'zwischenspeicherung' stattfindet.
meinst du das cachen der seiten?
wenn dann kann dir http://smarty.php.net abhilfe schaffen.
mfg,
(tanz das)
Z.N.S.
Hi!
das erste was mir einfällt, wäre die htmls mittels kommentaren einzuteilen. gibt es denn etwas eleganteres (was evt für den web-menschen gar keinen aufwand macht), womit man diesen vorgang automatisieren könnte?
Ich würde es glaube ich auch mal mit Kommentaren versuchen:
<!-- CUT-START:HEADER -->
<html>
<head>
<title>Text des Titels</title>
</head>
<body>
<!-- CUT-END:HEADER -->
<h1>Tolle Seite</h1>
<!-- CUT-START:NAV -->
<p>
<a href="produkte.html">Produkte</a> |
<a href="kontakt.html">Kontakt</a> |
<a href="impressum.html">Impressum</a>
</p>
<!-- CUT-END:NAV -->
<p>bla</p>
<p>bla</p>
<p>bla</p>
<!-- CUT-START:FOOTER -->
</body>
</html>
<!-- CUT-END:FOOTER -->
Das kann dann der Designer testen...
und dann kann er es hochladen, z.B. als dateiname.html
Dann könnte man das Template-System etwas erweitern, so dass es - wenn
dateiname.tpl nicht existiert - nach dateiname.html sucht, dort die entsprechenden Sektionen auschneidet, und das Ergebnis als dateiname.tpl speichert. Evtl. sollte man prüfen, ob die .html Datei neuer ist als die .tpl Datei.
Jedenfalls könnte man dann per preg_replace() die Elemente recht unproblematisch auschneiden (falls Du PHP einsetzt ;-))
Naja, ist vielleicht nicht super-flexibel, aber so in etwa würde ich das einfach mal versuchen.
Grüße
Andreas
hey andreas,
Naja, ist vielleicht nicht super-flexibel, aber so in etwa würde ich das einfach mal versuchen.
so in der art war auch mein gedanke. mir ist das aber noch nicht komfortabel genug. mir hat jemand gesagt, man könne das mitr einem xslt parser realisieren - leider habe ich keine ahnung von der mächtigkeit dieser sprache und deren möglichkeiten. meinst du, damit geht was besseres? dann würde ich mich diesbezüglich mal einlesen.
es geht übreigens indirekt um ein diplomarbeitsthema, darf also umfangreicher werden :)
viele
Grüße
Andreas
;)
Moin Andi,
mir ist das aber noch nicht komfortabel genug.
Wie meinst Du das genau, was stört Dich denn? Die Kommentare werden von fast allen WYSIWYG-Editoren ignoriert, so dass auch Anfänger die Vorlagen bearbeiten können, ohne viel kaputt zu machen. Die Template-Engine kann ja prüfen, ob die Platzhalter, bzw. Markierungen existieren und ggf. eine Fehlermeldung ausgeben.
mir hat jemand gesagt, man könne das mitr einem xslt parser realisieren
Naja, könnte man. Allerdings ist das dann noch weniger komfortabel und auch schwieriger umzusetzen. Damit XSLT eingesetzt werden kann, muß das Template erstmal im XML-Format vorliegen, d.h. es muß wohlgeformt sein (XHTML). Da HTML nicht immer wohlgeformt ist, muß der Ersteller und Verwalter der Vorlagen genau wissen, was er tut und darf statt HTML nur XHTML, bzw. XML-Syntax verweden, wobei auch einige ältere WYSIWYG-Programme noch nicht richtig damit umgehen können. Fazit: Um XSLT einzusetzen, müssen gewisse Regeln und Strukturen exakt eigenhalten werden, was es (unnötig) kompliziert machen kann.
freundlichen Gruß
Danny