Menüpunkte dynamisch generieren
am 18.03.2010 - 04:12 Uhr in
Hallo alle zusammen,
erstmal Entschuldigung, wenn das Thema schon mehrmals gefragt worden ist. Aber die Suche sagt bei mir immer, dass die Sucheingabe nicht funktioniert :(
Also zu meinen Problem: Kann mir jemand einen Ansatz geben, wie ich dynamisch Navigationseinträge generiere. Also mein Beispiel: Ich will ein Modul schreiben, dass den Navigationseintrag, sagen wir, "Modul XY" hat. Dieses Modul liest aus der Datenbank (oder sonst wo) aus, dass es 3 Unterseiten haben soll (sagen wir "a", "b", "c"). Also nur das Modul "Modul XY" ist in der Navigation eingetragen. Jetzt will ich, dass die Navigation in etwa so aussieht
- irgendwas
- Modul
- a
- b
- c
- irgendwas anderes
Löse ich das Problem mit $items['modulxy/%arg']? Ich stehe ein bisschen auf den Schlauch, und das größte Problem, ich bin noch ziemlich jungfräulich mit der Entwicklung von Drupalmodulen.
Danke schon mal für die Hilfe,
Wolfgang
- Anmelden oder Registrieren um Kommentare zu schreiben
Sorry, aber wozu soll das gut sein?
am 18.03.2010 - 08:35 Uhr
Denn...
Und zu guter letzt, verstehe ich wirklich nicht wasDu bewirken willst. Ich glaube sogar, dass Drupal Oou-of-the-Box schon bietet was Du dir da zusammenbauen willst.
Etwas konkretere Angaben wären da wohl angebracht. Hilfe wird hier immer gern geboten, aber eine Kristallkugel hat niemand von uns neben dem Server stehen, nochmal sorry für meinen Sarkasmus.
hook_menu
am 18.03.2010 - 09:56 Uhr
Hallo.
Wenn Dein Modul eine Hauptseite und drei untergeordnete Seiten haben soll, legst Du dies in der Implementierung von
hook_menu
fest.Beispiel:
function mymodule_menu() {
$items = array();
$items['mymodule'] = array(
'title' => 'MyModul main',
'description' => 'Main page of my module.',
'page callback' => 'mymodule_page',
'access arguments' => array('access content'),
);
$items['mymodule/sub1'] = array(
'title' => 'MyModul sub1',
'description' => '!st subpage of my module.',
'page callback' => 'mymodule_page_sub1',
'access arguments' => array('access content'),
);
$items['mymodule/sub2'] = array(
'title' => 'MyModul sub2',
'description' => '2nd subpage of my module.',
'page callback' => 'mymodule_page_sub2',
'access arguments' => array('access content'),
);
return $items;
}
Einen dynamischen Teil (wie zum Beispiel bei
node/1/edit
) kannst Du über "%" erreichen.Siehe dazu auch Anatomie von hook_menu.
hth,
Stefan
Hallo zusammen und danke
am 18.03.2010 - 16:17 Uhr
Hallo zusammen und danke schon mal für die Antwort.
Ich habe mich leider etwas sehr doof ausgedrückt. In der Funktion mymodule_menu() habe hätte ich gerne sowas wie
$items['mymodule/%subs'] = array(
// ...
);
Jetzt habe ich die Funktion subs_load mit der ich dann Inhalte für die Unterseiten ausgeben kann. Okay.
Aber wie bekomme ich die Linkliste erst einmal generiert? Das ist meine eigentliche Frage :) Oder meint Rabbit69, dass das garnicht möglich ist (was natürlich traurig wäre ^^)?
Schönen Tag und beste Grüße,
Wolfgang :-)