
Drupal: Menüpunkt auf Basis der Taxonomieauswahl generieren
Dieser Eintrag beschreibt die dynamische Erzeugung von Menüpunkten auf Basis eines Taxonomie Auswahlfeldes (select-Auswahl).
Dabei wird der neu erstellte Node auf Basis des ausgewählten Wertes in einer anderen Position der Menüstruktur automatisch eingeordnet.
Hiermit trennen wir logische Anforderungen (Bereichsauswahl) von der technischen Menüeinordnung (die für normale Benutzer häufig zu komplex ist!)
Beispiel Menüstruktur:
- Bereich A
-- Eintrag A-A
-- Eintrag A-B
-- Eintrag A-C
- Bereich X
-- Bereich B
--- Eintrag B-A
--- Eintrag B-B
--- Eintrag B-C
-- Bereich C
--- Eintrag C-A
--- Eintrag C-B
--- Eintrag C-C
Beispiel Auswahl:
- Bereich A
- Bereich B
- Bereich C
Ich habe dazu die folgende Lösung gewählt:
Ausgangsbedingungen:
- Drupal 6
- Rules-Modul (http://www.drupal.org/project/rules)
- Taxonomie-Modul mit Auswahlfeld
Vorgehensweise:
Neue Regel anlegen:
Entsprechenden Node-Typ als Auswahlregel verwenden bei Aktion: "Inhalt soll gespeichert werden".
Aktion "Menüpunkt taxonomiebasiert erzeugen" (oder ähnlich) als selbst definierte PHP Aktion anlegen.
Aktion mit folgendem Code bestücken:
- //Taxonomie-Einordnung holen
- $termId = $node->taxonomy[3];
- //Elternmenü-Eintrag zu Term ermitteln
- 14 => 72,
- 59 => 430,
- 22 => 372,
- );
- $node->menu['link_title'] = $node->title;
- $node->menu['plid'] = $term_to_menu_parent[$termId];
- $node->menu['hidden'] = 1;
- }
Wichtig ist an dieser Stelle noch:
- Anzugeben, ob der Eintrag unsichtbar sein soll, was über den "hidden"-Parameter erfolgt.
- Das "$term_to_menu"-Array anzupassen, welches angibt, bei welcher Term-ID (aus der Taxonomieauswahl) welcher Eltern-Menüeintrag verwendet wird, um das neue Kindelement zu erzeugen.
Es gilt zu beachten, dass durch die gewählte Aktion auch die Änderung von Nodes abgedeckt wird! In diesem Fall wird der alte Menüpunkt gelöscht und ein neuer erzeugt.
- Login to post comments
Julian Pustkuchen, M. Sc. Wirtschaftsinformatik ist passionierter Software- & Webentwickler mit den Schwerpunkten Softwaredesign, Objektorientierung sowie Usability- & Ablaufoptimierung bei webks. Ein weiterer Schwerpunkt ist die Entwicklung im CMS Drupal.
Entwickelt Julian gerade keine Software, fährt er Ski, Mountainbike, spielt Badminton, segelt oder verbringt Zeit mit Freunden.
Dieser Blog dient als sein "öffentlicher Notizblo(ck/g)".
Webbasierte Lösungen? Machen wir!
webks: websolutions kept simple
http://www.webks.de
Dir hat dieser Beitrag viel Zeit und Nerven gespart?
Dann freue ich mich über jede kleine Anerkennung:
Oder du suchst weitere professionelle Unterstützung?
Dann bietet dir unser webks.de Softwareentwickler-Team professionelle Dienstleistungen im Web-Development und der Drupal CMS Entwicklung!