Funktion aus .module-Datei überschreiben
Eingetragen von utaren (60)
am 08.12.2009 - 23:02 Uhr in
am 08.12.2009 - 23:02 Uhr in
Hallo,
benutze das Modul Menutrails, um den korrekten Hauptlink-Menutrail für Einträge aus Views darzustellen. Alles funktioniert bestens, nun hänge ich beim CSS-Feintuning und will dazu die Funktion phptemplate_links
in der menutrails.module
überschreiben (Hinzufügung einer CSS-Klasse). DOCH WIE NUN GENAU??? Ich werde aus den Anleitungen zum Overriding einfach nicht schlau.
Vielen Dank für Hinweise!!!
- Anmelden oder Registrieren um Kommentare zu schreiben
Eventuell musst Du gar nicht
am 08.12.2009 - 23:30 Uhr
Eventuell musst Du gar nicht PHP coden sondern nur besser mit CSS umgehen.
Poste doch mal bitte den HTML Code Bereich den Du vergebens versuchst mit CSS zu formatieren. Vermutlich kommst Du an bestimmte HTML Elemente nicht ran weil es keine oder zu sinnlos bezeichnete CSS Klassen gibt.
Wir koennen mal versuchen CSS auszureizen.
Edit
Falls wir uns zeitlich verfehlen und Du trotzdem zu einem Loesungshinweis kommst:
Da Du die Hauptlinks mit CSS formatieren willst geht es wohl wohl um das Formatieren von Listen. Um an wenig sinnvoll mit CSS Klassen ausgeruestete Listenelemente heranzukommen bzw. um sie ueberhaupt einzeln ansprechen zu koennen ist es moeglich mit CSS Selectoren zu arbeiten.
Damit kann man einzelne Elemente einer Liste ansprechen, auch dann wenn die einzelnen Listenelemente gar keine CSS Klassen haben.
Eine gute Doku zu CSS Selectoren habe ich hier gefunden: CSS Selectors
------------------------
Quiptime Group
Da geht noch was.
Leider reicht CSS nicht aus,
am 09.12.2009 - 14:04 Uhr
Leider reicht CSS nicht aus, da:
es soll in der Navigation genau der Link hervorgehoben werden, dem durch das Menutrail-Modul die Klasse
active
zugewiesen wurde. Da ich auch den Hintergrund des Menuitem farbig anders darstellen will, muss leider nicht nur der Link an sich, sondern das<li>
direkt darüber ansprechbar sein. Dieser unterscheidet sich aber in nichts von den anderen Einträgen, dieactive-trail
enthalten. Genau das ist das Problem. Über die Änderung der php-Funktion kann ich genau an das<li>...
ran, das den<a class="active">...
enthält.Trotzdem schon mal danke für die Antwort!!!
Bist Du Dir da voellig sicher?
am 09.12.2009 - 14:32 Uhr
Leider reicht CSS nicht aus, da
Wieso bist Du Dir da so sicher?
Dieser unterscheidet sich aber in nichts von den anderen Einträgen, die active-trail enthalten.
Genau das hatte ich vermutet und deswegen hatte ich Dir den Tipp mit den CSS Selectoren gegeben.
Mit diesen Selektoren kann man einzelne Listenelemente ansprechen auch wenn sie keine separaten oder identische CSS KLassen haben.
Hast Du meinen Post richtig gelesen?
Da Du die Hauptlinks mit CSS formatieren willst geht es wohl wohl um das Formatieren von Listen. Um an wenig sinnvoll mit CSS Klassen ausgeruestete Listenelemente heranzukommen bzw. um sie ueberhaupt einzeln ansprechen zu koennen ist es moeglich mit CSS Selectoren zu arbeiten.
Damit kann man einzelne Elemente einer Liste ansprechen, auch dann wenn die einzelnen Listenelemente gar keine CSS Klassen haben.
------------------------
Quiptime Group
Da geht noch was.
Soweit ich das überblicke,
am 09.12.2009 - 15:19 Uhr
Soweit ich das überblicke, kann man mit CSS-Selektoren alle möglichen Kind-Elemente ansprechen. Ich brauche aber genau das
<li>
-Elternelement, welches ein<a class="active">
enthält. Und das bekomme ich doch nicht mit CSS-Selektoren hin, oder? Habe ich etwas komplett falsch verstanden?Danke!
Poste doch bitte mal den
am 09.12.2009 - 20:51 Uhr
Poste doch bitte mal den HTML Code des Bereiches der Liste - mit ein paar Elementen davor.
Ist die Seite online erreichbar? Dann poste doch bitte den Link. Dann wird es etwas praktischer.
------------------------
Quiptime Group
Da geht noch was.
Super Hilfe!!! Danke danke
am 09.12.2009 - 21:31 Uhr
Super Hilfe!!! Danke danke danke!
Hier die Seite: ff-sportpferde.de
Was soll passieren: Pferde anklicken, dann Stammstuten anklicken, jetzt ist Stammstuten hervorgehoben. So sollte jedes Menuitem hervorgehoben werden, wenn es angeklickt wurde. Momentan funktioniert es aber nur für die Menuitems, die ein
class="leaf"
enthalten (das habe ich schon erledigt). Mit Firebug ist dies alles nachzuvollziehen.Uta
Nicht li sondern a Element verwenden
am 10.12.2009 - 16:47 Uhr
Ich empfehle Dir Folgendes:
Verwende zum markieren des aktiven Link nicht das aktuelle Listenelement sondern den Link selbst. Die a Elemente haben die Klasse active und die sollte man immer ansprechen koennen.
Im Moment liegt Dein Problem bei Listenelementen die eine weitere Liste enthalten - Beispiel Verkaufspferde. Ein solches Listenelement kannst Du als Element mit CSS nicht konsistent einzeln ansprechen.
Du musst den background fuer das enthaltene ul Element und dessen li Elemente deaktivieren ###. Klickt man nun auf ein Link in der Unterliste, Jungpferde beispielsweise, hast Du ein Problem weil dieses li Element aktiv ist und das darueber liegende li Element ebenso. Nun gibt es aber fuer Elemente wie das von Jungpferde bereits die Formatierung ### die den background deaktiviert hat. Daraus ergibt sich, das Problem ist an dieser Stelle nicht loesbar.
------------------------
Quiptime Group
Da geht noch was.