Wie fügt man einen Menüpunkt für einen Knoten ein?
am 13.03.2008 - 13:45 Uhr in
Wahrscheinlich handelt es sich hier um eine ganz einfache Sache. Aber ich komme trotz stundenlanger Suche in den Foren nicht dahinter wie es geht bzw. was ich falsch mache.
Ich möchte in Drupal 5 in einem Modul ein dynamisches Menü aufbauen in dem ich u.a. auch Menüpunkte haben möchte, über die ich bestimmte Knoten aufrufen kann.
Füge ich diesen node nun ein mit:
$items[] = array(
'path' => 'node/15',
'title' => $title,
'type' => MENU_NORMAL_ITEM,
'access' => TRUE
);
Habe ich einerseits keine Kontrolle darüber wo der Menüpunkt eingefügt wird (denn das bestimmt sich ja über den ‚path’ und es gibt offensichtlich keine andere Möglichkeit den parent festzulegen) und andererseits bekomme ich diesen Menüpunkt nie zu sehen. Er wird in kein Menü eingefügt.
Lege ich dagegen einen neuen Pfad an und bestimme damit, wo der Menüpunkt eingefügt wird und über den callback was bei Aufruf des Menüpunkts passiert:
$items[] = array(
'path' => 'navigation/item',
'title' => $title,
'callback' => 'drupal_goto',
'callback arguments' => array('node/15'),
'type' => MENU_NORMAL_ITEM,
'access' => TRUE
);
wird zwar der Menüpunkt richtig angelegt und bei Anklicken dieses Menüpunkts auch der richtige Knoten aufgerufen. Aber das Menü klappt nicht bis zu der Stelle auf und der Menüpunkt wird nicht als der aktuelle Menüpunkt markiert. Das kann ja auch gar nicht sein, denn der aktuelle Knoten ist ja ‚node/15’, während der Menüpunkt 'navigation/item' heißt. Das kann Drupal logischerweise nicht zusammen bringen.
Also muss festgelegt werden, dass der aktuelle Menüpunkt 'navigation/item' ist. Das habe ich auch im hook_nodeapi gemacht:
case 'view':
menu_set_active_item('navigation/item');
break;
Ergebnis: Jetzt klappt das Menü auf, der Menüpunkt ist als aktueller markiert und der richtige Knoten wird geladen.
Nur leider ist jetzt eben der Menüpunkt des Knotens nicht mehr der aktuelle Menüpunkt und daher wird auch das Bearbeitungsmenü (Kartenreiter View, Edit) nicht mehr geladen.
Was muss ich an dieser Vorgehensweise ändern, dass alles auf einmal funktioniert? Oder gibt es noch eine andere Möglichkeit, einen Knoten in das Menü einzuhängen?
Bin für jede Hilfe dankbar!
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 3 Stunden 15 Minuten
vor 5 Stunden 44 Minuten
vor 6 Stunden 17 Minuten
vor 7 Stunden 5 Minuten
vor 7 Stunden 12 Minuten
vor 7 Stunden 22 Minuten
vor 21 Stunden 44 Minuten
vor 2 Tagen 5 Stunden
vor 3 Tagen 5 Stunden
vor 3 Tagen 12 Stunden