Hallo,
wie muss eine kluge Template-Engine aufgebaut sein um schlank zu sein und dennoch nur eine Centerpage zu besitzen anhand der ich alles ändern kann?
Das wird wohl sinnvoll nicht gehen. Ich würde das schon auf mehrere Dateien aufteilen. Bei eine Weblogsoftware, die ich schreibe habe ich es so vor zu lösen:
- Hauptseite mit Design
- Sidebar
- Kommentare
- Kommentareingabefeld
- Zusammenfassungen (für Suche, Archiv, etc.)
Wenn man nun ein Neues Design haben will kann man erst einmal nur die Hauptseite mit Design ändern und die anderen Sachen als Standardtemplate lassen, bei denen macht es ja nichts, wenn sie sich wiederholen.
Falls mann doch irgendetwas ändern möchte kann man es aber dennoch tun. Dabei bleiben die einzelnen Teil-Templates übersichtlich.
Hier eine Beispieldatei von meinem Jlog Template:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><jlog:title /> - <jlog:website /></title>
<jlog:aditional-header />
<link rel="stylesheet" href="<jlog:homelink />/personal/css/print.css" type="text/css" media="print" />
<link rel="stylesheet" href="<jlog:homelink />/personal/css/screen.css" type="text/css" media="screen, projection" />
</head>
<body>
<p class="skip"><a href="#main"><jlog:skipcontent /></a></p>
<h1><a title="<jlog:home />" href="<jlog:homelink />/index.php"><span></span><jlog:website /></a></h1>
<jlog:menu activeclass="active" />
<div id="subnav">
<jlog:submenu class="submenu" activeclass="active" />
<h3>Search this page:</h3>
<form action="<jlog:homelink />/search.php">
<p><input class="userdata" type="text" name="q" size="15" value="<jlog:searchstring />" />
<input class="send" type="submit" value="<jlog:search />" /></p>
</form>
<h3><jlog:current-h /></h3>
<jlog:subcurrent />
<p><jlog:archive-more /> <a href="<jlog:archivelink />"><jlog:archive /></a>.</p>
<h3><jlog:sub-info /></h3>
<p><jlog:copyright /></p>
<p><jlog:powered /></p>
</div>
<div id="main">
<jlog:descriptiononindex class="descriptiononindex" />
<jlog:content />
</div>
</div>
</body>
</html>
Das einzige was mir hier noch nicht so richtig gefallen möchte ist das <jlog:homelink /> welches immer innerhalb eines Attributes erscheint wie bei den Links. So wird das nie richtiges XML ;-). Aber ich habe noch keine sinnvolle Alternative gefunden, wenn jemand was vernünftiges weiß immer her damit.
Grüße
Jeena Paradies