Horizontale Header Navigation

1-Level-Struktur

Von: Santscho

Um was gehts? — Seitenebenen für die Navigation | Dynamische Navigation integrieren

Anlegen der "Mutterbene" der Header-Navigation

Als erstes wird unter ADMINSeitenstruktur eine neue Ebene angelegt, die man zum Beispiel Top-Menü benennt. Diese Ebene wird später alle Bereiche wie z.B. "Kontakt", "Impressum", "Haftungsausschluss", "Sitemap" und "Links" enthalten.

Top-Menü braucht eine spezielle Darstellungs-Einstellung, welche im Folgenden beschrieben wird.

HeaderNavi_Frontendstatus.png

Wichtig ist, dass für diese Ebene der korrekte Frontend Menüstatus gesetzt wird. Dazu wählt man

Frontend Menüstatus: versteckt

Alle anderen Einstellungen werden belassen (siehe Bildschirm-Foto).

a

Warum muss man diese Ebene verstecken? — Später wird die horizontale Navigation "Shiny Buttons" integriert. Diese Navigation stellt alle Ebenen dar, die sich auf "Ebenen-Level 1" befinden (index/home = Ebenen-Level 0). In der horizontalen Navigation würde also noch zusätzlich der Menüpunkt "Top Menü" erscheinen, was wir durch verstecken des Frontend Menüstatus unterbinden.

Anlegen der eigentlichen Navigationsebenen

Nun werden die eigentlichen Ebenen für "Kontakt", "Impressum", "Haftungsausschluss", "Sitemap" und "Links" erstellt. Diese Ebenen befinden sich alle in der neu erstellten Ebene "Top Menü". Für die Menü-Ebenen muss kein spezieller Frontend Status gesetzt werden.

Integration der Header-Navigation

HeaderNavi_Seitenstruktur.png

Bevor die Navigation im Template eingebaut werden kann, muss zuerst die ID-Nummer der Ebene "Top Menü" ermittelt werden.

Dazu fährt man mit dem Maus-Cursor über das Seitensymbol links vom Namen "Top Menü" (siehe Bildschirm-Foto)

In diesem Beispiel besitzt "Top Menü" die ID-Nummer 30

In der Vorlage im Bereich Haupt: sucht man jetzt die Stelle mit diesem Kommentar:
<!-- end: skip link navigation -->

Gefolgt wird dieser Kommentar von der statischen YAML-Navigation:
<a href="#">Login</a> | <a href="#">Contact</a> | <a href="#">Imprint</a>

Diese Zeile Zeile ersetzt man durch:
{NAV_ROW:X:Y} wobei X und Y durch folgende Zahlen ersetzt werden muss:

X = Vorher ermittelte ID von "Top Menü"
Y = 0 oder 1

0 = "Top Menü" wird nicht in der Navigation angezeigt
1 = "Top Menü" wird in der Navigation angezeigt

Es macht keinen Sinn, "Top Menü" in der Navigation anzuzeigen, da diese Ebene lediglich als Container für die eigentlichen Ebenen dient. Der RT für dieses Menü sollte deshalb etwa so aussehen:


{NAV_ROW:30:0}


Aussehen der Header-Navigation beeinflussen

Schrifteinstellungen und Navigations-Position:


CSS-Datei: basemod.css
CSS-Klasse: #topnav


Link-Farbe und Rollover-Effekt:


CSS-Datei: content.css
CSS-Klassen:
Link-Farbe = #topnav a
Link-Rollover = #topnav a:focus, #topnav a:hover, #topnav a:active


Tip: Möchte man die Textatribute (z.B. Farbe) des Trennungsstriches (|) in der content.css statt in der basemod.css verändern, legt man in der content.css einfach eine Klasse mit der Bezeichnung #topnav an. Dieser Klasse teilt man Textatribute wie Farbe, Auszeichnung und Grösse zu. Denn: Die content.css wird nach basemod.cssins Template geladen und übersteuert alle Klassen der basemod.css

Integration des Links zu "Home"

Die horizontale Header-Navigation wäre nun fertig, doch bei näherem Betrachten stellt man fest, dass ein Link zur "Homepage" fehlt. Man ergänzt nun im Template die horizontale Header-Navigation durch einen dynamischen Link zur Website Homepage.

"Home-Link" an erster Stelle der Navigation:
<a href="{SITE}">Home</a> | {NAV_ROW:30:0}

"Home-Link" an letzter Stelle der Navigation:
{NAV_ROW:30:0} | <a href="{SITE}">Home</a>

So lassen sich natürlich noch weitere Links in die Navigation einbauen. Einfach {SITE} durch einen Link ersetzen.