Problem mit der Joomla API bei einer migrierten Joomla 4.1 Installation

  • Hallo allerseits!


    Ich habe gestern angefangen, mich mit dem Thema "Joomla API" in Jommla 4 zu beschäftigen. Dazu habe ich eine zuvor von Joomla 3.10 migrierte Jommla 4.1 Installtion benutzt und mich dabei an die Vorgehensweise aus dem Joomla Magazin (https://magazine.joomla.org/al…-testing-and-a-taste-test) gehalten. Leider waren meine Versuche nicht von Erfolg gekrönt, der GET Request mündete immer in einem 500er Fehler (Internal Server Error) mit dem weiteren Hinweis "View not found [name, type, prefix]: articles, html, api". Daraufhin habe ich es mal mit einer frischen Joomla 4.1 Installation versucht (auf dem gleichen Server, anderes Verzeichnis), dort funktioniert es auf Anhieb ohne Probleme.

    Nun stellt sich mir die Frage, was im Bereich der API die Unterschiede einer migrierten und einer frischen Joomla Installation sind. Hat hierzu jemand eine Idee oder einen Vorschlag, das Problem weiter zu analysieren? Insgesamt ist die Dokumentationslage zu dieser neuen Funktion in Joomla noch recht überschaubar ;)


    Viele Grüße,

    Matze

  • Moin!

    Danke für die Hinweise, Pascal. Auch wenn diese direkt keine Lösung brachten, haben sie den Anstoß für weitere Tests meinerseits gegeben, so dass ich den Übertäter tatsächlich einkreisen konnte: das Plugin "UIkit 3 Framework" von joomlaplates. Ist dieses aktiv, dann kommt es zu dem Fehler auf der API, ist es deaktiv, arbeitet die API fehlerfrei.

    Fehler leider nicht gelöst, aber kein Thema für hier. Mal schauen, was die Jungs von joomlaplates sagen...


    VG,

    Matze

  • Meines Wissens nach ist das nicht J!4 kompatibel und wurde von der 3er-Mirgtaion mitgeschleppt.

    Eigentlich solltest Du ohne diesem Plugin auskommen.

    Ist kompartibel und läuft ohne Probleme :thumbup: .

    Haben wir auf diversen J4-Seiten bereits im Einsatz.


    Wurde UiKit3 vor der Migration deinstalliert und danach neu installiert ?

  • Hallöle!

    Wenn ich keine Uikit3 Module von joomlaplates einsetzen will, komme ich ohne das Plugin aus. Da ich die aber ganz nett finde, möchte ich es nutzen und hatte auch bisher keine Problem festgestellt. Ich hatte es vor der Migration deinstalliert und nach der Migration neu installiert und das gleiche gestern auch nochmal, leider ohne Veränderung - das Plugin legt die Jommla API lahm.

    Leider ist man bei joomlaplates noch nicht soweit, sich das anschauen zu können. Ich musste dem GF erstmal erklären, was die Joomla API ist und habe dann die Antwort bekommen, dass das ein Seitenfeature ist und man mit der Übernahme des Astroid-Frameworks und der Portierung der eigenen Templates nach J4 genug zu tun hat...

    VG ;)

  • Auch Yoothemes z.B. benutzt bei alle neuen Templates das UIKit3 Framework für Joomla4 und WP. Du kannst gerne auch dort nachfragen, ob es eine Inkompartibilität mit der Joomla API gibt. Kann mir nicht vorstellen, dass dies noch nicht aufgefallen wäre. Ich vermute eher, dass es ein Problem mit einer anderen Erweiterung in Verbindung mit UIKit bei dir gibt. Dass du dem GF bei Joomlaplates die API-Welt von Joomla erklären musstest, halte ich für etwas überzogen und wird so nicht ganz stimmen. Denke dass war eher dein persönlicher Eindruck und ist vielleicht auch einer missverstandenen Fragestellung deinerseits geschuldet.


    Wir können deine Behauptung, dass UKIt3 die Joomla-API lahm legt, jedenfalls nicht bestätigen.

    Du kannst gerne bei GitHub dafür ein Entwickler-Ticket eröffnen und deine Erkenntnisse dort mit reproduzierbaren Fakten publizieren.


    https://github.com/uikit/uikit

  • Hallo,

    zu den ganzen Vermutungen schreibe ich erstmal nix. Ich habe mal die frische und ohne irgendwelche Erweiterungen veränderte Joomla 4.1 Installation genommen (die, bei der die Joomla API funktioniert). Dort habe ich jetzt einfach mal das "UIkit 3 Framework Plugin" (https://www.joomlaplates.de/lo…Module%252Fplg_uikit3.zip) installiert - mit dem gleichen Ergebnis:

    - Aktives Plugin: Joomla API liefert "500 Internal Server Error"

    - Inaktives Plugin: Joomla API liefert validen Inhalt


    VG,

    Matze

  • Vielleicht auch mal den Debug-Modus starten:


  • Hallo,

    es könnte durchaus sein, dass das Plugin bzw deren Einbindung den Fehler verursacht und nicht das Script an sich.

    Probieren sie mal folgendes um den Fehler einzugrenzen und laden das Uikit "händisch" ohne Plugin.

    1.) Deaktivieren sie das Uikit 3 Plugin

    2.) Nun öffnen sie die Template Settings > Custom Code > Before Body und laden das Uikit extern in dem sie folgenden Code einfügen ( siehe Bild)

    ...


    DEBUGAUSGABE wäre sinnvoll!!

    Code
    <!-- UIkit CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/uikit@3.11.1/dist/css/uikit.min.css" />
    
    <!-- UIkit JS -->
    <script src="https://cdn.jsdelivr.net/npm/uikit@3.11.1/dist/js/uikit.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/uikit@3.11.1/dist/js/uikit-icons.min.js"></script>


    PS: Wie ich bereits per Mail schrieb. Ich denke nicht das viele Benutzer zur Zeit die Joomla API nutzen und aus diesem Grund müssen wir Prioritäten setzen und erstmal das Astroid schneller machen und Templates konvertieren.

  • Hallo zusammen,

    danke für die vielen Hinweise! Also, Debugging ist mäßig sinnvoll, weil bei Nutzung der API ja weder das Frontend noch das Backend der Website angezeigt wird. Das ist ja der Sinn der API: von extern auf die Inhalte zugreifen (in einer standardisierten Form). Damit kommen wir auch zu der Frage, wo der Fehler angezeigt wird: In der Instanz, die die Daten anfordert und empfängt, in meinem Fall die Applikation "Postman" (siehe dazu den im Eingangspost verlinkten Artikel im Joomla Magazin). Hier der Screenshot dazu:

    Joomlaplates: Bei der frischen Joomla-Installation läuft kein Astroid-Framework und auch kein anderes Template, sondern nur das Standard-Template Cassiopeia.

  • Hallo, was hast du gemacht, damit es funktioniert?

    Event Parameter oder Uikit 3 code in die index?

    Beim Testen bitte immer nur ein Parameter ändern, sonst weiß mann ja nicht woran es gelegen hat.


    Demnach bitte erst den Event Parameter onBeforeCompileHead testen mit aktiven Plugin.

    Wenn das nicht geht zurück zu deinen org Einstellungen und dann mit dem Uikit in der index.php testen.

  • Moin zusammen,

    ich habe nun die neue Version des Plugins installiert und sowohl die davon abhängigen Module als auch die Anforderungen über die API funktionieren ohne Probleme. Herzlichen Dank für die schnelle Bearbeitung und einen schönen Sonntag allerseits! 8)