Das Örtchen RSS-Feed

Suchen

Blog

Ähnliche Einträge

Neueste Kommentare

Populäre Einträge

Zufällige Einträge

Tagwolke

Monatsarchiv

Drupal: Sinnvolle Breadcrumbs im Frontend

Wer sich einige Tage mit Drupal beschäftigt hat, der wird über kurz oder lang über das sinnfreie Verhalten bei der Breadcrumb-Generierung im Frontend gestolpert sein.

  1. Als erstes Problem stellt sich die Frage, wieso im Frontend die Breadcrumbs immer nur einen Link auf die Startseite enthalten.
  2. Als zweites Problem ergibt sich die Breadcrumb-Darstellung auf Detailseiten einer Übersichtsseite.

Für beide Probleme fand ich zufällig die richtigen Hinweise bei drupal-workshop.de. Dort wird erklärt, daß in Drupal 6 die Breadcrumbs auf Basis des Menüeintrags im Hauptmenü ("Navigation") generiert werden. Ich nutze jedoch grundsätzlich die Hauptlinks und Sekundärlinks und blende die normale Navigation maximal im eingeloggten Zustand ein.

Lösung 1

Das Modul Menu Breadcrumb löst das Problem des falschen Menüs bei Drupal 6 und bietet sogar noch ein paar Extras (beispielsweise Seitentitel hinzufügen), die ich jedoch nicht wirklich benötige. Es werden nun also die Breadcrumbs für alle Nodes korrekt erzeugt, sofern sie einem Menü angehören.

Lösung 2

Dummerweise gehören meine Blogeinträge aber zu gar keinem Menü und somit ist weder der Menüpunkt Blog auf einer der Detailseiten aktiv, noch stimmen dort die Breadcrumbs. Genau hier kommt dann das Modul Node breadcrumb zum Einsatz. Mittels dieses Moduls ist es möglich, Regeln für eine anderweitige Breadcrumb-Erzeugung beispielsweise in Abhängigkeit vom verwendeten Nodetypen (in meinem Fall story) festzulegen. Hierzu muss ein Menüpunkt ausgewählt werden, der das Elternelement im Menü sein soll (im Normalfall die Übersichtsseite bzw. der View) und schon werden die normalen Breadcrumbs immer dann ersetzt, wenn die Regeln zu treffen und zudem wird auch im Menü die aktive Route gesetzt (d.h. die Menüpunkte sind aktiv).

Nachtrag

Derzeit hat Menu Breadcrumb leider einen Bug in Zusammenhang mit dem Modul Administration Menu. Sind beide Module gleichzeitig aktiv, so kommt es zu komischen Effekten auf allen user-spezifischen Seiten (beispielsweise Login). Der entsprechende Patch ist derzeit scheinbar noch nicht in die Download-Fassung integriert, kann aber einfach selbst eingebaut werden.

Öffnet im Modul-Ordner die Datei menu_breadcrumb.module und sucht in ihr die nachfolgende Codezeile:

menu_set_active_menu_name($use_menu);

Diese Zeile darf unter bestimmmten Umständen nicht ausgeführt werden, deswegen umschließen wir sie mit nachfolgender Bedingung:

if ($use_menu != "admin_menu") {
menu_set_active_menu_name($use_menu);
}

Nach diesem kleinen Patch funktioniert auch die Kombination der beiden Module problemlos.

Hallo! Bist du neu hier ? Dann abonniere am besten den RSS-Feed dieses nicht ganz so stillen Örtchens, um über meine geistigen Ergüsse auf dem Laufenden zu bleiben.

Kommentar hinzufügen

Der Inhalt dieses Feldes wird nicht öffentlich zugänglich angezeigt.
Der Inhalt dieses Feldes wird öffentlich zugänglich angezeigt, aber als nofollow markiert.
  • Zulässige HTML-Tags: <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Zeilen und Absätze werden automatisch erzeugt.
Hinweis

Gib deine Meinung ab! Ich freue mich über jeden Kommentar. Du kannst hier offen Deine Meinung zum Artikel sagen, aber bitte beachte die Netiquette und vermeide es andere zu beleidigen.

Bitte unterlasst es außerdem die Kommentare zu SEO-Zwecken zu missbrauchen. Kommentare mit Links, die nicht zu Blogs führen und/oder Keywords als Namen verwenden sind nicht erwünscht!

Die ersten vier Kommentare (mit den gleichen Daten bei Name, E-Mail und Blog) landen vor der Veröffentlichung in meiner Freigabe-Warteschlange und ich behalte mir das Recht vor, Kommentare entsprechend zu löschen oder editieren!

CAPTCHA
Diese Frage hat den Zweck zu testen, ob man ein menschlicher Benutzer ist und um automatisierten Spam vorzubeugen.
1 + 2 =
Das einfache mathematische Problem ist zu lösen und das Ergebnis einzugeben. Z.B. muss für 1+3 der Wert 4 eingegebene werden.