Frage zum Erstellen eines komplexen Menüs
am 12.05.2009 - 21:47 Uhr in
Hallo zusammen,
ich bastel gerade an einer Pflanzen-Website und die Erstellung des Menüs bereitet mir ziemliches Kopfzerbrechen. Insbesondere der Menüpunkt "Laubgehölze" weil er sehr viele Unterpunkte über vier Ebenen verteilt enthalten wird, die bis hinunter zum zugehörigen Node verlinken. Ich würde das Menü gerne aus der Taxonomie heraus aufbauen und erstelle dazu für jeden Hauptmenüpunkt ein eigenes Vokabular. Für die Kategorie Laubgehölze (einer von vorerst fünf verschiedenen Hauptmenüpunkten) sieht das folgendermaßen aus:
Laubgehölze
-Anfangsbuchstaben von A bis Z
--je Anfangsbuchstabe die zugehörige Gattung
---Je Gattung die zugehörige Art
Mein Problem ist: Wie baue ich daraus eine vernünftige Navigation und welche Module brauche ich dafür? Ich würde gerne die Hauptkategorien und als Untermenü die Buchstabenreihe horizontal darstellen. Ab der Hierarchieebene Gattungen sollen sich die Menüpunkte dann in der linken Seitenspalte öffnen. Ich möchte daraus eine möglichst saubere URL generieren, die Menüs mit CSS möglichst frei gestalten können und die einzelnen Menüpunkte sollten expandable/collapsable sein. Ich habe schon überlegt, ob ich in der linken Seitenspalte vielleicht mit den Modulen Taxonomie Menu oder Advanced Taxonomy Blocks weiterkomme, aber ich weiß nicht so richtig, wie die Anbindung an die Horizontalnavigation mit den Hauptbegriffen und den jeweiligen Anfangsbuchstaben erfolgen muss.
Wäre echt super, wenn mir da jemand einen Lösungsweg zeigen könnte!
Vielen Dank schonmal und viele Grüße
Kissenschlacht
- Anmelden oder Registrieren um Kommentare zu schreiben

Hi, ich glaube nicht, das du
am 13.05.2009 - 11:25 Uhr
Hi,
ich glaube nicht, das du das mit vorgefertigten Modulen hin bekommst, da es schon sehr speziell klingt. Zumindest kann ich mir auf Anhieb nicht ganz vorstellen, wie das laufen soll durch die horizontale A-Z Sache.Du könntest es aber relativ einfach selbst programmieren.
Du holst dir die Vokabulare:
http://api.drupal.org/api/function/taxonomy_get_vocabularies/6
Und dann den Baum:
http://api.drupal.org/api/function/taxonomy_get_tree/6
oder nur einen Ast:
http://api.drupal.org/api/function/taxonomy_get_children/6
Das kannst du zB. in der page.tpl.php machen und wie du magst themen.
Falls du aber einen anderen Ansatz nutzen möchtest, ist meine Meinung mittlerweile, das Menüs eher kontraproduktiv sind und sich eine lose Verbindung von Taxonomien besser eignet. Du willst ja mit einem Menü dem Benutzer eine Frage beantworten. Quasi "Wo finde ich Bäume, die Winterfest sind?" oder was weiß ich. Darin sind Schlüsselwörter enthalten, also "Bäume, Winterfest".
Ein Menü ist eine starre Hierarchie und darin besteht auch das Problem. Du kannst in dieser Hierarchie dich nie wirklich quer bewegen und damit die Frage von oben nur auf eine Art beantworten. Bei die muss es "Winterfeste -> Bäume" sein und kann nicht "Bäume -> Winterfest" heißen.
Wenn du nun eine freie Verschlagwortung wählst, bestehend aus verschiedenen Vokabularen, dann kannst du immer auf jede Art zum nächsten kommen. Für die URL könntest du eine virtuelle Hierarchie nutzen, in dem du die verschiedenen Vokabulare in Reihenfolge bringst. Wenn du Angst vor Fehleinträgen hast, dann kann ich nur sagen, das halt passieren kann, aber die Menschen nicht blöd sind. Die Pflege ist leichter, da du nicht jede Kombination vordenken musst. Und vieles mehr ;)
Denk mal drüber nach, ob du wirklich solche Menüs und eine Hierarchie brauchst.
Wenn nicht, könntest du sowas wie eine Tagcloud, eine andere Art von Suche bzw. eine freiere Suche, die Taxonomie Seiten und Views mit Filtern verwenden. :)
---
Viele Grüße,
Kars-T
Hallo Kars-T, vielen Dank
am 13.05.2009 - 19:58 Uhr
Hallo Kars-T, vielen Dank für deine Antwort. Die von dir vorgeschlagene Quernavigation über andere Vokabulare biete ich auch an. Dafür nutze ich das Modul faceted search und das funzt soweit auch ganz gut. Ich brauche aber schon ein logisch gegliedertes Menü für den Fall, dass ein User einfach nur Informationen über eine bestimmte Pflanze sucht. Die würde er sonst ja nur finden, wenn er durch Zufall auf sie stoßen würde.
Dein Vorschlag mit der "händischen" Nutzung der Drupalfunktionen hört sich sehr vielversprechend an, allerdings fürchte ich, dass ich da als ziemlicher PHP-Laie schnell an meine Grenzen stoße. Wie gehe ich denn da genau vor? Mache ich einfach eine entsprechende Standardabfrage in der Templatedatei und lasse dann die zugehörigen Terms in ein Div schreiben oder muss ich den Code irgendwo einbetten, der auf den jeweiligen Seiten vorgeschlagen wird? Sorry, falls ich jetzt ein bisschen doof frage, aber ich kenne mich damit einfach noch zu wenig aus, obwohl ich mich jetzt schon einige Zeit mit meinem Projekt beschäftige. Hast du vielleicht sonst noch einen Tipp, wo ich weitere Infos dazu finde?
Vielen Dank schon mal!
Kissenschlacht
Das ist leider schwierig zu
am 15.05.2009 - 15:57 Uhr
Das ist leider schwierig zu beantworten.
Ich denke du solltest in der template.php eine Funktion dafür schreiben und die dann in der page.tpl.php aufrufen. Abfragen brauchst du eigentlich nicht machen, das machen die drupal Funktionen für dich. Du musst aber das HTML weitestgehend selbst machen bzw. wenn du theme() und l() benutzt musst du sehen, was du mit dem CSS machst.
Mir fällt so leider nicht ein, wie ich das genau erklären sollte und ich habe leider kein Snippet zur Hand. Du müsstest wahrscheinlich ein Modul schreiben um hook_menu nutzen zu können. Schwer ist das eigentlich nicht, aber viel zu lesen zum Anfang.
---
Viele Grüße,
Kars-T
Danke für die Infos,
am 19.05.2009 - 12:34 Uhr
ich glaube, ich werde mir dazu das Buch "Pro Drupal Development" anschaffen und dann einfach mal ein bisschen rumprobieren.
Viele Grüße
Kissenschlacht