Makro: MainMenu

Das Makro MainMenu erzeugt das Haupt-Menu am Seitenrand, öffnet es an der Stelle der aktuellen Seite und markiert diesen Eintrag.

Die Struktur des Menus wird aus einer Verzeichnis-Definition ausgelsen, die in irgendeiner Seite (unsichtbar) abgelegt sein kann. Dies kann die Startseite eines Themas oder ein Inhaltsverzeichnis sein. In welcher Seite die Verzeichnis-Definition abgelegt ist, muss mit dem Argument DirPage angegeben werden. Dadurch können in ein und demselben Wiki beliebig viele Verzeichnisse definiert werden, zum Beispiel je eines für ein Thema.

Syntax

{{MainMenu|DirPage|Root|Select}}
DirPage
Name der Seite, in welcher das Inhaltsverzeichnis definiert ist. Wenn das Verzeichnis auf der aktuellen Seite definiert ist, kann für DirPage ein * gesetzt werden.
Root: Optional, Default = ""
Bestimmt, welcher Ausschnitt aus der Verzeichnis-Definition als Menu dargestellt werden soll. Es muss also nicht immer das ganze Menu angezeigt werden (siehe Hinweise zu Root). Wenn für Root nichts oder ein Minus Zeichen angegeben wird, so wird das ganze Verzeichnis ausgegeben. Wenn Root = * ist, so wird der Stern durch MenuDef ersetzt. Dies ist praktisch, wenn Verzeichnisse auf verschiedene Seiten aufgeteilt sind und nur das Verzeichnis der Seite MenuDef angezeigt werden soll.
Select: Optional, Default = ""
Wenn die aktuelle Seite nicht in der Verzeichnis-Definition aufgeführt ist, kann mit diesem Argument angegeben werden, welcher Eintrag im Menu statt dessen geöffnet und markiert werden soll. Wenn für Select nichts oder ein Minus Zeichen angegeben wird, so wird die aktuelle Seite im Menu geöffnet und markiert.

Hinweis: Dieses Makro ist eine Kombination von DirPage und MainDir.

Hinweise zu Root

Eine Verzeichnis-Definition kann beliebig gross und verschachtelt sein. Meist ist aber der Platz für ein Menu am Seitenrand recht beschränkt und es ist nicht praktisch, immer das vollständige Verzeichnis dort anzuzeigen. Daher gibt es zwei Möglichkeiten, einen Verzeichnis-Ausschnitt für die Menu-Darstellung zu wählen:

  • Angabe einer Wurzel-Seite
  • Angabe einer maximalen Verschachtelungstiefe

Wenn als Argument Root ein Eintrag der Verzeichnis-Definition angegeben wird, so wird dieser als oberster Menüeintrag verwendet und es werden nur dessen Untereinträge im Menu aufgelistet.

Wenn als Argument Root #n angegeben wird, wobei n eine ganze Zahl ist, wird die Wurzel automatisch so ausgewählt, dass die Verschachtelungstiefe des Menus n nicht überschreitet.

Verzeichnis-Definition

Ein Menu wird einfach durch eine verschachtelte Liste von Wiki-Links definiert, welche zwischen den Makros {{data}} und {{end data}} auf einer beliebigen Seite stehen muss:

{{data|dir}}
{{DirParent|Seite mit übergeordnetem Verzeichnis}}
* [[Erster Eintrag]]
** [[Unter-Eintrag]]
* [[Zweiter Eintrag]]
{{end data|dir}}

Die Zeile {{DirParent|...}} ist optional. Wenn das aktuelle Verzeichnis ein Teil eines grösseren Verzeichnisses ist, welches in einer anderen Seite definiert ist, so kann diese andere Seite über dieses Makro eingebunden werden. Das resultierende Verzeichnis ist dann eine Kombination der Verzeichnisse.

Anwendungs-Tipp

Wenn die Menu-Definition in der Seite Inhaltsverzeichnis gespeichert ist, kann mit folgendem Eintrag in Spezial:CommonDefs erreicht werden, dass für alle aufgeführten Seiten automatisch das Menu an der richitgen Stelle geöffnet eingeblendet wird:

{{*MM|{{MainMenu|Inhaltsverzeichnis|#3|$1}}*}}
{{MM}}

Mit #3 wird erreicht, dass maximal 3 Levels eingerückt wird im Menu. Hat das Menu mehr Levels, so wird nur der aktuelle Ausschnitt des ganzen Menus dargestellt. Soll ein bestimmter Eintrag im Menu selektiert werden, weil zum Beispiel die aktuelle Seite nicht im Verzeichnis steht, so kann dies mit folgendem Aufruf auf der aktuellen Seite gemacht werden:

{{MM|Zu selektierender Eintrag}}

Weitere Makros zur Ausgabe von Verzeichnissen

Die folgenden Makros können für die Ausgabe von Verzeichnissen verwendet werden:

Dir Verzeichnis oder Teil davon mit allen Subelementen auflisten.
DirCol2 Wie Dir aber Liste in zwei Spalten darstellen.
DirFrom Verwende diese Variante statt Dir, wenn du explizit die Seite mit dem Inhaltsverzeichnis angeben willst oder must.
SubDir Verzeichnis oder Teil davon auflisten, wobei nur ein ausgewählter Ast mit seinen Subelementen aufgelistet wird. Ein ausgewähltes Subelement kann markiert werden.
SubDirFrom Verwende diese Variante statt SubDir, wenn du die Seite mit dem Inhaltsverzeichnis angeben willst oder must.
MainDir Wie SubDir, listet jedoch das Verzeichnis am Seitenrand auf.
MainMenu Wie SubDirFrom, listet jedoch das Verzeichnis am Seitenrand auf.