Vorlagen mit MTInclude organisieren
27.03.2005
Das Movable Type wird bei der Generierung der HTML-Dateien durch eine Reihe von Vorlagen gesteuert. Über diese wird festgelegt, wie die erzeugten Seiten aussehen sollen. Anfangs sollte man diese Vorlagen am besten in Ruhe lassen. Aber wenn man das Movable Type in den Grundlagen verstanden hat, kann man die Vorlagen so ändern, dass das erzeugte Weblog vollständig den eigenen Vorstellungen entspricht.
Leider ein wenig chaotisch
Wenn man sich die Vorlagen anschaut, wird man sehr schnell erkennen, dass die Organisation der Vorlagen nicht immer optimal ist. Es gibt viele Anteile, die in verschiedenen Vorlagen identisch enthalten sind. Unter dem Gesichtspunkt der guten Strukturierung und der einfachen Änderbarkeit müssen die Vorlage eher als chaotisch eingestuft werden. Wenn man ein Detail der Website ändern will, muss man die erforderlichen Änderungen an einer Vielzahl von Stellen durchführen.
Glücklicherweise gibt es das »MTInclude« Tag, welches uns bei der Strukturierung der Vorlagen helfen kann.
Ein Beispiel
In jeder HTML-Vorlage gibt es einen Bereich, welcher den Banner einer Seite definiert. Das ist derjenige Bereich, wo der Name des Weblogs sowie dessen Beschreibung ausgegeben wird. Oftmals werden in diesem Bereich auch Bilder oder Photos ausgebeben. Bei mir ist dies der dunkelblaue Bereich ganz oben auf jeder Seite.
Ziemlich am Anfang einer Vorlage findet man hierfür die folgenden Zeilen.
<div id="banner">
<h1>
<a href="<$MTBlogURL$>" accesskey="1">
<$MTBlogName encode_html="1"$>
</a>
</h1>
<h2><$MTBlogDescription$></h2>
</div>
Dort werden der Name des Weblogs (Variable »MTBlogName«) und dessen Beschreibung (Variable »MTBlogDescription«) als Überschrift ausgegeben. Zusätzlich wird der Name des Weblogs zu einem Verweis gemacht, so dass man über ihn zur Startseite zurückkommen kann.
Diese Zeilen befinden sich am Anfang jeder Vorlage. Schließlich will man auf der Startseite, auf einer Archivseite zu einer Kategorie, auf einer Archivseite zu einem Monat und auch auf der individuellen Archivseite eines Eintrags diesen Banner vorfinden. Wenn man aber etwas daran verändern will, muss man identische Änderungen an mehreren Stellen durchführen. Das ist aufwendig und fehleranfällig.
MTInclude
Im Movable Type kann man eine Technik anwenden, welche unter anderem auch Programmiersprachen üblich ist. Man kann eine häufig zu verwendende Funktionalität auslagern und diese in einer separaten Datei beschreiben. Dort, wo man diese Funktionalität benötigt, wird die zentrale Datei eingebettet.
Das MTInclude Tag erlaubt gerade dies. Um es zu verwenden, gehen Sie wie folgt vor.
- Als erstes sollten Sie eine eigene Vorlage, eine so genannte Modul-Vorlage anlegen. Wählen Sie hierfür im linken Menü den Punkt »Vorlagen« aus.
- Es erscheint die Liste der Vorlage, welche nach den unterschiedlichen Typen gruppiert ist. Blättern Sie bis zu den Modul-Vorlagen und wählen Sie dort »Neues Vorlagemodul erstellen« aus.
- Es erscheint der Dialog der für eine neue Vorlage. Vergeben Sie nun einen Namen. Bei mir würde diese Vorlage vermutlich »mgs-banner« heißen. Das Feld zur Verknüpfung der Vorlage mit einer Datei lassen Sie frei, tragen aber als Modultext die obigen Zeilen zur Festlegung des Banner ein.
- Nachdem Sie die Vorlage gespeichert haben, ist dem Movable Type eine neue Vorlage bekannt, welche Sie unter dem Namen »mgs-banner« ansprechen können.
Nachdem Sie die neue Vorlage angelegt haben, müssen Sie diese nun auch noch nutzen. Dafür öffnen Sie nacheinander alle Vorlage, in welchen der Banner vorkommt und ersetzen dort die Zeilen durch folgendes.
<$MTInclude module="mgs-banner"$>
Wenn Sie anschließend den Banner-Bereich ändern wollen, müssen Sie dies nur noch an einer einzigen Stelle tun. Sie ändern einfach die Vorlage »mgs-banner«, führen eine vollständige Generierung durch, und alle HTML-Seiten werden anschließend den neuen Banner aufweisen.
Mit etwas Arbeit können Sie auf diese Weise eine Struktur in die Vorlagen bringen. Die Übersichtlichkeit wird erhöht und die Arbeit, welche bei einer Design-Änderung erforderlich ist, wird minimiert.
In meinem Movable Type Weblog habe ich inzwischen eine saubere Struktur der Vorlagen erreicht. Es gibt etwa 40 unterschiedliche Vorlagen. Die meisten sind nur sehr kurz, manchmal nur ein paar Zeilen lang.
Nachtrag
Im oben angesprochenen Dialog zum Anlegen einer neuen Vorlage können Sie auch die Vorlage mit einer externen Datei im Dateisystem verknüpfen. Das Movable Type sorgt dann dafür, dass die intern gespeicherte Kopie der Vorlage immer mit einer externen Datei synchonisiert wird. Das erlaubt es Ihnen dann, die Vorlagendateien außerhalb vom Movable Type in einem Editor Ihrer Wahl zu bearbeiten.
Das MTInclude Tag erlaubt das Einbetten einer Vorlage auf zwei unterschiedliche Weisen. Entweder wird eine Vorlage angezogen, welche dem Movable Type namentlich bekannt ist (unser Weg von oben). Oder aber es wird direkt eine Datei importiert, welche über ihren Speicherungsort im Dateisystem beschrieben wird. Diese beiden Vorgehensweisen werden durch leicht unterschiedliche Notation verwendet.
<$MTInclude module="mgs-banner"$>
<$MTInclude file="D:\DATA\IIS\mgs-banner.html"$>
mgs | 27.03.2005
Feedback erwünscht!
Wie fanden Sie den Eintrag? Interessant? Langweilig? Ich freue mich über Ihren Kommentar. Wenn Ihnen der Eintrag geholfen hat, setzen Sie doch einen Link auf http://www.movable-type-weblog.de/.
Bitte keinen Spam
Um das Weblog vor Spam zu schützen, wird das MT-Approval Plugin eingesetzt. Sie müssen einen neuen Kommentar zunächst in der Vorschau ansehen, bevor dieser auf dem Server gespeichert werden kann. Ferner wird ein Kommentar erst gesichtet, bevor er freigegeben wird. Näheres finden Sie in meinem Artikel Weblog Spamming Grundlagen, wo einige Schutzmaßnahmen skizziert werden.
Wenn Sie sich an TypeKey angemeldet haben, wird Ihr Kommentar automatisch freigegeben.
Neuen Kommentar schreiben
TypeKey wurde an dieser Stelle vorübergehend deaktiviert. Erstellen Sie Ihren Kommentar bitte ohne TypeKey oder melden Sie sich im Vorschau-Dialog an.
Kommentar
Jan Theofel | 17.05.05 22:41
Ich würde die Variante der Vorlagen aus der Datenbank statt aus der Datei bevorzugen. Das ist zwar erst einmal etwas mehr Aufwand diese zu editieren. Allerdings sollte sich dieser geringe Performancegewinn in der Kombination viele Zugriffe und viele Includes (du sprichst ja von 40 Stück) bemerkbar machen...
Auch dann, wenn die Vorlagen mit externen Dateien verknüpft sind, befindet sich deren Inhalt in der Datenbank. Dafür sorgt die Synchronisation. Ich hoffe (aber weiß es nicht genau), dass diese bei einem Neu-Aufbau aller Dateien nur einmal die Aktualität aller Vorlagen prüft.
Mir geht es primär darum, die Vorlagen auf vernünftige Weise bearbeiten zu können. Das ist in dem kleinen Textfenster eigentlich nicht machbar. Dafür ist ein externer Editor (mit langen Zeilen, farblicher Markierung, etc.) besser geeignet.
Michael G. Schneider

![[TypeKey Profile Page]](http://www.movable-type-weblog.de/nav-commenters.gif)
