Mobile-Menu-Fehler auf Login-Seite, wenn Zweitsprache/n deaktiviert

  • Affected Version
    WoltLab Suite 5.4

    Hat etwas gedauert, bis ich darauf gekommen bin, aber wenn man sich mobil auf der Login-Seite (bzw. einer Seite mit __disableLoginLink=true) befindet und es steht (ausgehend von einer Standard-Installation) nicht mindestens eine 2. Sprache zur Verfügung, kommt es zu einem Fehler:


    Code
    User.js?t=1627781577:25 Uncaught (in promise) ReferenceError: Must call super constructor in derived class before accessing 'this' or returning from derived constructor
        at new UiPageMenuUser (User.js?t=1627781577:25)
        at initMobileMenu (Mobile.js?t=1627781577:141)
        at Object.init [as setup] (Mobile.js?t=1627781577:39)
        at Object.on (Screen.js?t=1627781577:59)
        at Object.setup (Mobile.js?t=1627781577:284)
        at Object.setup (Bootstrap.js?t=1627781577:78)
        at Object.setup (BootstrapFrontend.js?t=1627781577:48)
        at index.php?login/:668
        at require.linearExecution.js?v=1627781577:32
    • Official Post

    Hallo,


    die Meldung ergibt für mich keinen Sinn, denn dieser Code-Path ist beim ACP-Login eigentlich nicht möglich. Hintergrund ist die folgende Zeile, die beim Login-Bildschirm das mobile Menü deaktiviert:

    WCF/header.tpl at 0d1ac907cb725396ed25fddcfae09705eece8575 · WoltLab/WCF
    WoltLab Suite Core (previously WoltLab Community Framework) - WCF/header.tpl at 0d1ac907cb725396ed25fddcfae09705eece8575 · WoltLab/WCF
    github.com

    • Official Post

    Das ergibt für mich halt keinen Sinn, denn entweder ist PACKAGE_ID=0 (Installation ist abgebrochen) oder es handelt sich um keinen Login, siehe die Zeile im oben verlinkten Link.


    Die Fehlermeldung an sich ist korrekt, weil der Code einen Logikfehler enthält. Mein Punkt ist aber, dass es gar nicht bis dort hin kommen darf, eben weil in der von dir beschriebenen Situation der Code-Pfad gar nicht aktiv sein dürfte.


    Hilfreich wäre es daher zu wissen, wie die Konstellation in deiner Installation aussieht, damit ich die Ursache weiter eingrenzen kann.

  • Genau so, wie ich schrieb: Es ist nur eine Sprache aktiviert und ich bin auf der Login-Seite. Zusätzlich ist auch die Option "Anmeldung erzwingen" aktiv, allerdings weiß ich gerade nicht, ob ich das nicht auch ohne getestet hatte.


    Anschauen kannst du dir das bei uns, denn da ist das erstmalig aufgefallen. Ich hatte erst meine Anpassungen in Verdacht, konnte das aber, wie bereits erwähnt, in einer relativ frischen Installation ohne Anpassungen reproduzieren.

    • Official Post

    Okay, jetzt wird mir mein Irrtum klar. Als ich Login-Seite gelesen habe, kam mir das ACP in den Sinn und nicht der Login im Frontend, ich habe also an der völlig falschen Stelle gesucht - Danke!