Freitag, 26. August 2011

Navigation Manager in RedDot

Der Navigation Manager in RedDot erstellt dynamisch eine Navigation. Änderungen in der Navigationsstrukur wirken sich direkt auf die Projektstruktur und die Seiten aus. Das bedeutet, wenn man neue Seiten im Navigation Manager anlegt, wird auf allen Seiten die Navigation angepasst.

Folgende Schritte müssen durchgeführt werden, um eine Navigation mit dem Navigation Manager zu erstellen:
  1. Navigation Manager aktivieren
  2. Mastertemplate mit einem Listenelement erstellen
  3. Content-Klassen für die Navigationsebenen erstellen
  4. Navigationsbereiche erstellen und die Content-Klassen zuordnen
  5. Navigationsbereiche im Mastertemplate angeben
  6. Navigationsstruktur aufbauen
1. Navigation Manager aktivieren
Damit der Navigation Manager genutzt werden kann, muss er in den allgemeinen Einstellungen des Projektes aktiviert werden.

2. Mastertemplate mit einem Listenelement erstellen
Nur an einem Mastertemplate können mit dem Navigation Manager Seiten angehängt werden. Eine Seite, die eine Masterpage als Template hat, wird automatisch in die Navigationsstruktur aufgenommen. Dazu erstellt man eine neue Content-Klasse. Diese kann zum Beispiel das Grundgerüst für alle Seiten sein. In dieser Content-Klasse muss ein Listenelement angelegt werden. Diese Liste dient als direktes Strukturelement zur Verknüpfung von darauf folgenden Ebenen. Die Einstellung für das Listenelement ist „Nur Datei- und Pfadnamen angeben". Dieses Element muss nicht im Template verwendet werden. In den Masterpage Einstellungen wird definiert, dass diese Content-Klasse als Masterpage verwendet wird. Weiterhin gibt man an welches Listenelement als Navigationsstruktur dient.

3. Contentklassen für die Navigationsebenen erstellen
Es muss für jede Navigationsebene ein Template erstellt werden. Wenn es einen „selektiert“ und „nicht selektiert“ Zustand gibt, benötigt jeder Zustand ein eigenes Template. Für eine Navigation mit zwei Ebenen ohne unterschiedliche Zustände, benötigt man also zwei Templates.
Der Navigation Manager bietet Render Tags. Die Render Tags sind Code für die Navigationsfunktionalität. Sie ermöglichen den Zugriff auf Objekte im Management Server, wie Navigationsindex, Inhalte aus den Seiten oder Navigationsbereiche. Komplexere Render Tags Funktionen werden in einem <reddot:cms /> Block zusammengefasst.

Ebene Eins
<ul>
<li>
<a href=" <%!! Context:CurrentIndex.GetUrl() !!%>">
<%!! Context:CurrentIndex.Headline !!%>
</a>
<reddot:cms>
<if>
<query valuea="Context:CurrentIndex.HasChildren()" operator="=="
valueb="Bool:True">
<htmltext>
<ul>
<navigation:nextlevel>
</ul>
</htmltext>
</query>
</if>
</reddot:cms>
</li>
</ul>

Context:CurrentIndex.GetUrl = setzt den Link der aktuellen Seite Context:CurrentIndex.Page.Headline = liest den Seitennamen der aktuellen Seite aus und ergibt den Linktext .
Die Abfrage ist die Grundlage um Seiten aus der zweiten Navigationsebene einzufügen. Wenn die aktuelle Seite (CurrentIndex) Kindelemente besitzt, wird eine Liste für das nächste Level generiert.
<if> <qeury> = Abfrage; alle Werte werden in Strings angegeben, selbst der Vergleichsoperator; es werden valuea und valueb vergleichen.
<htmltext /> = Es kann HTML Code im <reddot:cms /> Block geschrieben werden
<navigation:nextlevel> = fügt nächstes Navigationstemplate ein

Ebene Zwei
<li>
<a href=" <%!! Context:CurrentIndex.GetUrl() !!%>">
<%!! Context:CurrentIndex.Headline !!%>
</a>
</li>

Es wird nur das Listenelement der aktuellen Seite generiert. Das umgebende Listenelement (<ul />) wird im Navigationstemplate Ebene Eins erstellt.

4. Navigationsbereiche erstellen und die Content-Klassen zuordnen
Es müssen die erstellten Navigationtemplates Navigationsbereichen zugeteilt werden. Unter "Navigation ansehen - Projekt - Navigationsbereiche" werden Navigationsbereiche erstellt und die jeweilige Content-Klasse zugeordnet.Im linken Dialogfenster werden die erstellten Navigationsbereiche angezeigt, rechts die Content-Klassen. In diesem Beispiel muss ein Bereich für die Hauptnavigation erstellt werden. Diesem Bereich werden die Navigationtemplates Ebene Eins und Ebene Zwei zugeordnet.In den Einstellungen der Zuordnung gibt man an für welche Ebene das jeweilige Template wirken soll.

5. Navigationsbereiche im Mastertemplate angeben
Die Zusammenführung des Mastertemplates und der Navigationtemplates erfolgt über die Navigationsbereiche. Im Mastertemplate werden über Render Tags die Navigationsbereiche eingefügt. Diese basieren auf den Navigationtemplates, so dass sich das Bild eines kompletten HTML-Gerüstes ergibt.

<%!! Navigation:OutputArea(Str:Hauptnavigation) !!%>

6. Navigationsstruktur aufbauen
Unter "Navigation einsehen - Projekt - Navigationsstruktur" erstellt man die Navigationsstruktur. Das Dialogfenster hat zwei Seiten:
Links: navigationsrelevante Seiten
Rechts: Hilfsbaum, der entweder alle freien Seiten, oder bestehende Navigation anzeigt

Jedes Projekt kann nur eine Hauptseite haben, eine zweite Seite landet unter den freien Seiten. Weitere Seiten können an der Hauptseite erstellt werden.

Es gibt zwei Unterschiede beim Löschen von Seiten:
Seite löschen - Seite wird aus Navigation und Projekt gelöscht
Seitenindex löschen - Seite wird aus Navigation gelöscht, bleibt im Projekt bestehen

Keine Kommentare:

Kommentar veröffentlichen