Javascript Mootools läuft statisch, aber nicht über TS

  • Ideegestalten Ideegesta...
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    12. 08. 2012, 03:20

    Hallo zusammen,

    ich habe eine statische HTML Seite als Template für einen Kunden angelegt.
    Das eingebundene Accordion Menü funktioniert auch Wunderbar, solange ich das Menü nicht als HMENU generieren lassen.

    Ich binde dafür wie folgt ein:

    1. page.includeJS {
    2. file10 = fileadmin/rotator/js/mootools.js
    3. file20 = fileadmin/rotator/js/accordion.js
    4. }

    Wie gesagt.. solange ich das Menu nicht über SUBPARTS definiert habe funktioniert es wunderbar.

    Die Ausgabe über das HMENU ist auch identisch mit meiner Vorgabe. Also alle zu definierenden CLASS gesetzt. Augenscheinlich sieht man keinen Unterschied zwischen
    meinem Template Source und dem gerenderten TS.

    Gibt es hier was "ganz blödes" zu beachten oder hat einer ne Idee?! Wie gesagt.. alle Klassen, etc.. sind richtig gesetzt... JS lässt sich per Link im Source auch aufrufen.. daran kann es also nicht liegen.

    Besten Danke euch


  • 1
  • homy homy
    Padawan
    0 x
    52 Beiträge
    1 Hilfreiche Beiträge
    12. 08. 2012, 21:19

    [quote="Ideegestalten"]
    Das eingebundene Accordion Menü funktioniert auch Wunderbar, solange ich das Menü nicht als HMENU generieren lassen.
    [/quote]
    Ohne HMENU kein Menü, das HMENU bildet die Basis der Menüs, es stellt dann dem T- oder G- Menü die Daten zur Verfügung. Hat dein TS-Code kein HMENU Konstruktor dürfte es nicht funktionieren.

    [quote="Ideegestalten"]
    Wie gesagt.. solange ich das Menu nicht über SUBPARTS definiert habe funktioniert es wunderbar.
    [/quote]
    Wie gesagt?? Vorhin sagtest du HMENU. Evtl. verwechselt du hier zwei Dinge, das HMENU ist für die Erstellung der Menüs zuständig, die SUBPARTS ordnen den Content (Menü, Texte, Bilder, Plugins, usw.) in dein HTML-Template ein.

    Es wäre gut, wenn du uns deinen TS-Code zur Verfügung stellen würdest und außerdem sagst wie dein Menü nicht funktioniert, also zeigt es nur den Text an (dann Probl mit Javascript / CSS) oder zeigt es gar nix an (falscher SUB-Part im Template) usw.

    Danke!

  • Ideegestalten Ideegesta...
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    13. 08. 2012, 08:33

    Moin,
    macht natürlich Sinn den Source zu Posten, sorry.

    Also mein Typoscript sieht so aus:

    1. page.10 = TEMPLATE
    2. page.10 {
    3. subparts {
    4. MENU_PRODUKTE = HMENU
    5. MENU_PRODUKTE {
    6. special = directory
    7. special.value = 17
    8. 1 = TMENU
    9. 1 {
    10.  
    11. wrap = <ul>|</ul>
    12. expAll = 1
    13. NO {
    14. allWrap = <li class="toggler">|</li>
    15. }
    16. ACT = 1
    17. ACT {
    18. allWrap = <li class="toggler active">|</li>
    19. }
    20. }
    21. 2 < .1
    22. 2 {
    23. wrap = <ul class="element">|</ul>
    24. NO {
    25. allWrap = <li>|</li>
    26. }
    27. ACT = 1
    28. ACT {
    29. allWrap = <li class="active">|</li>
    30. }
    31. }
    32. }
    33. }
    34. }

    Der HTML Source auf der Seite wird dann wie folgt, bedingt durch die Navi-Struktur auch richtig ausgeben:

    1. <div id="accordion">
    2. <ul>
    3. <li class="toggler">
    4. <a href="index.php?id=18" onfocus="blurLink(this);" >Bohren</a></li>
    5. <ul class="element">
    6. <li><a href="index.php?id=40" onfocus="blurLink(this);" >Produktgruppe 1</a></li>
    7. <li><a href="index.php?id=41" onfocus="blurLink(this);" >Produktgruppe 2</a></li>
    8. <li><a href="index.php?id=42" onfocus="blurLink(this);" >Produktgruppe 3</a></li>
    9. </ul>
    10. <li class="toggler"><a href="index.php?id=19" onfocus="blurLink(this);" >Fräsen</a></li>
    11. <ul class="element">
    12. <li><a href="index.php?id=43" onfocus="blurLink(this);" >Produktgruppe 1</a></li>
    13. <li><a href="index.php?id=44" onfocus="blurLink(this);" >Produktgruppe 2</a></li>
    14. </ul>
    15. <li class="toggler"><a href="index.php?id=22" onfocus="blurLink(this);" >Messen</a></li>
    16. <li class="toggler"><a href="index.php?id=23" onfocus="blurLink(this);" >Schleifen & Trennen</a></li>
    17. <li class="toggler"><a href="index.php?id=24" onfocus="blurLink(this);" >Werkstattbedarf</a></li>
    18. <li class="toggler"><a href="index.php?id=25" onfocus="blurLink(this);" >Betriebseinrichtung</a></li>
    19. </ul>
    20. </div>

    Das Javascript wird auch richtig eingebunden und zeigt laut Web-Konsole
    zwei Fehler an:

    1. [08:29:22.736] TypeError: setting a property that has only a getter @ http: mootools.js
    2. [08:29:22.183] TypeError: window.addEvent is not a function @ accordion.js

    Das merkwürdige ist, dass ich den identischen Source als statische Vorlage angelegt habe. Ich bin die Ausgabe Zeile für Zeile durchgegangen und hab hier keinen Unterschied festgestellt. Mit anderen Worten... meine statische Vorlage funktioniert.. die identische Ausgabe via Typo3 generiert funktioniert nicht.

    Bei der statischen Seite meldet das Javascript dann auch keinen Fehler. Daher meine wage Vermutung dass hier beim Rendern vielleicht eine "falsche" Reihenfolge stattfindet oder sowas.

    Besten Dank noch mal

  • homy homy
    Padawan
    0 x
    52 Beiträge
    1 Hilfreiche Beiträge
    13. 08. 2012, 11:09

    Vielen Dank schonmal.

    Also das erste was ich erkenne ist, dass er die Mootools JS nicht richtig lädt.

    Fehler

    1. [08:29:22.183] TypeError: window.addEvent is not a function @ accordion.js

    Evtl. resultiert der Fehler aus CoolURL oder RealURL. Versuch mal die Pfadangaben in Verbindung mit deiner Domain:

    1. page.includeJS {
    2. file10 = http://www.deinedomain.de/fileadmin/rotator/js/mootools.js
    3. file20 = http://www.deinedomain.de/fileadmin/rotator/js/accordion.js
    4. }

    Außerdem achte darauf dass dein Initialisierungsskript

    1. window.addEvent('domready', function(){
    2. new Fx.Accordion($('accordion'), '#accordion h2', '#accordion .content');
    3. });
    NACH den JS-Files kommt!

    Ich hoffe das hilft weiter.

  • 1