Im Management Server gibt es eine strikte Unterscheidung zwischen einer Masterseite (Masterpage) und einer Rahmenseite. Das eine hat etwas mit dem Navigation Manager zu tun, das andere jedoch nicht. Leider gibt es an der ein oder anderen Stelle im System eine ungeschickte Wahl bei der Beschreibung bzw. Benennung von Dingen. Dies möchte ich in diesem Artikel auflösen und mit Ausschnitten aus der Online-Hilfe untermauern.
CurrentMasterPage: Die aktuelle Rahmenseite als Objekt Page.
Das Objekt CurrentMasterPage
bezieht sich nicht auf die Eigenschaft Masterpage der Content-Klasse, sondern auf die Rahmenseite. Die Rahmenseite ist in diesem Zusammenhang immer die äußerste Seite, die angezeigt wird.
Die Seiten von Web-Projekten, beispielsweise in HTML, bestehen aus Code, der nacheinander interpretiert und dargestellt wird. Mit dem Management Server kann man den Code in logische Bausteine unterteilen, um eine hohe Wiederverwertbarkeit von Code zu erreichen.
Zu diesem Zweck teilt man den Code einer eigentlich zusammengehörenden Seite in sinnvolle Abschnitte auf. Zu jedem Abschnitt der Web-Seite erstellt man eine eigene Content-Klasse, auf der dann eine Seite basiert. Eine Web-Seite wird im Management Server aus mehreren Seiten zusammengestellt. Mit Hilfe des Container-Elements werden die Seiten in der Projektstruktur im SmartTree oder im SmartEdit miteinander verlinkt. Das Container-Element ist ein Struktur-Element und wird auch als MultiLink bezeichnet. Ein MultiLink erlaubt es, mehrere Seiten an nur einem sichtbaren Link zu verknüpfen.
Der Container setzt für die Seitenvorschau, die Ansicht in SmartEdit und für die Publizierung der Seiten den Code aller verknüpften Seiten zu einem Code zusammen und stellt ihn als eine Seite dar. Die Seite, in der sich der Container befindet, wird daher auch als Rahmenseite bezeichnet, da sie den Rahmen für weitere Seiten bildet.
Anmerkung: Auf einen Blick
Anmerkung: Variationen zur Breadcrumb-Navigation
Die jeweils aktuell angezeigte Seite wird in der Breadcrumb-Navigation nicht angezeigt.
Um dennoch die aktuell angezeigt Seite in der Breadcrumb-Navigation anzuzeigen, habt man die folgenden Möglichkeiten:
Wenn die Überschrift der aktuellen Seite ebenfalls in der Breadcrumb-Navigation angezeigt werden soll, erstellt man direkt hinter der Blockmarkierung Breadcrumb ein Überschrifts-Element. Jede Seite, die über eine Breadcrumb-Navigation verfügen soll, kann hierfür beispielsweise den folgenden Code erhalten:
Wenn der Sitemap-Name der aktuellen Seite in der Breadcrumb-Navigation angezeigt werden soll, erstellt man direkt hinter der Blockmarkierung Breadcrumb ein Info-Element vom Typ Seite: Sitemap-Name. Danach aktiviert man die Checkbox zu Daten der Seite im Targetcontainer verwenden, um den Sitemap-Namen der aktuellen Seite, die in einem Targetcontainer angezeigt wird, an der Rahmenseite anzeigen zu lassen.
Beispiel: Seitenvorschau nach Datum für Seiten in einer Liste oder in einem Container
Im Dialogfenster Seiten-Verlinkung und -Erscheinungszeitraum bearbeiten kann man für die Verlinkungen einer Seite mit Struktur-Elementen festlegen, wann diese aktiv sind. Wenn eine Verlinkung nicht aktiv ist, wird diese nicht angezeigt (z.B. im SmartEdit oder in der Seitenvorschau).
Wenn die Verlinkung einer Seite mit einer Liste beispielsweise nicht aktiv ist, wird der entsprechende Link zur Seite nicht in der Seite angezeigt, in der sich das Listen-Element befindet. Somit kann die betreffende Seite an dieser Stelle des Projekts nicht aufgerufen werden und ist dadurch nicht erreichbar.
Für eine Seite, die mit einem Container verknüpft ist, bedeutet das, dass der Inhalt der Seite nicht in der Rahmenseite angezeigt wird, solange der Startzeitpunkt des Erscheinungszeitraums nicht erreicht ist. Über die Seitenvorschau nach Datum kann man komfortabel für die Rahmenseite unterschiedliche Erscheinungszeitpunkte einstellen und sich die Inhalte der Seite im Container in der Rahmenseite ansehen, ohne die Ansichtseinstellungen ändern zu müssen.
Alternative Ermittlung der Dateiendung bei Verwendung von Target-Containern
Aktiviert man diese Checkbox, wenn man die Ermittlung der Dateiendungen für Seiten ändern möchte, die in einem Target-Container dargestellt werden. Wenn keine andere Einstellung vorgenommen wurde, wird für die Dateiendung einer solchen Seite zunächst die Endung verwendet, die im Dialogfenster Eigenschaften bearbeiten für die Seite explizit festgelegt wurde. Ist in diesem Dialogfenster keine Dateiendung angegeben worden, wird die Dateiendung verwendet, die für das Template der Rahmenseite (Seite, in der sich der Target-Container befindet) festgelegt wurde. Über die beiden folgenden Optionen können Sie ein abweichendes Verhalten festlegen:
Masterpages sind Seiten in der Projektstruktur auf Basis einer Content-Klasse, welche die Eigenschaft Masterpage hat. Alle Seiten auf Basis einer solchen Content-Klasse werden automatisch in die Navigationsstruktur aufgenommen.
Masterpages sind Content-Klassen, auf deren Basis im Navigation Manager eine Navigationsstruktur aufgebaut wird.
Man hat folgende Optionen:
Die Navigationsstruktur ist die hierarchische Anordnung der Masterpages im Navigation Manager. Die Navigationsstruktur basiert auf der Verknüpfung der Masterpages über ein festgelegtes Listen-Element. Jede Masterpage kann in der Navigationsstruktur nur einmal vorkommen.
Navigationsstruktur bearbeiten: Die Navigationsstruktur kann man im Dialogfenster Navigationsstruktur des Navigation Manager pflegen. Damit steuert man die Verknüpfung in der Projektstruktur. Änderungen der Verknüpfungen der Masterpages, die man in der Projektstruktur vornimmt, wirken sich auf die Navigationsstruktur aus.
Anmerkung: Mehrfach verknüpfte Masterpages
Wenn eine Masterpage in der Projektstruktur mit zwei für die Navigation festgelegten Listen-Elementen verknüpft ist, wird nur der Hauptlink in der Navigationsstruktur angezeigt.
Im ersten Schritt erstellt man die Content-Klassen für die navigationsrelevanten Seiten und weisen diesen die Eigenschaft Masterpage zu.
Anmerkung: Notwendigkeit des Listen-Elements
Dieser Schritt schließt auch die Erstellung eines Listen-Elementes mit ein. Das Festlegen eines Listen-Elements ist nicht zwingend erforderlich. Da aber die Verknüpfung der Seiten über das Listen-Element realisiert wird, kann eine Masterpage ohne definiertes Listen-Element in der Navigationsstruktur keine untergeordneten Seiten haben.
So erstellen Sie eine Content-Klasse für Masterpages:
Mit dem Navigation Manager steht ein komfortables Hilfsmittel zur Erstellung von dynamischen Navigationsmenüs zur Verfügung.
Für jedes Navigationsmenü definiert man im Navigation Manager einen Navigationsbereich. Dabei legt man fest, welche Content-Klassen die Funktion und das Aussehen der Navigationsebenen bestimmen.
In der Navigationsstruktur baut man die Struktur der Seiten auf, die direkt von der Navigation aufgerufen werden sollen. Diese Seiten basieren auf Content-Klassen, die als Masterpage definiert sind.
Folgende grundlegende Schritte sind für den Aufbau einer Navigation mit dem Navigation Manager notwendig.
Schritt 1: Content-Klassen für die navigationsrelevanten Seiten erstellen (Masterpage)
Für die Seiten, die direkt über die Navigation aufgerufen werden sollen, erstellen Sie eine Content-Klasse mit einem Listen-Element. Diese Liste kann direkt als Struktur-Element der Content-Klasse erstellt werden und muss nicht in den Templatecode eingefügt werden. Sie dient als Verknüpfungspunkt für die folgende Navigationsebene. Damit Sie im Navigation Manager basierend auf dieser Content-Klasse Seiten erstellen können, muss die Content-Klasse als Masterpage festgelegt werden. Diese Einstellung nehmen Sie direkt an der Content-Klasse über den Aktionsmenüpunkt Masterpage Einstellungen vor.
Mit dem ObjectLoader (Provider) Store
kann man während des Renderns der Seite vorübergehend einen Wert speichern. Jeder Store
umfasst einen Namen und einen Wert. Der Name muss vom Typ String
sein. Der Wert kann ein beliebiges Element, das von einem anderen RenderTag oder ObjectLoader (Provider) abgerufen werden kann, oder eine direkt zugewiesene Zeichenfolge sein.
Für den ObjectLoader (Provider) Store
gelten folgende Einschränkungen:
Es ist also wichtig, dass man für den Projekt- und Content-Klassen-Bau den Unterschied zwischen einer Rahmenseite und Masterseite (Masterpage) sehr genau kennt. Dazu kommt noch, dass man bei der Verwendung des Template Renderings auch noch diese Eigenarten berücksichtigen sollte. Ein persönlicher Wunsch von mir wäre, wenn man hier mehr Klarheit und Eindeutigkeit innerhalb des Management Server bei Benennung herstellen könnte. Vorschlag meinerseits: Es gibt Seiten, Rahmenseiten und Navigationsseiten (vormals Masterpage) und jeder Typ hat eine eindeutige Funktionsbeschreibung. Dies sollte sich dann auch in den RenderTag bzw. ObjektLoadern usw. durchgängig bei der Bezeichnung/Benennung von Eigenschaften bzw. Methoden wiederspiegeln. ;)
... ist Senior Site Reliability Engineer bei der Vodafone GmbH in Düsseldorf. Seit dem Jahr 2007 betreut er zusammen mit seinen Kollegen die OpenText- (vormals RedDot-) Plattform Web Site Management für die deutsche Konzernzentrale.
Er entwickelt Erweiterungen in Form von Plug-Ins und PowerShell Skripten. Seit den Anfängen in 2001 (RedDot CMS 4.0) kennt er sich speziell mit der Arbeitweise und den Funktionen des Management Server aus.