Hallo,
ich versuche verzweifelt einen durch GMENU_Layers generierten Link zu beeinflussen, ohne die gerenderten Parameter im URL zu verlieren.
Ich möchte erreichen, dass keine Seite aufgerufen, sondern nur das JavaScript ausgelöst wird. Anstatt "onMouseover" möchte ich mit "onKlick" jeweils die nächste Ebene (rechts neben der vorherigen) öffnen lassen.
Hat jemand eine Idee, wie ich das realisieren könnte?
schau mal unter typo3/sysext/cms/tslib/media/scripts - da gibts eine gmenu_layers.php mit erweiterten Funktionen 😉
ansonsten schau Dich dort mal um, da gibts auch andere Möglichkeiten, z.B. über ein userFunc
Leider nix ohne php-Kenntnisse.
Auch hier: http://www.typo3forum.net/forum/typo3-4-x-fragen-und-probleme/16717-userfunc-menue-normalem-tmenu-moeglich.html
Danke für den Tipp,
leider bin ich kein Profi in Sachen PHP, verstehe mich aber einigermaßen im anpassen 😉
Im Grunde gehts darum 🙂
#65080
Du schickst einen ja von Pontius zu Pilatus 🙂
der Link wäre hier hilfreich gewesen um das Menü zu sehen.
Also my 2cents: nix manipulation, nur Javascript
Du wrappst die Unterebenen mit einem div mit einer id und setzt im tmenu mit ATagParams dierect das JS ein. Der Link kann (soll sogar) bleiben, es genügt im JS ein abschliessenes return false;
Das Blenden kannst Du von scriptaculous machen lassen - ist ja beim Typo3 dabei:
http://wiki.script.aculo.us/scriptaculous/show/CombinationEffectsDemo
Aha, toller Ansatz danke! 🙂 Hab ich so noch nicht drüber nachgedacht - miz ATagParams.
JS ist aber auch nicht ganz meine Stärke. Oder welches meinst Du soll ich da einsetzen? Sorry, hab heute und gestern schon so viel ausprobiert, dass ich ganz matschig in der Birne bin.
o.O
in der art halt sowas:
NO.ATagParams = onclick="showLayer('div_level2');return false;"
das JS musst Du ja sowiesio bauen / klauen
glaub ich brauch wirklich mal ne pause.. 😉 hab in eine völlig falsche Richtung gedacht. Allerdings verstehe ich nicht, warum sich mit dieser KEINE Seite öffnet, wenn der nächste Layer damit eingeblendet wird.. Der Link weist ja trotzdem mit der id auf eine Zielseite.. <grübel>
return false; verhindert das. Wenn man Javascript abgeschaltet hat, funktioniert der Link trotzdem - that's the trick 😉
na wunderbar.. klappt hervoragend! 🙂
Jetzt suche ich noch einem Trick, dass die Layer nicht nach jedem neuladen der Seite wieder zu sind. Alle Layer in der rootline sollen sichtbar bleiben..
Hab schon mit mit entsprechendem [treeLevel] und bodyTagAdd onLoad...
Versucht, geht das auch noch eleganter?
da wirst Du wohl um conditions nicht drumrumkommen, treeLevel ist der beste Weg.
Tja.. ich hatte mich zu früh gefreut 🙁
Damit klappt zwar die nächste Ebene auf, aber die ist ja abhängig von dem angeklickten Link. Sprich bei Klick auf 1 muss 1.1 - 1.3 gezeigt werden und bei Klick auf 3 eben 3.1 - 3.2
Ist wohl doch nicht so einfach wie es scheint 🙁
1
-1.1
-1.2
-1.3
2
3
-3.1
-3.2
4
wie ist das denn bei der Vorlage? Wie haben die das gelöst?
Kannst Du das nicht über condition und css lösen ?
Es gibt zu viele Rubriken mit jeweils 4 Menü-Leveln
Ich wüsste nicht, wie ich das mit Conditions lösen könnte.
Der JS-Aufruf über "ATagParams" zur nächsten Ebene müsste ja praktisch schon auf einer Seite, je nachdem welche Hierarchieebene angeklickt wird unterschiedlich sein.. Man könnte das vielleicht "optionSplit" lösen. Aber ich fürchte der TSCode würde Kilometerlang werden. Auch müssten im treeLevel für den bodyTag jeweils alle Seiten onLoad aufgerufen werden.
Ojehh o.O