Button soll bei Besuch Optik ändern Fragen
am 26.06.2012 - 18:48 Uhr in
Hallo Drupalfans.
Ich stehe vor einer kleinen Hürde und habe schon drei Lösungsansätze mir überlegt, aber zwei davon haben nicht geklappt.
Ich möchte in einem Bereich den ich neu angelegt habe(area nennt sich menuleiste) dort einen block mit eigenem HTML Code eingefügt welches mit CSS formatiert Buttons hat.
Diese buttons sollen bei Benutzung wenn man den passenden bereich betreten hat den Look ändern. Sprich das CSS State visited ist ja Browserseitig und nützt in meinem Fall nichts.
Heisst gehe ich auf mein Profil, soll dann nur wenn ich in dem Bereich bin, der Button einen anderen Look haben damit der benutzer visuell besser sich zuordnen kann wo er sich aufhält. Klar könnte man das auch mit nem Title machen, aber ich möchte das die Buttons passend zum Bereich wo man sich aufhält einen anderen CSS state bekommen.
Mein erster Lösungsansatz war bei 4 Buttons 5 Block anzufertigen. In jedem Block wird nur ein betreffender Button einen anderen State bekommen und im 5. Block sehen alle gleich aus(ausgangslage wenn man z.B. startseite ist.
Die Idee kam mir spontan weil man ja sagen block soll dann kommen wenn ich z.B. myprofile/* myprofile bin oder media/* media z.B.
Leider wenn ich das so machen will wird meine formatierung des Block zerschossen. Alternativ würde ich sonst in der page.tp.pl Das menü per HTML selbst einbinden und mit php erweitern, aber gibt es eine Variable die mir sagt wo ich mich gerade befinde? Ich würde dann nämlich einfach dann mit einer einfachen If schleife dementsprechend if state= was weis ich dann statt button-link-normal button-link-pressed als CSS div tag für den button. Also früher im Code hätte ich sowas ganz fix mit einem ?bereich=x gemacht und bereich einfach ausgewertet und passend den div gesetzt. Paar Zeilen und fertig, aber in Drupal bin ich etwas überfragt wie man von der Idee sowas simples umsetzen kann. Hatte was von Breadcrumbs gelesen, aber in meinem Fall geht das ja nicht.
Wollte dafür jetzt aber auch nicht ein weiteres Modul einbinden. Es muss ja möglich sein die Werte abzufangen und dann auszuwerten. Leider weiß ich aber nicht welche Variable ich da abfangen kann oder notfalls einbauen kann.
Vielleicht hat ja sowas schon mal einer eingebaut und kann mir eine funktionierende Lösung vorschlagen. Vielen Dank, werde noch was weiter probieren.
- Anmelden oder Registrieren um Kommentare zu schreiben

Sieh Dir doch mal die Klassen
am 26.06.2012 - 22:27 Uhr
Sieh Dir doch mal die Klassen des Body-Tags an. Drupal klebt doch allerlei Klassen an das Body-Tag und vielleicht reicht Dir das schon um zu erkennen, wo Du Dich befindest auf der Seite. Dann ist der Rest einfaches CSS.
Wenn das nicht reicht braucht es etwas Coding. Du könntest in Deinem Theme in der Datei template.php eine preprocess_html-Funktion erstellen und eigene Klassen beim Body anfügen, damit Du eindeutige Zurordnungen hast. Das könntest Du evtl. über die aktuelle URL steuern. Nur mal so als Idee.
Beste Grüße
Werner
Alternativ könntest Du Dir
am 27.06.2012 - 09:15 Uhr
Alternativ könntest Du Dir "mein Lieblings-Modul" ThemeKey anschauen: Damit kann man das Theme aufgrund diverser Faktoren
wechseln lassen.
Ich habe dann jeweils ein Main-Theme, und x Subthemes, die dann über ein modifiziertes CSS nur die Aenderungen zum Main-Theme beisteuern, z.B. andere Farben, andere Bilder.