Version: GSB 7Konfiguration des Webauftritts
Der allgemeine Aufbau eines Webauftritts wird mithilfe von Konfigurationsdokumenten festgelegt. Dazu zählen Mehrsprachigkeit, Aufbau der Navigationsstruktur, die Seitenstruktur oder Styleangaben.
Mehrsprachigkeit
Der GSB bietet zwei Arten von Mehrsprachigkeit an: asymmetrische und symmetrische Mehrsprachigkeit.
Hinweis:
Detailliertere Informationen zu diesem Themenkomplex können Sie dem Konzept „GSB7/Mehrsprachigkeit.pdf“ entnehmen.
Asymmetrische Mehrsprachigkeit
Bei asymmetrischer Mehrsprachigkeit haben die unterschiedlichen Sprachversionen große strukturelle Unterschiede und verschiedene Inhalte. Man spricht in diesem Fall auch von nicht-paralleler Mehrsprachigkeit. Bei Wechsel der Sprache gelangt der Benutzer zum Einstiegspunkt der gewünschte Sprachversion. Nicht alle Inhalte liegen gleichermaßen in allen Sprachen vor bzw. sind in allen Sprachen aufrufbar.
Bei einer Entscheidung für asymmetrische Mehrsprachigkeit, muss die Konfigurationsdatei MultiLanguageMode unter „SiteGlobals/_config“ auf „1“ gesetzt werden. Weil der Content der einzelnen Sprachen in verschiedenen Ordnern gespeichert wird, wird ein Ordner für jede verfügbare Sprache unterhalb des Mandantenordners angelegt und nach dem Feld isoLanguageCode des entsprechenden Language-Dokuments benannt, z.B.:
- DE
- EN
- FR
Zudem werden die Startseiten jeder Sprache mittels ConfigLinkList-Dokumenten unter den Ordner „_config“ spezifiziert. Die Dokumente werden mit LangTarget_ und dem Wert von isoLanguageCode benannt.
Beispiel
Im Ordner „_config“ werden folgende Dateien angelegt: LangTarget_de, LangTarget_en, usw. Diese Dateien sind vom Typ ConfigLinkList.
Symmetrische Mehrsprachigkeit
Bei symmetrischer Mehrsprachigkeit gibt es keine strukturellen Unterschiede zwischen den Sprachversionen. Alle Seiten sind in jeder Sprache aufrufbar. Gibt es einen Inhalt nicht in einer der zur Verfügung stehenden Sprachen, wird alternativ die Hauptsprache angezeigt. Im GSB ist Deutsch die Hauptsprache. Beim Wechsel der Sprache wird der gerade angezeigt Artikel in der anderen Sprache angezeigt. Ein solcher Webauftritt wird als parallel-mehrsprachig bezeichnet.
Beispiel
Bei symmetrischer Mehrsprachigkeit muss die Konfigurationsdatei MultiLanguageMode unter „SiteGlobals/_config“ auf „0“ gesetzt werden. Um die Übersichtlichkeit innerhalb des CMS zu erhöhen, sollten alle Inhalt tragenden Dokumente unterhalb des Mandantenordners um den Wert des isoLanguageCode der entsprechenden Sprache ergänzt werden, z.B. <beitragname>_de oder <beitragname>_en.
Navigation
Der GSB unterstützt direkt die unterschiedlichen Navigationsprinzipien, wie sie der ISB (Internetstyleguide der Bundesregierung) vorsieht. Innerhalb bestimmter Konfigurationsdateien wird festgelegt, welche Ausprägungen die Navigation erhalten soll.
Neben der Festlegung, ob eine Überkreuznavigation eingesetzt werden soll, stehen im GSB folgende Navigationsvarianten zur Verfügung:
- Ordner-Navigation à la Baumstruktur, die einem bestimmten Pfad folgt
- Horizontale Menüleiste
- Versteckte Navigationspunkte
Für alle unterschiedlichen Varianten muss jeweils ein Dokument in „SiteGlobals/NavStyles“ angelegt werden. Dies sind:
- NavStyleTreeView
- NavStyleBarView
- NavStyleHidden
Hinweis:
Detailliertere Informationen zu diesem Themenkomplex können Sie zudem dem Konzept „GSB7/Navigation.pdf“ entnehmen.
Struktur der Navigation
Die hierarchische Navigationsstruktur wird im GSB über den Dokumenttyp „NavNode“ abgebildet. Die Ablage der Dokumente erfolgt mandanten-spezifisch. Sie können je nach Anforderungen im redaktionellen Alltag beispielsweise gemeinsam mit den redaktionellen Dokumenten abgelegt werden – alternativ können die Navigationsdokumente auch in einer eigenen Ordner-Struktur
- <Mandant>/Navigation
abgelegt werden, beispielsweise wenn die Pflege der Navigationsstruktur durch eine andere Benutzergruppe erfolgen soll, als die Pflege der redaktionellen Inhalte. Bei einem nicht-parallel mehrsprachigen Webauftritt, sollte dieser Ordner nochmals unterteilt werden nach den Sprachausprägungen (also z.B. <Mandant>/NavStructure/de“ und „<Mandant>/Navigation/en“).
Die Navigationsknoten der 1. Ebene jedes verwendeten Navigationsbereichs müssen mit der entsprechenden Konfigurationsdatei unter _config verlinkt werden. Diese Dateien sind NaviIdentityTreeNodes, NaviIdentityServiceTreeNodes und NaviServiceTreeNodes.
Bei paralleler Mehrsprachigkeit müssen die Navigationsknoten für jede Nebensprache mit Dokumenten vom Typ NavTargetLang konfiguriert werden. Diese Dokumente spezifizieren die Ansicht den Navigationsknoten in den Nebensprachen. Jedes Dokument vom Typ NavTargetLang muss im Attribut HauptspracheDokument auf den entsprechenden Navigationsknoten verweisen.
Weiterführende Konfiguration
Die folgenden, schon erstellten Konfigurations-Dateien im Ordner „_config“ müssen eingesetzt werden:
Datei-Name | Dokumenttyp | Beschreibung | Einträge/Inhalte |
NaviCrossOverDepth | ConfigInt | Der Navigationstiefe, bei der die Überkreuznavigation anfängt. | |
NaviTreeMaxDepth | ConfigInt | Anzahl der sichtbaren Navigationsebenen |
Startseite als Navigationsknoten
Das Dokument _config/NaviIdentityTreeNodes verweist auf ein Dokument von Typ NavNode. In der Regel ist dies das Dokument homepage_node aus dem Ordner <Hauptsprache>/Home.
StyleBundles
Grundsätzlich werden Cascading Style Sheets im GSB über Dokumenttypen strukturiert und entsprechend in Dokumenten über die Editoren gepflegt. Genauer betrachtet, gibt es jedoch zwei Möglichkeiten das eigentliche StyleSheet zu verwalten.
Die erste Möglichkeit gibt vor, dass für jede Klassendefinition im CSS eine Datei vom Typ PageStyleClass angelegt wird. Diese Klassendefinitionen müssen dann alle im Feld Komponenten des Stylebundles eingehängt werden und bilden in ihrer Gesamtheit das zu verwendende CSS.
Hinweis:
Diese Art das CSS zu behandeln hat sich bei Nutzern, die im Umgang mit CSS sehr geübt sind, nicht durchgesetzt und sollte deshalb nur eingesetzt, wenn die Personengruppe, die das StyleBundle pflegt, mit Cascading Style Sheets eher weniger Erfahrung hat.
Die zweite Variante der CSS-Verwaltung ist auch die, die in der Standardlösung genutzt wird. Anstatt alle Klassen in einzelnen Dokumenten zu verwalten, nutzt man das Feld Spezielle CSS-Angaben im StyleBundle-Dokument. In dieses Feld kann man z.B.: ein StyleSheet, das von einem Webdesigner entworfen wurde, 1-zu-1 hineinkopieren und entsprechend später auch verändern, wie im folgenden Code-Beispiel zu sehen.
... body > div {
font-size: 100%;
}
p, th, h1, h2, h3, div {
-moz-hyphens: auto;
}
html {
font-family: small;
}
h1, h2, h3, h4, h5, h6 {
font-family: "bundesserifweb",Georgia,Times New Roman,serif,"Droid Serif";
font-weight: normal;
line-height: 1.2;
margin: 0 0 10px;
padding: 0;
} ...
Dieses Vorgehen bildet eher das Vorgehen eines CSS Entwicklers ab, als die Nutzung von Variante 1.
Das gewünschte PageStyleBundle-Dokument für den Webauftritt muss in dem Wurzelknoten der Navigation referenziert werden. Um ein PageStyleBundle-Dokument als Standard für alle Knoten bzw. Dokumente zu definieren, die nicht in der Hauptnavigation eingehängt sind, muss man im Dokument _DefaultStyleNode im Ordner „_config“ einen Verweis auf einen „Muster“-Navigationsknoten setzen.
Seitenstruktur
Die Seitenstruktur legt die grundlegende Struktur einer jeden Seite fest. Beim ISB sind dies z.B. die Bereiche „Identitätsbereich mit Hauptnavigation “, „Bühnenbereich“, „Servicebereich“, „Contentbereich“, etc. Bei anderen Strukturen können vollkommen andere Bereiche identifiziert und definiert werden. Der Dokumenttyp „PageStructure“ bildet in seinen Methoden diese grundlegenden Strukturen ab und bindet die Methoden der einzelnen Bereiche ein. So werden hier insbesondere die Navigationsbereiche und der Content-Bereich eingebunden.
Während die Seitenstruktur in der Regel für jede Seite der Site identisch ist, ändert sich die Struktur des Content-Bereichs häufiger in einem Auftritt. Die unterschiedlichen Variationen des Content-Bereichs werden mit dem Dokumenttyp „LOContentRegion“ und dessen Unterklassen abgebildet.
Konfiguration
Zur Konfiguration der Seitenstruktur steht im GSB der Dokumenttyp „PSTemplate“ (Seitenaufbau-Template) zur Verfügung.
Dieses Dokument enthält das HTML-Gerüst des Webauftritts der Standardlösung und einige Linklisteneinträge mit Verweisen auf andere Dokumente, Bilder etc., die aus dem HTML heraus referenziert werden.
Im Seitenaufbau-Template kann geändert werden:
- Das HTML das im Webauftritt verwendet wird und
- die Verweise auf wichtige Dokumente aus dem HTML heraus, wie z.B.: der Knoten für das Impressum oder das Bild für das favicon.
Die Konfiguration stellt sich wie folgt dar:
In „SiteGlobals/Layouts/PageStructure“ muss eine Datei vom Typ „PSTemplate“ angelegt werden. Danach wird diese Datei mit der Datei „MainLayout“ in „SiteGlobals/_config“ verlinkt.
In der folgenden Tabelle ist aufgeführt, wie man im HTML-Gerüst auf die Dokumente im Feld „Parameter“ der PSTemplate mittels Velocity zugreift.
Weitere Details zur Nutzung der Befehle sind dem Dokument Velocity-Skripte zu entnehmen.
Befehl | Parameter | Beschreibung |
$cms.include | document, view, params | Dieser Aufruf wird zur Einbindung von verlinkten Dokumenten benötigt |
$cms.message | Name des Labels | Je nach Sprachauftritt, wird an dieser Stelle das im Ressource-bundle unterhinterlegte Label ausgegeben. |
$cms.link | document, params | Dieser Aufruf wird zur Erstellung von Links benötigt |
Struktur des Content-Bereichs
Die Struktur des Content-Bereichs wird mit Hilfe des Dokuments „LayoutContentRegion“ und seinen Unterklassen realisiert. Mit LayoutContentRegion werden für den Content-Bereich so genannte „Slots“ definiert, in die über den Dokumenttyp „NavTarget“ Dokumente eingestellt werden können.
Die LayoutContentRegion besitzt in der aktuellen Version des GSB die Unterklasse „LOGridTemplate“. „LOGridTemplate“ realisiert analog zum PSTemplate die Methodik, den HTML-Code direkt in ein Richtext, Feld "Template" einzupflegen und durch entsprechende Platzhalter die Slots zu definieren. Auch an dieser Stelle wird zur Ausgabe der Inhalte Velocity eingesetzt. So kann beispielsweise über folgenden Aufruf auf die Inhalte des Slots "content" zugegriffen werden:
- $slots.get("content")
Weitere Details zur Nutzung der Befehle sind dem Dokument Velocity-Skripte zu entnehmen.
Mit LayoutContentRegion können also beispielsweise ein-, zwei- oder auch n-spaltige Content-Bereiche definiert werden.
Layouts
Layouts für den Content-Bereich (LOGrid) und ViewVarianten der einzelnen Dokumenttypen (LOViewVariant) befinden sich in “SiteGlobals/Layouts”. Die LOViewVariant-Dokumente fungieren als „Pointer“ auf das eigentliche Template, mit dem ein Dokument gerendert werden soll. Es wird empfohlen, für jeden Dokumenttyp ein Default-Layout zu implementieren, um nicht bei jeder Zuordnung eines Dokuments in einem NavTarget das Layout explizit zuordnen zu müssen. Diese ViewVariante wird dann mit _config/DefaultLayout verbunden. Weitere mögliche ViewVarianten, die für mehrere Dokumenttypen umgesetzt werden sollten, können sein:
- Teaser
- SearchResult
- AlsLink
- ListEntry
- ...