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 Tagen 18 Stunden
vor 4 Tagen 14 Stunden
vor 4 Tagen 16 Stunden
vor 4 Tagen 19 Stunden
vor 5 Tagen 21 Stunden
vor 5 Tagen 21 Stunden
vor 6 Tagen 23 Stunden
vor 1 Woche 4 Stunden
vor 1 Woche 17 Stunden
vor 1 Woche 21 Stunden