Die Inhalte im CMS müssen exportiert werden, damit sie für den Websitebesucher sichtbar sind. Hierfür sorgt ein System-Job, der beim Fiona-Demo-Content manuell ausgeführt werden muss. Im Produktivbetrieb wird der Job jedoch normalerweise mit einem Zeitplan versehen, so dass die Inhalte in regelmäßigen Abständen automatisch exportiert werden (Systemeinstellungen im Extras-Menü).
Der erste Export der Inhalte bewirkt, dass die komplette Ordnerhierarchie mit Hilfe der Layouts zu den entsprechenden Webseiten verarbeitet wird. Bilder und Ressourcen werden unverändert, d.h. ohne Verwendung von Layouts exportiert. Die Layouts selbst werden nicht exportiert.
Jeder weitere Export aktualisiert nur die Dokumente, die sich geändert haben. Insbesondere bei großen Websites ergibt sich dadurch eine erhebliche Einsparung von Hardware-Ressourcen. Bei Bedarf kann ein kompletter Export jederzeit manuell angestoßen werden.
Der Export der Inhalte beginnt stets beim Basisordner. Das CMS wandert von dort durch die Ordnerhierarchie, legt für Ordner die entsprechenden Verzeichnisse an und speichert darin die Dokumente.
Jeder Export eines einzelnen Ordners oder Dokuments beginnt mit dem
Basislayout, der Layout-Datei mit dem Namen mastertemplate
. Alle
darin verwendeten npsobj
-Anweisungen beziehen sich zunächst auf
die gerade exportierte CMS-Datei. Die CMS-Datei dient bei der Erzeugung des
Webdokuments als Datenquelle, aus der das HTML-Gerüst aufgefüllt wird.
Technisch ausgedrückt stellt die Datenquelle den Kontext dar, in dem die
npsobj
-Anweisungen ausgewertet werden.
Mit bestimmten npsobj
-Anweisungen kann der Kontext gewechselt
werden. Wenn beispielsweise während des Exports eines Ordners die
npsobj
-list
-Anweisung im Layout vorkommt, so wird für
jedes Dokument, das sich in dem betreffenden Ordner befindet, der Kontext
gewechselt. Dadurch beziehen sich die Anweisungen bis zum Ende der
npsobj
-list
-Anweisung nicht mehr auf den gerade
exportierten Ordner, sondern auf die darin enthaltenen Dokumente und Ordner.
Die Layout-Sprache von CMS Fiona erlaubt es also, beim Export eines Dokuments Inhalte aus beliebigen anderen Dokumenten einzubeziehen. Das Zusammenspiel der Layouts sorgt beim Export des Basisordners dafür, dass am Ende alle Dokumente genau die Inhalte haben, die das Websitekonzept vorsieht.
Sie können mit CMS Fiona jedem Bereich in Ihrem Webauftritt ein anderes Layout geben. Hierfür gibt es zwei Möglichkeiten, von denen die erste bereits erwähnt wurde: Sie können in den Layouts per NPSOBJ-Anweisung den Pfad des gerade exportierten Dokuments abfragen und je nach Lage des Dokuments in der Ordnerhierarchie anderen HTML-Text oder andere Styles verwenden. Dieses Verfahren bietet sich an, wenn die Abweichungen nicht zu umfangreich sind, also beispielsweise nur ein Teaser mehr oder weniger in den Unterbereichen erscheinen soll.
Bei größeren Unterschieden empfiehlt es sich, in den Unterbereichen individuelle Layouts zu verwenden. Man sieht bereits beim Demo Content, dass sich Layouts an verschiedenen Stellen in der Ordnerhierarchie befinden können:
(Für den obigen Screenshot wurden die Ansicht der Namen statt der Titel
sowie die Layouts eingeschaltet.) Das Basislayout, das
mastertemplate
, befindet sich im Ordner playland
und gilt für diesen sowie alle darunter liegenden Ordner, also insbesondere
für die beiden Auftritte der Playland AG, de
und
en
. Hätten der deutschsprachige und der englischsprachige
Auftritt signifikante Layout-Unterschiede, so könnte man dies über eigene
Basislayouts in diesen Ordnern realisieren, d.h. die Ordner de
und en
jeweils mit einem eigenen mastertemplate
versehen. So verhält es sich beispielsweise mit dem Layout
L_content
, das sich in diversen Unterordnern der Auftritte
befindet und dafür sorgt, dass der Hauptbereich der jeweiligen Dokumente ein
individuelles Layout erhält.
Eine Layoutdatei auf einer bestimmten unteren Ebene in der Ordnerhierarchie löst also ein gleichnamiges Layout auf einer höheren Ebene ab – jedoch nur beim Export von Dokumenten in oder unterhalb dieser unteren Ebene.
Das Mittel der Ersetzung von Layouts sollte so konsequent wie möglich eingesetzt werden – also nicht nur, um individuelle Layouts für Teilbereiche zu erstellen, sondern auch, um gemeinsame Gestaltungselemente auszulagern. Haben beispielsweise zwei gleichnamige Layouts, A und B, teilweise identische Inhalte, so sollten diese Teile in ein drittes Layout, C, ausgelagert werden, das an höherer Stelle in der Ordnerhierarchie abgelegt wird, so dass es von A und B aus "sichtbar" ist. Durch diese Maßnahme brauchen Anpassungen an den gemeinsamen Bestandteilen von A und B nur in C vorgenommen zu werden.