In BlackCat CMS Version 2.0 können alle Menüs über das Admin Tool "BlackCat Menu Manager" verwaltet werden. Hierzu werden bereits einige Menütypen und darauf basierende Standard-Menüs mitgeliefert, die sofort genutzt werden können. Darüber hinaus können beliebige eigene Menüs erstellt und konfiguriert werden.
Einige Standardtypen werden vordefiniert mitgeliefert und z.B. auch im Backend verwendet. (Beispielsweise für den Seitenbaum.)
Folgende Menütypen sind bisher vordefiniert:
- Kompletter Baum (Fullmenu)
- Seiten auf gleicher Ebene (Siblings)
- "Pfad bis hier" (Breadcrumb)
- Sprachen (Language)
Die Darstellung eines Menüs wird üblicherweise über CSS-Klassen definiert. Bei Verwendung eines vorgefertigten Seitentemplates kann es mühselig sein, das dort enthaltene Menü zu analysieren und herauszufinden, an welcher Stelle welche CSS-Klasse verwendet werden soll. Hierfür bringt der Menu Manager eine Analysefunktion mit.
Hier wird nun einfach das vollständige Menü aus der Vorlage - genauer gesagt der HTML-Quellcode - hineinkopiert und ggfs. das öffnende Tag. Der Menu Manager analysiert daraufhin das Markup und filtert die CSS-Klassen heraus. Erfolgreich getestet wurde das bisher mit Bootstrap-Templates.
Was bedeuten nun die Einstellungen?
1:nav nav-pills ddmenu
2:dropdown-menu
>=3:dropdown-menu sub-menu
Menüs sind heutzutage häufig verschachtelte Listen (<ul> oder <ol>); Bootstrap unterstützt out-of-the-box aber nur Menüs mit maximal zwei Ebenen. Es gibt diverse Snippets, um das zu lösen, und in diesem konkreten Fall ist es folgendermaßen:
- Der ganz äußere <ul> hat die Klassen "nav nav-pills ddmenu", wobei die ersten beiden Bootstrap-Klassen sind und die dritte zur Lösung für mehr als 2 Menüebenen gehört.
- <ul> auf der ersten untergeordneten Ebene haben die Klasse "dropdown-menu".
- Jede weitere Ebene darunter hat die Klassen "dropdown-menu sub-menu".
Damit man nun nicht für X Ebenen immer und immer wieder die Klassen angeben muss, kann man mit Hilfe der Angaben >, <, >= und <= die Ebene angeben, für die oder ab der die dahinterstehenden CSS-Klassen gelten. In obigem Beispiel erhalten also alle Ebenen ab der 3. die Klassen "dropdown-menu sub-menu".
Das gleiche gilt analog auch für die <li> und <a> im Menü.
Bei nicht geschützten Menüs - also solchen, die man selbst erstellt hat - lassen sich diese Einstellungen per Formular anpassen.
Hat man alles passend konfiguriert, kopiert man einfach das angezeigte Markup - also z.B. {menu(7)} - in das Template.