[gelöst] Menüpunkt soll aktiv sein, wenn bestimmte nodes angesehen werden
Eingetragen von soezkan (558)
am 29.11.2009 - 18:00 Uhr in
am 29.11.2009 - 18:00 Uhr in
Hallo Leute,
wie kann man einem Menüpunkt beibringen welcher node gerade
angesehen wird? Das wäre nämlich sehr praktisch, denn dann
könnte man abhängig vom node den entsprechenden Menüpunkt
"erleuchten lassen" (active).
Hat da jemand einen Tipp?
1000 Dank.
Liebe Grüße
Soezkan
- Anmelden oder Registrieren um Kommentare zu schreiben
active Status ...
am 01.12.2009 - 09:04 Uhr
Hallo Soezkan,
Wenn es "normale" Drupal Menüpunkte sind, so musst du das mit einer Klasse machen. Weil das a:active nur so lange funktioniert, bis die Rückmeldung vom Server kommt, wurde hier eine Hilfsklasse mit dem selben Namen vergeben.
Schreibe einfach bei den Links die du mit CSS formatieren möchtest (FF und Firebug sind hier deine Freunde:
Als Beispiel:
.irgendwas a:link, .irgendwas a:visited {
...
}
.irgendwas a:focus, irgendwas a:hover {
...
}
.irgendwas a.active {
...
}
Das funktioniert eigentlich immer und ohne Probleme in Drupal! Du musst nur beachten dass beim active anstatt des a:active ein a.active hinkommt :-)
Gruss
Fredi
Danke für die Antwort! Nur
am 01.12.2009 - 15:47 Uhr
Danke für die Antwort!
Nur ist das nicht was ich will. Das active im CSS klappt ja, aber angenommen ich
habe zwei Menüs und wenn ich node/66 aufrufe, sollen gleichzeitig der Menüpunkt
1 im Hauptmenü und der Menüpunkt 2, oder so, active sein.
Das ist wohl eher ne PHP Sache, Taxonomie vielleicht?
Danke !
Liebe Grüße
Soezkan
hatte mal sowas in der Art,
am 01.12.2009 - 17:10 Uhr
hatte mal sowas in der Art, beschäftige Dich mal mit:
http://api.drupal.org/api/function/menu_set_active_trail/6
http://api.drupal.org/api/function/menu_set_active_item/6
http://api.drupal.org/api/function/menu_get_active_trail/6
----------------------------------------
Nur Wer Selbst Brennt, Kann Das Feuer In Anderen Entfachen! - http://cybercore.de
JS/jQuery ?!
am 01.12.2009 - 17:38 Uhr
Hallo Soezkan,
Wenn du hier unbedingt mehrere Links angehen möchtest, so würde ich das mit Javascript Funktionen schreiben, mit PHP-DOM müsste es auch gehen, erfordert aber die Einbindung der zuständigen Klasse für die DOM-Manipulation.
Oder:
Du machst es direkt mit Javascript(ev. jQuery) und DOM und fängst den click auf. Dann würde ich den gleichnamigen Links die Klasse "activ" setzen. Ansonsten fällt mir jetzt auch keine bessere Lösung ein.
Mit dem GetElementsByTagName("a") könntest du alle Links zuerst mal holen. Dann mit dem InnerHtml den Linktext auf Gleichheit prüfen. Wird nun ein weiterer Link mit der selben Beschreibung gefunden, so vergibst du diesen mit setAttribute auch die Klasse "active".
Etwa so ungefähr sollte das gehen. Eine eigene Javascript Datei kannst du recht einfach einbinden. Such dazu mal in drupal.org nach "drupal_add_js()".
So, hoffentlich konnte ich ein wenig weiterhelfen :-)
Gruss
Fredi
[gelöst]
am 05.12.2009 - 21:09 Uhr
Liebe Leute,
ich ahbes nun ganz anders gemacht. Und zwar mit dem Modul
Menu Blocks. Jetzt kann ich statt meinem "künstlichen" Menü
einen Menüblock erstellen, der sich auf meine Haupmenüpunkte
bezihet. Ich glaube ich hatte anfänglich, ob meines Anfängerdaseins,
glaube ich einen Denkfehler gemacht, welcher jetzt behoben wurde
und alles passt.
Ganz lieben Dank für eure Geduld mit mir.
Soezkan
Mit dem Modul Context kann
am 23.07.2010 - 09:51 Uhr
Mit dem Modul Context kann man das auch steuern - finde ich selbst sehr praktisch und flexibel und ist noch für vieles andere gut...