7.6. Globale Vorlagen

7.6.1. Einführung

Da Welcompose zum Betrieb ohne FTP-Zugang konzipiert ist, müssen nebst den herkömmlichen Vorlagen für (X)HTML und XML auch alle anderen Dateien, die für eine Webseite benötigt werden, online verwaltet werden können.

Um Dateien mit textuellem Inhalt wie CSS oder JavaScript kümmern sich die Globalen Vorlagen. Wer Binärdateien wie Bilder oder Flash-Videos verwalten will, muss sich mit den Globalen Dateien beschäftigen (siehe Abschnitt 7.7, „Globale Dateien“).

7.6.2. Verwaltung

Die Verwaltung der Globalen Vorlagen erfolgt im Bereich Vorlagen im Unterpunkt Globale Vorlagen. Die Übersicht listet die vorhandenen Vorlagen zusammen mit einer allenfalls vorhandenen Beschreibung. Dazu werden eine Reihe von Funktionen zur Bearbeitung von Globalen Vorlagen geboten:

Abbildung 7.10. Übersicht über vorhandene Globale Vorlagen

Übersicht über vorhandene Globale Vorlagen

Upload

Ermöglicht das Hochladen einer Globalen Vorlage, wobei mit dem Dateiinhalt der hochgeladenen Datei die auf dem Server hinterlegte Vorlage ersetzt wird.

Download

Erlaubt den Download der Globalen Vorlage als Datei.

Löschen

Löscht die Globale Vorlage.

Um die jeweiligen Inhalte einer Globalen Vorlagen zu bearbeiten, klicken Sie bitte auf den Namen der Globalen Vorlage.

Sobald man auf den Link Neu anlegen klickt, gelangt man zum Formular zum Hinzufügen einer neuen Globalen Vorlage.

Abbildung 7.11. Globale Vorlage neu anlegen

Globale Vorlage neu anlegen

Name

Name der Globalen Vorlage, genauer gesagt ein Dateiname. Vorzugsweise der Name, unter dem man die Datei auch auf dem Desktop abspeichern würde.

Beschreibung

(Optionaler) Beschreibungstext der Globalen Vorlage.

Inhalt

Inhalt der Globalen Vorlage, also der Code in der jeweiligen CSS-, XML- oder JavaScript-Datei.

MIME Typ

Der MIME Type, den der Server senden soll, um die Datei gegenüber dem Browser zu identifizieren. Denn nur mit Hilfe des MIME Types kann der Browser erkennen, was er mit der jeweiligen Datei anfangen muss. Tabelle 7.2, „Liste der MIME-Typen“ zeigt, welcher MIME Type bei welcher Art von Inhalt respektive Datei zum Einsatz kommt.

Delimiter ändern

Legt fest, ob Smarty für die Verarbeitung der Vorlage einen anderen Delimiter verwenden soll. Dies ist bei Dateien nötig, in denen viele geschweifte Klammern ({ und }) vorkommen, da sonst die Inhalte als Befehle interpretiert werden können. Ist die Box angekreuzt, verwendet Smarty als Delimiter <% und %>, wodurch die geschweiften Klammern nicht mehr interpretiert werden. Für welchen Dateityp so ein Delimiter-Wechsel sinnvoll sein dürfte, zeigt Tabelle 7.2, „Liste der MIME-Typen“. Ein Beispiel hält Abschnitt 7.6.3.1, „Beispiel: CSS-Dateien verwalten“ bereit.

Tabelle 7.2. Liste der MIME-Typen

MIME Type Geeignet für Delimiter-Wechsel
text/css CSS-Dateien (*.css) ja
text/html (X)HTML-Dateien (*.html, *.htm usw.) nein
text/javascript JavaScript-Dateien (*.js) ja
text/plain Text-Dateien (*.txt) und alle anderen Dateien mit textuellen Inhalten, die zu keinem anderen MIME Type passen. nein
text/xml XML-Dateien (*.xml) nein

7.6.3. Anwendung

7.6.3.1. Beispiel: CSS-Dateien verwalten

Die Verwendung der Globalen Vorlagen soll anhand einer CSS-Datei illustriert werden, da dies auch ein gutes Beispiel ist, wo und wie eine Änderung des Delimiters notwendig ist.

Um die CSS-Datei als Globale Vorlage anzulegen, muss man zuerst zum Bereich Vorlagen und dort zum Unterpunkt Globale Vorlagen wechseln. Sobald man dort auf den Link Neu anlegen geklickt hat, kommt man zum Formular zum Anlegen einer Globalen Vorlage.

[Anmerkung] Anmerkung

Für das Beispiel wird vorausgesetzt, das sie eine GIF Datei mit Namen container-bg.gif als Globale Datei (siehe Abschnitt 7.7, „Globale Dateien“) hochgeladen haben.

Machen Sie nun die folgenden Eingaben, um das Beispiel nachzuvollziehen (nicht aufgeführte Felder können Sie ignorieren):

Name

Geben Sie als Namen der Globalen Vorlage beispiel.css ein. Sie können auch einen anderen Namen verwenden, müssen einfach bei den nächsten Schritten beispiel.css jeweils durch den von Ihnen gewählten Namen ersetzen.

Inhalt

Fügen Sie hier eine CSS Deklaration für unsere beispiel.css ein. Für das Beispiel reicht ein kurzer Code-Ausschnitt:

#container {
	position: relative;
	margin: 0 auto;
	width: 993px;
	background: #fff url(container-bg.gif) top right no-repeat;
	text-align: left;
}
MIME-Typ

Wählen Sie hier text/css aus.

Delimiter ändern

Setzen Sie hier vorerst keinen Haken.

Ihre Globale Vorlage sollte nun so aussehen:

Abbildung 7.12. CSS-Datei als Globale Vorlage anlegen

CSS-Datei als Globale Vorlage anlegen

Wenn Sie die Vorlage jetzt speichern und die Datei direkt im Browser aufrufen (passen Sie den Pfad zur global_template.php entsprechend ihrem Installationpfad an. Die global_template.php liegt immer im Root Ihrer Installation).

http://pfad/der/installation/global_template.php?name=beispiel.css

wird ihnen, abhängig vom der Konfiguration des Loggins (siehe Abschnitt 13.1.2.2, „Direkte Ausgabe“) ein Fehler angezeigt oder sie erhalten eine weiße, leere Seite.

Dieser Fehler wird dadurch verursacht, dass Smarty die geschweiften Klammern, die zur CSS-Syntax gehören, als Befehle interpretiert und auszuführen versucht.

Um diesen Fehler zu beheben/verhindern, setzt man bei Delimiter ändern einen Haken. Sobald man dies tut und die Datei wieder im Browser lädt, sollte der CSS-Code ganz ohne Modifikationen angezeigt werden, wie er eingegeben wurde.

Würde man nun die CSS-Datei in eine HTML-Seite einbetten, würde das Hintergrund-Bild allerdings nicht angezeigt werden, da wir zuvor noch den Pfad zur Datei einfügen müssen.

Entfernen Sie nun den Verweis zur container-bg.gif aus der Globalen Vorlage und lassen Sie den Cursor dort stehen, wo der Bildname war. Klicken Sie nun über der Textarea, in der der CSS-Code steht, auf Globale Dateien und wählen dort die oben angesprochene container-bg.gif Datei aus. Datei aus.

Abbildung 7.13. Bild als Globale Datei ins CSS einfügen

Bild als Globale Datei ins CSS einfügen

Anstelle des einfachen Dateinamens steht nun in der Vorlage ein Smarty-Befehl, der beim Aufbereiten der CSS-Datei den Platzhalter durch den effektiven Dateinamen zur Globalen Datei und damit dem Hintergrundbild ersetzt:

#container {
	position: relative;
	margin: 0 auto;
	width: 993px;
	background: #fff url(<%global_file name="container-bg.gif"%>) top right no-repeat;
	text-align: left;
}

Speichern Sie nun die Globale Vorlage und rufen Sie sie wieder wie zuvor im Browser direkt auf, sollten Sie statt den Smarty-Befehl nun den korrekten Pfad zur Globalen Datei sehen.

Würden Sie nun die CSS-Datei in eine HTML-Datei einbinden, würde das Bild korrekt erscheinen. Wie das Referenzieren der Globalen Vorlage in einer Vorlage funktioniert, erklärt Abschnitt 7.6.3.2, „Globale Vorlagen referenzieren“.

[Anmerkung] Anmerkung

Diese Ersetzung der Bilder durch Globale Dateien müssen Sie für alle Bilder vornehmen, die Sie in einer CSS-Datei verwenden. Löschen Sie dazu einfach die alten Bildreferenzen und ersetzen Sie mit Hilfe der Auswahl der Globalen Dateien über das Pop-up, wie es im Rahmen des Beispiels vorgeführt wurde.

7.6.3.2. Globale Vorlagen referenzieren

Globale Vorlagen können sowohl in anderen Globalen Vorlagen als auch in normalen Vorlagen referenziert werden. Die Referenzen werden in Form einer Smarty-Funktion eingesetzt, welche bei der Verarbeitung der Seite durch den realen Pfad zur Globalen Vorlage ersetzt wird. So wird aus

{global_template name="beispiel.css"}

beispielsweise der Pfad

/pfad/der/installation/global_template.php?name=beispiel.css

Die Globalen Vorlagen können damit zum Beispiel in @import-Anweisungen in CSS-Dateien oder als src- oder href-Attribut in verschiedenen HTML-Tags verwendet werden. Beispiel:

<link rel="stylesheet" href="{global_template name="beispiel.css"}"
	type="text/css" media="screen, projection" />

wird zu

<link rel="stylesheet" href="/pfad/der/installation/global_template.php?name=beispiel.css"
	type="text/css" media="screen, projection" />

Die Smarty-Funktion zur Einbindung der Globalen Vorlagen muss man nicht selber schreiben, sondern kann man sie von einer Hilfsfunktion einsetzen lassen, die jeweils über den Eingabefeldern für die Vorlagen-Inhalte lokalisiert sind. Über ein Pop-up lässt sich die gewünschte Globale Vorlage auswählen. Die Smarty-Funktion zur Einbindung der Globalen Vorlage generiert die adäquate Syntax und setzt diese an der Stelle des zuvor gesetzten Cursors ein.

Abbildung 7.14. Globale Vorlage mit Hilfsfunktion referenzieren

Globale Vorlage mit Hilfsfunktion referenzieren