Zielgruppe EntwicklungVersion: GSB10.1Einführung
Der Abschnitt "Navigation" enthält Hinweise zu den GSB-Navigationsbausteinen.
Es richtet sich vor allem an einen technisch orientierten Personenkreis, dessen Aufgabe es ist, einen GSB-Mandanten zu konfigurieren oder zu erweitern.
Hier finden Sie Informationen zum Zusammenspiel von NavNode
(Navigationsknoten), NavTarget
(Navigationszieldokument) und Inhalt, der auf der Seite dargestellt wird. Bei diesem Konstrukt ist insbesondere das Verhalten der Site bei weiterführenden Verlinkungen auf einzelne Dokumente wichtig. Das Verhalten kann über Konfiguration gesteuert werden.
Einem NavNode
wird ein NavTarget
(Property "navTarget
") zugewiesen, mit dem festgelegt wird, welche Inhalte auf der Seite des Navigationspunktes dargestellt werden. Das NavTarget
entspricht sozusagen einer sequentiellen Liste, die beim Aufruf eines NavNode
abgearbeitet wird. Das Ergebnis wird dann im Navigationspunktkontext im angezeigt. Über dieses Konstrukt wird die grundlegende Pflege der Inhalte auf der Website vorgenommen.
Wird ein NavNode
angewählt, wird das zugehörige NavTarget
ermittelt und die damit verbundenen LanguageEnts
mit ihren zugewiesenen Layouts gerendert.
Innerhalb der LanguageEnts
können Links definiert sein, die auf weitere Seiten verweisen.
Hierzu gibt es mehrere Möglichkeiten:
- Verweis auf einen Navigationsknoten (
NavNode
).
Soll aus demLanguageEnt
heraus ein anderer Bereich der Site referenziert werden, kann ein Link auf den entsprechendenNavNode
gesetzt werden. Dann wird der referenzierteNavNode
wie oben beschrieben gerendert - Verweis auf ein einzelnes
LanguageEnt
:
Hier sind zwei Varianten denkbar:- Der Kontext bleibt erhalten:
Sollen die Navigation und die Seitenstile des aktuellenNavNode
erhalten bleiben, wie sie sind, so wird der Link auf dasLanguageEnt
durch die JSP so gerendert, dass die ID des aktuellenNavNode
in der URL codiert wird. Dieser Parameter wird dann auf der Zielseite ausgewertet und das bestehendeNavNode
beibehalten. AlsNavTarget
kommt nun allerdings nicht das demNavNode
zugewieseneNavTarget
zum tragen, sondern das per ConfigReader hinterlegte DefaultNavTarget für die Volldarstellung, in dem neben anderen "Slots" genau ein "Slot" untergebracht ist, in dem einDynamicEnt
untergebracht ist, das das eigentlich aufgerufeneLanguageEnt
darstellt. Dieses konfigurierte DefaultNavTarget kann über eine zweite Property innerhalb desNavNodes
zu einemNavTarget
durch eine für diesenNavNode
individuelle Darstellung ersetzt werden (PropertylangEntTarget
). Auch in diesem überschriebenenNavTarget
muss es einen entsprechenden Slot für das den Parameter auswertendeDynamicEnt
geben.
Anwendung: Unter einem Navigationsknoten "Special des Monats" werden 5 Seiten aus unterschiedlichen Themenbereichen zusammengestellt, die aufeinander verweisen. Hier sollen sie aber, anders als in Ihren "Haupt-Kontexten" insgesamt im Kontext "Special des Monats" angesiedelt sein.
- Neuer Kontext:
Soll mit dem Link auf dasLanguageEnt
auch dessen Kontext angewendet werden, so wird der aktuelleNavNode
nicht durch die JSP in den Link kodiert (in Wirklichkeit wird ein zusätzlicher Parameter an die URL gehängt, der den Apache dazu veranlasst, den bereits in die URL kodiertenNavNode
-Prefix wieder zu entfernen). Das bewirkt, dass auf der Zielseite der mit demLanguageEnt
verbundenedefaultNavNode
gerendert wird und auch hier das zweiteNavTarget
(PropertylangEntTarget
bzw. das DefaultNavTarget des ConfigReaders) zur Volldarstellung eines einzelnenLanguageEnts
verwendet wird.
Anwendung: Eine Suchergebnisanzeige soll die Links so gestaltet haben, dass die angeteaserten Links den tatsächlichen Kontext der gefundenenLanguageEnts
aktivieren.
- Der Kontext bleibt erhalten:
Die Entscheidung, wie der Link auf das LanguageEnt
gerendert wird, wird im das LanguageEnt
darstellenden LOLangEntLeaf
konfiguriert (Property: keepNavContext
). Hier wird also festgehalten, ob die Zielseiten den aktuellen Kontext behalten sollen oder der Haupt-Kontext des LanguageEnts
(Property: defaultNavNode
) verwendet werden soll. Diese Festlegung erfolgt also letztendlich bei der Definition des NavTargets
für jedes einzelne Fragment der Seite. Somit ist unterschiedliches Verhalten für die einzelnen Seitenbereiche möglich.
Verweis auf ein NavTarget
:
Verweise auf NavTargets
werden unterbunden, da es dadurch keinen wirklichen Mehrwert gegenüber der Verlinkung auf den zugehörigen NavNode
gibt.
Das NavTarget
, das an einen NavNode
zur Volldarstellung eines per Parameter übergebenen LanguageEnts
verlinkt wird (also in die Property langEntTarget
), muss ein ausgezeichnetes DynDocIdLangEnt
beinhalten, das die Parameter auswertet und das entsprechende LanguageEnt
zurückgibt.