Templates

Regeln für die Gestaltung

Da ein Virthos-Template aus gewöhnlichem HTML-Code besteht, können Sie ein Template mit demselben Werkzeug erstellen, mit dem Sie auch sonst Webseiten gestalten, beispielsweise mit einem HTML-Quellcode-Editor oder einem grafischen Webdesignprogramm wie Dreamweaver. Auch Ihre Gestaltungsfreiheit wird nicht eingeschränkt: Sie können beliebige Standards nutzen, ob XHTML, HTML5, Strict, Transitional oder was die Zukunft sonst noch bringen mag. Drei Punkte gilt es beim Gestalten von Templates allerdings zu beachten:

  • Alle Ressourcen müssen sich in Unterverzeichnissen befinden.
  • Der Text der Templatedatei muss in der richtigen Codierung gespeichert werden.
  • Eine automatische URL-Codierung im Webdesignprogramm muss abgeschaltet werden.

Einzelheiten zu diesen drei Punkten finden Sie in den folgenden Abschnitten.

Alle Ressourcen in Unterverzeichnisse

Eine Ressource (Bild, Stylesheet, Skript o. ä.), auf die im Template mit einem relativen Pfad verwiesen werden soll, muss in einem Unterverzeichnis des Verzeichnisses abgelegt werden, in dem sich das Template befindet. Sie darf nicht auf derselben Ebene liegen wie das Template und auch nicht in einem über- oder nebengeordneten Verzeichnis. Anders ausgedrückt: Ein Ressourcenpfad darf nicht mit zwei Punkten beginnen und muss mindestens einen Schrägstrich enthalten.

Richtig:  <img src="media/logo.gif">
Falsch:   <img src="logo.gif">
Falsch:   <img src="../media/logo.gif">

Wird diese Vorschrift missachtet, führt dies dazu, dass die Ressourcen beim Aufruf einer Virthos-Seite, die auf dem betreffenden Template basiert, nicht gefunden wird.

Die einzige Alternative zu dieser strikten Regel besteht darin, den Verweis auf eine Ressource durch einen absoluten Pfad anzugeben, der mit einem Schrägstrich beginnt, zum Beispiel:

Richtig: <img src="/media/logo.gif">

Verweise dieser Art erschweren allerdings den Umgang mit Templates in lokalen Testumgebungen und sind daher nur in Ausnahmefällen zu empfehlen.

Innerhalb von Ressourcenpfaden dürfen keine VirthosTalk-Platzhalter verwendet werden. Wenn Sie den Namen einer Ressource dynamisch "berechnen" wollen, müssen Sie zuvor den gesamten Pfad mittels vtSet in einer Variablen speichern und an der gewünschten Stelle mittels vtGet einfügen.

Richtige Textcodierung beachten

Eine HTML-Datei, die als Template dienen soll, muss ab v4.0 in UTF-8-Codierung gespeichert werden, bei älteren Virthos-Versionen in Latin1-Codierung (ISO 8859-1). Damit ein HTML-Editor beim Öffnen der Datei die korrekte Codierung anwendet, sollte sich im HTML-Kopfbereich (<head>-Abschnitt) die folgende Zeile wiederfinden:

<meta http-equiv="content-type" content="text/html;charset=utf-8">

beziehungsweise

<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">

Falls Sie eine andere Codierung bevorzugen, müssen Sie mittels vtHeader den Content-Type-Header mit einer entsprechenden charset-Angabe versehen.

Es ist möglich (wird aber nicht empfohlen), auch in Virthos-Versionen ab v4.0 Templatedateien in Latin1-Codierung zu verwenden, indem in die Konfigurationsdatei die Zeile

latin1Encoding_xyz = 1

eingefügt wird. Dabei steht xyz für den Namen des Verzeichnisses, in dem die Templatedateien abgelegt sind.

Keine automatische URL-Codierung

Die automatische Codierung von Sonderzeichen in URLs, wie sie manche Webdesignprogramme bieten, muss abgeschaltet werden. Andernfalls funktionieren Hyperlinks und Ressourcenpfade, die durch VirthosTalk-Platzhalter definiert sind, nicht wie erwartet. Wenn Sie in ein solches Programm als Hyperlink beispielsweise einen Platzhalter wie {{vtLink}} eintragen, wird, wenn die automatische URL-Codierung aktiviert ist, im Quelltext daraus %7b%7bvtLink%7d%7d. Diese Zeichenkette würde von Virthos aber nicht mehr als Platzhalter erkannt. Wie Sie die automatische URL-Codierung deaktivieren, entnehmen Sie bitte dem Handbuch Ihres Webdesignprogramms.

Regeln für die Benennung

Für die Namensgebung von Templates gelten grundsätzlich dieselben Regeln wie für gewöhnliche HTML-Dateien. Das heißt, die Namen sollten nur aus folgenden Zeichen gebildet werden:

  • Buchstaben a bis z
  • Ziffern 0 bis 9
  • Bindestrich bzw. Minuszeichen (-)
  • dem Unterstrich (_)

Deutsche Umlaute (ä, ö, ü), Ligaturen (z. B. ß), fremdsprachige Buchstaben (é, à, œ etc.) und Sonderzeichen aller Art sollten nicht verwendet werden, da dies auf vielen Webservern zu Problemen führt.

Neben diesen allgemeinen Regeln gelten für die Benennung von Virthos-Templates zusätzlich folgende Sonderregeln:

  • Der Name einer Datei muss mit .html enden, damit sie von Virthos als Template erkannt wird. Andere Endungen (z. B. .htm) sind für Templates nicht zulässig.

  • Die Buchstaben in einem Template-Dateinamen sollten durchweg kleingeschrieben werden, da die Verwendung von Großbuchstaben auf manchen Servern zu Problemen führt.

  • Der Dateiname darf nicht mit einem Binde- und nur in besonderen Fällen mit einem Unterstrich beginnen (siehe Templatevarianten).

  • Punkte haben in Template-Dateinamen eine spezielle Bedeutung. Sie dienen nicht nur zur Abgrenzung der Dateiendung, sondern auch zur Kennzeichnung von Templatevarianten (siehe Templatevarianten). Aus diesem Grund dürfen Punkte nicht Teil des eigentlichen Dateinamens sein.

Templates installieren

Damit eine HTML-Datei in Virthos als Template benutzt werden kann, muss sie im Unterverzeichnis templates abgelegt werden. Dieses Verzeichnis befindet sich bei einer Standardinstallation unterhalb des Virthos-Hauptverzeichnisses, also in dem Verzeichnis, in dem auch die Datei index.php (in älteren Versionen virthos.php) liegt.

Templates dürfen nicht direkt im templates-Verzeichnis liegen, sondern müssen sich in Unterverzeichnissen befinden, die in diesem Zusammenhang auch als Templatepakete oder kurz Pakete bezeichnet werden. Ein Paket kann beliebig viele Templates aufnehmen und enthält im Normalfall auch alle Ressourcen (Bilder, Stylesheets, Skripte etc.), die in den Templates verwendet sind.

Wenn Virthos auf einem Webserver installiert ist, der mit einem Unix-Betriebssystem arbeitet (dazu gehören auch Linux und Mac OS X), müssen alle Unterverzeichnisse und Dateien, die sich im templates-Verzeichnis befinden, mit einem allgemeinen Leserecht ausgestattet sein. Andernfalls kann Virthos auf die Templates nicht zugreifen.

Nachträgliche Änderungen

Ein Seite, die auf Grundlage eines bestimmten Templates erstellt wurde, bleibt in Virthos fest mit diesem Template verknüpft. Das Template wird nicht nur beim Erstellen der Seite als Vorlage herangezogen, sondern jedes Mal, wenn die Seite aufgerufen wird. Änderungen an einem Template wirken sich daher sofort auf alle Seiten aus, die auf diesem Template basieren, und Sie brauchen die Seiten somit nicht explizit zu aktualisieren.

Dieser Automatismus kann in manchen Fällen unerwünscht sein, zum Beispiel wenn Sie ein neues Templatedesign in einem bestehenden Internet-Auftritt testen möchten, ohne dass die Öffentlichkeit etwas davon bemerkt. In diesem Fall empfiehlt es sich, für das neue Design zunächst eine eigene Templatevariante zu erstellen und erst nach der Freigabe des Designs das betreffende Standardtemplate auszutauschen.

Templatevarianten

In Virthos ist es möglich, für jedes Template verschiedene Varianten zu hinterlegen, um dieselben Seiteninhalte auf unterschiedliche Weise darzustellen. So können Sie beispielsweise für jedes Template eine druckoptimierte Variante erstellen, die nur die Texte und Bilder einer Seite enthält, jedoch auf Navigationsmenüs, Hintergrundbilder oder andere Elemente verzichtet, die beim Ausdrucken stören würden. Sie können Varianten auch verwenden, um unbemerkt von der Öffentlichkeit ein neues Templatedesign auszuprobieren, um für verschiedene Landessprachen ein eigenes Aussehen festzulegen oder um die von Virthos bereitgestellten Formulare zum Erstellen und Bearbeiten von Webseiten durch eigene Formulare zu ersetzen.

In diesem Kapitel werden öfter die Begriffe "Template", "Methode" und "Seitentyp" verwendet, die eine ähnliche Bedeutung haben, im Kern jedoch etwas anderes meinen. Um Missverständnisse beim Weiterlesen zu vermeiden, sollten Sie sich mit den genauen Bedeutungen dieser Begriffe kurz vertraut machen.

Template

Der Begriff "Template" bezeichnet eine Datei (in der Regel eine HTML-Datei), die in Virthos zur Darstellung von Inhalten verwendet wird. Um ganz deutlich zu machen, dass es sich um eine konkrete Datei handelt, wird im folgenden manchmal auch der Begriff "Templatedatei" benutzt, der die gleiche Bedeutung hat wie "Template".

Seitentyp

Der Begriff "Seitentyp" bezeichnet den Typ einer in Virthos erstellten Seite. Der Typ entspricht dem Namen des Templates, auf dem die Seite basiert, allerdings ohne die Dateiendung .html. Eine Seite, die auf dem Template artikel.html basiert, ist beispielsweise vom Typ artikel.

Methode

Der Begriff "Methode" bezeichnet in Virthos ganz allgemein ein Verfahren, mit dem die Inhalte einer Seite dargestellt oder aufbereitet werden. Ein Template kann man somit auffassen als Beschreibung einer bestimmten Methode für einen bestimmten Seitentyp. Der Templatename setzt sich zusammen aus dem Seitentyp, dem Methodennamen und der Dateiendung. Falls es sich um die Standardmethode des betreffenden Seitentyps handelt, entfällt die Angabe des Methodennamens. Falls es sich um eine globale Methode handelt, entfällt die Angabe des Seitentyps. Nähere Informationen zu diesem Thema enthalten die folgenden Abschnitte.

Eigene Methoden

Angenommen, Sie haben ein Template mit dem Namen artikel.html angelegt und möchten nun eine Variante erstellen, die fürs Ausdrucken optimiert ist. In diesem Fall könnte die Variante zum Beispiel den Namen "artikel.print.html" erhalten. Das heißt, der Name des Standardtemplates, auf den sich die Variante bezieht, wird durch einen Punkt und einen Namenszusatz ergänzt, der die betreffende Variante kennzeichnet. Dieser Namenszusatz entspricht dem Namen der Methode, die durch das Template definiert wird.

Den Methodennamen können Sie frei wählen, allerdings sind dabei dieselben Regeln zu beachten, die auch für Templatenamen insgesamt gelten. Der Name darf nur aus Buchstaben, Zahlen, Binde- und Unterstrich bestehen. Zu beachten ist außerdem, dass bestimmte Methoden eine spezielle Bedeutung innerhalb von Virthos haben. Wenn Sie eine Variante für eine solche "Systemmethode" erstellen, verändern Sie das Verhalten von Virthos. Wenn Sie dies nicht beabsichtigen, sollten Sie keine Methodennamen verwenden, die mit vt beginnen.

Um eine Seite mit einer bestimmten Methode aufzurufen, müssen Sie in der URL den Namenszusatz dieser Variante mit Hilfe des Parameters -met angeben. Über die URL

http://.../index.php?-pg=112&-met=print

würden Sie beispielsweise die Seite 112 mit der print-Methode aufrufen. Das heißt, wenn diese Seite vom Typ news wäre (basierend auf dem Template news.html), würde Virthos in diesem Fall nach einer Templatedatei mit dem Namen news.print.html suchen und diese zur Darstellung heranziehen, sofern sie existiert. Wird der -met-Parameter weggelassen, greift Virthos stets auf das Standardtemplate der betreffenden Seite zurück.

Wenn Sie einen Hyperlink mit Hilfe des VirthosTalk-Platzhalters {{vtLink}} erzeugen, können Sie ebenfalls eine Methode angeben, zum Beispiel:

{{vtLink: -met="print"}}

Dieser Platzhalter wird beim Aufruf einer Seite durch einen Hyperlink ersetzt, der die aktuelle Seite mit der print-Methode aufruft.

Systemmethoden

Bestimmte Methodennamen sind von Virthos bereits fest vorgegeben. Die Namen dieser "Systemmethoden" beginnen stets mit vt und dienen insbesondere dazu, die Benutzeroberfläche des Virthos-Redaktionssystems bereitzustellen. Indem Sie eigene Templates mit diesen Methodennamen versehen, können Sie die Benutzeroberfläche eigenen Bedürfnissen anpassen.

Die zwei wichtigsten Systemmethoden sind:

vtedit

Diese Methode erzeugt ein Formular, mit dem sich die Inhalte einer Seite bearbeiten lassen. Wenn ein Benutzer in der Modusleiste des Redaktionssystems auf Bearbeiten klickt, wird diese Methode aufgerufen.

vtnew

Diese Methode erzeugt ein Formular zum Erstellen einer neuen Webseite. Sie kommt zum Einsatz, wenn ein Benutzer in der Werkzeugleiste des Virthos-Managers auf Neue Seite klickt und dann ein Template auswählt.

Wenn Sie beispielsweise ein Template mit dem Namen produkt.html erstellt haben, können Sie unter dem Namen produkt.vtedit.html ein eigenes Bearbeitungsformular dafür bereitstellen. Wenn ein Benutzer bei einer Seite vom Typ artikel auf Bearbeiten klickt, wird statt des Virthos-eigenen Bearbeitungsformulars das in produkt.vtedit.html hinterlegte eingeblendet. Analog dazu können Sie mit einem Template namens produkt.vtnew.html das Standardformular zum Erstellen einer neuen produkt-Seite durch ein eigenes Formular ersetzen.

Beim Gestalten eigener Formulare ist auf die richtige Benennung der Formularfelder und die korrekte Angabe des action-Attributs zu achten. Andernfalls funktionieren die Formulare unter Umständen nicht wie erwartet.

Globale Methoden

Mit Virthos können Sie Templates bereitstellen, die sich nicht nur auf einen bestimmten Seitentyp bzw. ein bestimmtes Standardtemplate beziehen, sondern einen globalen Charakter haben. Solche globale Methoden können in Verbindung mit Seiten beliebigen Typs aufgerufen werden. Eine typische Anwendung für eine globale Methode wäre ein Formular, mit dem ein Besucher eine E-Mail an einen Freund senden kann, um ihn auf die aktuell aufgerufene Seite aufmerksam zu machen.

Jede Methode lässt sich zu einer globalen Methode machen, indem Sie in der Templatedatei den ersten Namensbestandteil (die Angabe des Seitentyps) weglassen und einen Unterstrich an den Anfang setzen. Eine Datei mit dem Namen _empfehlen.html würde beispielsweise eine globale Methode mit dem Namen empfehlen definieren. Diese ließe sich nach dem gleichen Prinzip aufrufen wie eine gewöhnliche Templatevariante, zum Beispiel so:

{{vtLink: -met="empfehlen"}}

Da eine globale Methode für jede Seite verfügbar ist, sollten Sie darin nur Platzhalter verwenden, deren Name mit vt beginnt (zum Beispiel vtName oder vtID), oder die durchgängig in allen Seitentypen vorkommen.

Sprachvarianten

Die Virthos Pro und Master erlauben es, für jedes Template verschiedene Sprachvarianten bereitzustellen. So lassen sich auf einfache Weise sprachabhängige Menüs, Beschriftungen etc. verwenden. Um eine Templatevariante für eine bestimmte Landessprache bereitzustellen, muss im Dateinamen das jeweilige Sprachkürzel angegeben werden. So würde die englische Variante des Templates news.html unter dem Namen news_en.html abgelegt, die französische Version unter news_fr.html etc. Das Sprachkürzel wird also stets mit einem Unterstrich an den Hauptbestandteil des Templatenamens angehängt.

Auch Templates, mit denen eigene Methoden definiert werden, lassen sich in verschiedenen Sprachvarianten bereitstellen. So müsste die englische Version der Templatevariante news.print.html unter dem Namen news.print_en.html abgelegt werden, die französische unter news.print_fr.html etc. Gleiches gilt für globale Methoden: Die englische Version der oben erwähnten Datei _empfehlen.html müsste beispielsweise _empfehlen_en.html heißen.

Das Aufrufen einer bestimmten Sprachvariante geschieht automatisch in Abhängigkeit von der aktuell gewählten Landessprache. Falls für die aktuelle Sprache keine eigene Variante bereitgestellt ist, greift Virthos stets auf das Standardtemplate der jeweiligen Seite zurück, also auf die Templatedatei, in deren Namen kein Sprachkürzel enthalten ist.

Die Sprachkürzel, die in den Templatenamen verwendet werden, müssen mit den Kürzeln übereinstimmen, die in den Virthos-Systemeinstellungen festgelegt sind.