mod_menu in eigenem Template / Funktion nur eingeschränkt

  • Joomla Version
    4.3.0
    PHP Version
    PHP 8.0.x
    Hoster
    Lokal

    Hallo miteinander,


    ich versuche gerade das mod_menu zu verstehen bzw. dessen Einsatz zu verstehen. Dieses möchte ich als "collapsible" in einem eigenen Template verwenden. Das funktioniert bis zu dem Punkt, an dem es auf "klick" auch wieder einklappen soll, es klappt also nur aus.


    Da es im Cassiopeia (natürlich) einwandfrei funktioniert scheint das Template noch irgendwas mitzubringen, was ich übersehe. Wo wird da noch das entscheidenen "kleine Ding" geladen, damit das Modul funktioniert, wie es soll?


    Könnt ihr mir den entscheidenen Tipp geben?

    Tim

  • Es gibt 2 "Collapsible" in Joomla: 1 von Joomla Core (ohne Submenüs) und 1 von Cassiopeia (mit Submenüs). Das von Cassiopeia sind alternative Layouts, die im Template geliefert werden.

    Das ist schon klar, das geht leider überhaupt nicht auf meine Frage ein. Aber danke.


    In Unkenntnis des verwendeten Templates bzw. ohne Link zur Seite schwer zu sagen. Ähnlichen Konflikt habe ich bei einem gesehen, dass sein eigenes Bootstrap (CSS und JS) lädt und damit das Joomla-Core-Bootstrap behinderte. Also "doppelt geladene Assets" bzw. ähnliches.

    Das Template ist quasi „nackt“ und lädt kein eigenes Bootstrap oder sonstiges JS. Es wird nur das JS von dem mod-menu geladen und eben Bootstrap, so wie es auch im Cassiopeia geladen wird. Das Template habe ich analog dazu aufgebaut.


    Auch wenn ich statt meines eigenen CSS das komplette vom Cassiopeia lade funktioniert es nicht, daher schließe ich hier einen Konflikt o.ä. aus.


    Die Klasse „show“ wird in der navbar auch gesetzt, aber eben nicht wieder raus genommen beim klick auf das hamburger.


    Natürlich könnte ich fix eigenes JS dafür schreiben, aber ich versuche eben Joomla da zu verstehen. Es sollte ja alles dafür da sein, muss eben nur an der richtigen Stelle geladen werden.

    Einmal editiert, zuletzt von Indigo66 () aus folgendem Grund: Ein Beitrag von noos mit diesem Beitrag zusammengefügt.

  • Ja, es sollte alles dafür da sein. Vielleicht hast du dass das js richtig geladen? Hast du js Fehler in der Konsole?

    Nein, keine JS Fehler in der Konsole.

    Wird das benötigte JS des Moduls nicht über das Modul geladen? Dort steht es ja wie folgt drin, und im Cassiopeia habe ich auch nichts gefunden, dass dies noch mal an anderer Stelle explizit geladen wird.

    Ich war davon ausgegangen, dass das Modul selbst alles mitbringt. Ist ja nicht Typo3 ;)

    Das meiste, wenn nicht ganze CSS, ist ja durch Bootstrap auch schon da.

    Code
    $wa->registerAndUseScript('mod_menu', 'mod_menu/menu.min.js', [], ['type' => 'module']);
    $wa->registerAndUseScript('mod_menu', 'mod_menu/menu-es5.min.js', [], ['nomodule' => true, 'defer' => true]);
  • Eventuell geht drmenzelit doch auf deine Frage ein, aber geschickt zwischen den Zeilen versteckt ;)

    Schau mal im Cassiopeia im Backend bei den Overrides vorbei. So habe ich zumindest Viviana verstanden. Offenbar ist dort was programmiert, was dein Problem lösen könnte.



    Axel