nach oben

Das Hauptmenü – Table of Contents (TOC)

Der Begriff TOC wird in der CMSimple_XH-Community üblicherweise für das Haupt-Navigationsmenü einer Website verwendet. Wenn du ein vorgefertigtes Template verwendest, sollte ein solches Menü bereits funktionsfähig enthalten sein. Möchtest du die Navigation eines bestehenden Templates ändern oder eine eigene erstellen, dann lies weiter.

Grundlegende Varianten

Einfaches toc()

Die einfachste Art, das Hauptmenü zu erstellen, ist der Aufruf von toc() im Template:

<?php echo toc();?>

Dies zeigt an der entsprechenden Stelle ein geschlossenes Menü, in dem nur der aktuell ausgewählte Zweig aufgeklappt ist.

Eingeschränktes toc()

Du kannst dem Aufruf von toc() zwei zusätzliche Parameter hinzufügen: die Anfangs- und die Endebene für das Menü. Auf diese Weise kannst du die Menüebenen einschränken, die im Menü angezeigt werden sollen. Ein häufiger Anwendungsfall ist die Anzeige ausschließlich von Links der ersten Ebene in einem horizontalen Menü:

<?php echo toc(1, 1);?>

Zusätzlich dazu, könntest du an einer anderen Stelle im Template ein (vertikales) Untermenü für die Unterseiten der aktuellen Seite anzeigen:

<?php echo toc(2, 3);?>

Hier gibt es viel Raum für deine Kreativität.

Erweitertes toc()

Der Code, der das Hauptmenü erstellt, ist in zwei Teile aufgeteilt: Die Funktion li() gibt das eigentliche HTML aus und die Funktion toc() erstellt die Liste der anzuzeigenden Seiten und ruft li() mit dieser Liste auf. Es ist möglich, eine eigene Funktion zu schreiben, die anstelle von li() verwendet wird. Du musst sie nur als dritten Parameter zu toc() hinzufügen (im Beispiel my_li):

<?php echo toc(null, null, 'my_li');?>

Du kannst dich beim Schreiben deiner eigenen li() ziemlich austoben, aber ein häufiger Anwendungsfall ist es, nur eine kleine Änderung an der bestehenden li() vorzunehmen. Um zukünftige Aktualisierungen/Upgrades zu erleichtern, erstelle eine Kopie von li(), speichere sie in der userfuncs.php, benenne sie um und ändere sie. Dann ändere dein Template so, dass es sein eigenes li() aufruft. Auf diese Weise wird es durch zukünftige Updates nicht überschrieben.

li()

Die Verwendung von toc() gibt nur das HTML der Seiten aus, die in der teilweise aufgeklappten Baumansicht des TOC zu sehen sind. Dies ist nicht geeignet für Dropdown-Menüs, bei denen alle Seiten in das HTML geschrieben werden müssen. Um dem Rechnung zu tragen, kannst du folgenden Code verwenden:

<?php echo li($hc, 'menulevel');?>

Natürlich kannst du dies auch für statische Menüs (im Gegensatz zu Dropdown-Menüs) verwenden.

Das Aussehen des Hauptmenüs

toc() bzw. li() geben das Hauptmenü als ungeordnete Listen <ul> aus, wobei jeder Menüeintrag ein Listeneintrag <li> ist. Die Beschriftungen werden als Link <a> gerendert, mit Ausnahme der aktuell ausgewählten Seite, deren Beschriftung als <span> gerendert wird. Diese Struktur ist für Menüs ziemlich üblich und kann leicht mit CSS angepasst werden (es gibt viele Tutorials, die helfen, auch wenn sie nicht besonders mit CMSimple_XH zu tun haben).

Neben dieser Struktur setzt CMSimple_XH für jeden Menüpunkt <li> eine Klasse: .doc, .docs, .sdoc oder .sdocs.

.doc bzw. .sdoc werden für Seiten ohne Unterseiten gesetzt; andere Menüpunkte erhalten .docs oder .sdocs. Du kannst diese Klassen verwenden, um den Besuchern anzuzeigen, wo sie nach Unterseiten suchen sollen.

.sdoc bzw. .sdocs kennzeichnen die aktuell gewählte Seite und ihre Überseiten (siehe Konfiguration); andere Menüpunkte erhalten die Klasse .doc oder .docs. Dies ist nützlich, um die betrachtete(n) Seite(n) im TOC hervorzuheben.

Konfiguration

Unter Adminmenü → EinstellungenKonfiguration finden sich mehrere Optionen, die sich auf das Hauptmenü (TOC) beziehen.

Menü : Ebenenhervorhebung kann auf parent gesetzt oder leer gelassen werden. Im letzteren Fall wird nur die Seite, die gerade angezeigt wird, im Menü markiert (erhält die Klasse .sdoc bzw. .sdocs); im ersteren Fall wird der gesamte Pfad der Seiten bis zur ausgewählten Seite auf diese Weise markiert, was besonders bei Dropdown-Menüs sinnvoll ist.

versteckte Seiten anzeigen : im Menü kann aktiviert (angehakt) werden. Nur in diesem Fall werden versteckte Seiten im Menü angezeigt, wenn sie aufgerufen wurden.

CSS

CSS = Cascading Style Sheets / Kaskadierende Stilvorlagen

Eine Formatierungssprache für HTML-Webseiten. Ziel dabei ist die Trennung von Inhalt und Aussehen.

Templates

Templates sind Gestaltungsvorlagen für Websites, die wie Schablonen wirken. Sie bestimmen den Ort, an dem Elemente erscheinen und beeinflussen deren Aussehen.