Skip to Content

Freie Untermenüs mit Drupal

Glaubt man den Usability-Forschern, so ist die von mir so geschätzte Navigation mit einem Themenbaum nicht das Nonplusultra. Kritisiert wird vor allem, dass man damit zu wenig visuelle Änderungen auf den Bildschirm bringe. Besser, so ... die Navigation aufzuteilen. Das Hauptmenü wählt einen Bereich vor, in einem Untermenü an anderer Stelle auf dem Bildschirm erscheinen dann die die Punkte des Untermenüs.

Fällt jemandem was auf? Genau! Genau diesem Konzept folgt Windows XP, wenn im Explorer bei Auswahl eines Verzeichnisses am Rand eine kontextabhängige Liste möglicher Aktionen erscheint. Doch auch wenn ich persönlich meine Zweifel an der intuitiven Logik dieses Systems habe, ist ein entkoppeltes Untermenü doch ein oft benötigtes Feature von Webautritten.

Grund genug sich einmal anzuschauen, wie sowas in Drupal realisiert werden kann.

Zutaten

Für dieses Rezept brauchen Sie

  • Drupal Version 5 oder 6 (mit 4 habe ich es nicht getestet)
  • Grundkenntnisse im Umgang mit Drupal

Konzept

Die Technik für dieses Rezept ist recht einfach. Im Menüsystem von Drupal kann man beliebig viele zusätzliche Menüs erstellen. Diese können bei Bedarf als zusätzliche Blöcke auf dem Bildschirm sichbar gemacht werden. Damit nun immer nur das aktuell benötigte Untermenü sichtbar ist, knüpft man die Sichtbarkeit an eine Bedingung, die nur erfüllt ist, wenn im Hauptmenü der gewünschte Bereich geöffnet ist. Am einfachsten ist das, wenn das Hauptmenü einen bestimmten URL-Pfad öffnet und das Submenü diesen als Bedingung für seine Sichtbarkeit verwendet.

Vorbereitungen

  • Aktivieren Sie die Option suchmaschinenfreundliche URLs. Weiter Informationen hierzu finden Sie unter drupal.org/node/15365
  • Aktivieren Sie das Modul Path im Abschnitt Core-optional
    Dieses Modul wird mitgeliefert und braucht nur aktiviert, nicht installiert zu werden.

Schritt für Schritt

  • Erstellen Sie das gewünschte Untermenü als neues eigenständiges Menü
    Bereich Administer-Site Building-Menus
    Befehl Add Menu

  • Füllen Sie das neuen Menü mit allen gewünschten Menüpunkten und geben Sie ihm einen eindeutigen Namen.
  • Öffnen Sie den Bereich Administer-Site Building-Blocks
    Hier sollten Sie nun einen neuen Block mit dem Namen ihres Menüs finden.
  • Platzieren Sie den Menü-Block beliebig auf der Seite:
    Bereich Administer-Site Building-Blocks öffnen, beliebige Region einstellen.
  • Wählen Sie dann den Block aus, klicken Sie auf configure und wählen Sie im Bereich Show block on specific pages die Option Show on only the listed pages aus.

Nun müssen wir nur noch formulieren, für welche Seitenbereiche unser Block zu sehen sein soll. Wie der Hilfetext darunter erläutert, können wir Drupal hier einen URL oder URL-Bereich nennen, für den unsere Untermenü sichtbar sein soll.

  • In meinem Beispiel gebe ich einen URL vortraege/alle* hier ein.

Drupal wird den Menü-Block fortan immer dann zur Anzeige bringen, wenn eine Seite, die mit dem URL vortraege/alle beginnt in Drupal geöffnet ist. Somit wird, und das ist wichtig, das Menü auch dann sichtbar bleiben, wenn wir eine Unterseite aus dem Menü ausgewählt haben. Vorausgesetzt natürlich Sie geben auch diesen Unterseiten einen URL der mit vortraege/alle beginnt.

Nun müssen noch einen Hauptmenüpunkt anlegen, der diesen URL verwendet und Sorge tragen, dass auch alle Seiten unseres Untermenüs diesen URL im Namen tragen. Im Beispiel mache es mir einfach und lege dafür eine neue Seite an.

Titel und Text der Seite gestalte ich als Intro-Seite für diesen Bereich, über die Menu settings gliedere ich die Seite als Menüpunkt in das gewünschte Hauptmenü (z.B. Navigation) ein. Nun muss ich nur noch dafür Sorge tragen, dass diese Seite auch mit dem gewünschten URL angezeigt wird:

  • Tragen Sie im Abschnitt URL Path settings den gewünschten URL ein. Da es sich bei dieser Seite um den Kopf des Untermenübereichs vortraege/alle/* handelt, bekommt die Seite auch genau diesen URL.

Bitte beachten: Zu den sehr gewöhnungsbedürftigen Stärken von Drupal gehört es, dass der URL einer Seite nicht notwendigerweise ihrer Position in der Menühierarchie entsprechen muss.

  • Speichern Sie die neue Seite und klicken Sie auf den neuen Menüeintrag um die Seite zu öffnen. Das Untermenü sollte dann im gewünschten Bereich erscheinen.
  • Öffnen Sie eine beliebige andere Hauptseite und das Untermenü verschwindet wieder. Alternativ könnte nun ein anderes - mit der gleichen Technik erstelltes - Untermenü sichtbar werden.