Beispiel: Hauptmenü
In diesem Beispiel wird Schritt für Schritt demonstriert, wie Sie ein einfaches Hauptmenü mit der imperia Navigationsgenerierung erstellen.
Beispielstruktur im Rubrikenbaum#
Dieses Beispiel basiert auf der folgenden Struktur im Rubrikenbaum. Die Rubrik "Unternehmen" ist hier der strukturelle Wurzelknoten für diese Website. Der Rubrikenbaum hat also insgesamt 3 Ebenen, die Website jedoch nur 2, weil die erste Ebene nur für die Strukturierung benötigt wird.
-Unternehmen
-Startseite
-Über Uns
-Team
-Entwicklung
-Service
-Vertrieb
-Kunden
-Öffentlicher Sektor
-Banken
-Universitäten
-Kontakt
Menü-Template#
Legen Sie in der Konfigurationsdatei (Standardmäßig site/config/navigation_generator.conf
) im Hauptbereich <root>
den folgenden neuen Bereich <mainmenu>
an.
<mainmenu>
filename = /ssi/navigation/<!--nav_element-->.html
file_startlevel = "0"
file_maxlevel = "0"
content_startlevel = "1"
content_maxlevel = "2"
fulltree = 1
li_snippet <<EOF
<li>
<a href="<!--XX-link-->"><!--XX-name--></a>
<!--XX-ul_content-->
</li>
EOF
ul_snippet <<EOF
<ul>
<!--XX-li_content-->
</ul>
EOF
</mainmenu>
Erläuterung des Menü-Templates#
Dateiname#
In diesem Beispiel wird nur eine einzelne Menüdatei generiert. Deswegen reicht es auch, dass hier nur eine einzelne Datei für die Speicherung dieses Menüs angegeben wird.
filename = /ssi/navigation/<!--nav_element-->.html
Die Menüdatei wird bei der Ausführung der Navigationsgenerierung im Dokumenten-Root von imperia unter dem Pfad /ssi/navigation/mainmenu.html generiert.
Der Code <!--nav_element-->
wird als mainmenu
expandiert, also dem Namen dieses Menü-Templates.
Traversierungsoptionen#
Mit den Optionen file_startlevel
und file_maxlevel
wird angeben, für welche Ebene des angegeben Rubrikenbaum Menüdateien erstellt werden sollen. In einigen Fällen – wie z.B. für die Breadcrumbnavigation – müssen Sie für jede einzelne Ebene eine eigene Datei erstellen, da das Menü auf jeder Ebene etwas anders ist. In diesem Fall wollen wir jedoch ein einfaches Hauptmenü erstellen, dass auf jeder Ebene gleich ist.
Deswegen wird die Menüdatei in diesem Fall nur für den Wurzelknoten "Unternehmen" erstellt, also die Ebene 0. Und daher muss auch bei beiden Optionen der Wert 0 eingetragen werden.
Mit den Optionen content_startlevel
, content_maxlevel
und fulltree
wird gesteuert, welche Rubriken bei der Generierung der Menüdatei in den Blick genommen werden sollen.
In diesem Fall sollen alle Rubriken unterhalb der Rubrik "Unternehmen" im Menü aufgenommen werden. Daher wird die 0te Ebene übersprungen und content_startlevel
auf 1 gesetzt. Die Variable content_maxlevel
ist hier auf 2 gesetzt, weil auch die zweite Ebene – aber nicht mehr – in das Menü aufgenommen werden soll. Die Variable fulltree
ist auf 1 gesetzt, damit über jede Rubrik unter dem angegebenen Wurzelknoten traversiert wird.
Menü-Templating#
Die beiden Variablen li_snippet
und ul_snippet
sind feststehende Variablen, mit denen Sie das Menü-Template erstellen. Das Funktionsprinzip dieses Templates ist die Rekursion. Das bedeutet, dass sie beiden Templates sich li_snippet
und ul_snippet
so lange gegenseitig aufrufen, bis alle – über die Traversierungsoptionen – konfigurierten Rubriken abgearbeitet sind.
ul_snippet <<EOF
<ul>
<!--XX-li_content-->
</ul>
EOF
Das ul_snippet
setzt in diesem Beispiel nur das HTML-Element unordered list <ul>
und ruft darin wiederum das li_snippet
auf.
li_snippet <<EOF
<li>
<a href="<!--XX-link-->"><!--XX-name--></a>
<!--XX-ul_content-->
</li>
EOF
Das li_snippet
setzt das HTML-Element list item <li>
und darin einen Link, der mit dem Namen der jeweiligen Rubrik gelabelt ist. Außerdem wird in dem li_snippet
wiederum das ul_snippet
aufgerufen.
Menü-Datei generieren#
Um die Menü-Datei zu genieren, gibt es verschiedene Möglichkeiten, die im Kapitel Menü generieren beschrieben werden.
Als imperia-Webentwickler können Sie dazu das Skript site_navigation_generator.pl
verwenden. Das Skript erwartet als Parameter die Node-ID der Wurzelrubrik, also in diesem Fall die Node-ID der Rubrik "Unternehmen", z.B. /10/26.
Sie rufen das Skript, das Sie im imperia-Verzeichnis unter site/bin
finden, folgendermaßen auf:
perl site/bin/site_navigation_generator.pl -i /10/26
Anschließend sollte sich die generierte Menüdatei angegebenen Verzeichnis im Dokumenten-Root von imperia befinden. Also beispielsweise im Pfad /htdocs/ssi/navigation/mainmenu.html.
Generierte Menü-Datei#
Wenn Sie die Menüdatei nach der oben angegebenen Navigationskonfiguration generiert haben, dann wird die Datei folgenden Inhalt haben:
<ul>
<li>
<a href="/unternehmen/startseite/index.html">Startseite</a>
</li>
<li>
<a href="/unternehmen/ueberuns/index.html">Über Uns</a>
</li>
<li>
<a href="/unternehmen/team/index.html">Team</a>
<ul>
<li>
<a href="/unternehmen/team/entwicklung/index.html">Entwicklung</a>
</li>
<li>
<a href="/unternehmen/team/service/index.html">Service</a>
</li>
<li>
<a href="/unternehmen/team/vertrieb/index.html">Vertrieb</a>
</li>
</ul>
</li>
<li>
<a href="/unternehmen/kunden/index.html">Kunden</a>
<ul>
<li>
<a href="/unternehmen/kunden/oeffentlicher-sektor/index.html">Öffentlicher Sektor</a>
</li>
<li>
<a href="/unternehmen/kunden/banken/index.html">Banken</a>
</li>
<li>
<a href="/unternehmen/kunden/universitaeten/index.html">Universitäten</a>
</li>
</ul>
</li>
<li>
<a href="/unternehmen/kontakt/index.html">Kontakt</a>
</li>
</ul>