Class "JPlugin" not found - Deaktivierung von "Behaviour - Backward Compatibility" - Plugin aktivieren ohne Zugriff auf Datenbank!

  • Joomla Version
    5 und 6
    PHP Version
    PHP 8.3.x
    Hoster
    Alle

    Wäre es nicht sinnvoll, dass man für Joomla 5 und Joomla 6 eine einfache Möglichkeit schafft, das Plugin ohne Zugriff auf die Datenbank wieder zu aktivieren?

    Übersieht man nur eine Erweiterung oder ein Plugin und deaktiviert das Plugin Behaviour - Backward Compatibility kann man ohne Zugriff auf die Datenbank das Plugin nicht mehr aktivieren. Das ist einfach unglücklich, da viele User nicht so geübt sind im Umgang mit Datenbanken.

    Ist es irgenwie machbar?

  • Wäre es nicht sinnvoll, dass man für Joomla 5 und Joomla 6 eine einfache Möglichkeit schafft, das Plugin ohne Zugriff auf die Datenbank wieder zu aktivieren?

    Übersieht man nur eine Erweiterung oder ein Plugin und deaktiviert das Plugin Behaviour - Backward Compatibility kann man ohne Zugriff auf die Datenbank das Plugin nicht mehr aktivieren. Das ist einfach unglücklich, da viele User nicht so geübt sind im Umgang mit Datenbanken.

    Ist es irgenwie machbar?

    Gab/gibt dazu schon mal einen Issue: https://github.com/joomla/joomla-cms/issues/46392

    Ein PR wurde probiert, aber geschlossen: https://github.com/joomla/joomla-cms/pull/46393

    Liebe Grüße
    Christine

  • Danke Christine. Ich finde nur unglücklich, dass sich das Plugin deaktivieren lässt und trotzdem noch nicht kompatible Dinge vorhanden sind. Wenn es so wäre, dass eine Deaktivierung nur möglich ist, wenn diese Erweiterungen tatsächlich entfernt wurde oder halt deaktiviert, dann wäre es für ganz viele User einfacher und würde das Backend nicht lahmlegen.

  • ...ich wünschte mir deshalb, dass es eine Chance über einen Link geben könnte...

    Habe jetzt mal in Anlehnung an die readmedia.php von SniperSister eine kleine php-Datei geschrieben welche per aufruf das Backward Compatibility" - Plugin aktiviert.

    Die Datei enthält den nachfolgenden Code im Spoiler:

    Spoiler anzeigen

    und habe ich als Dateianhang als txt-Datei beigefügt.

    Die Datei muß entsprechend umbenannt und gespeichert und aufgerufen werden z.B. in

    /administrator/templates/atum/compat.php

    Wie auch im obigen Beispieldateipfad ersichtlich funktioniert sie unverändert nur dann wenn sie genau 3 Dateiordnerebenen über dem Joomla-root Dateiordner abgelgt wird.

    Übrigens muß man im Joomla-Backend angemeldet sein sonst wird durch den Aufruf der Datei das Plugin nicht aktiviert. Es sei denn man ändert den Code vom Script entsprechend ab.

    Diese zusätzliche Sicherheitsvorkehrung wäre zwar nicht unbedingt erforderlich wenn man das Backend ohnehin per .htaccess geschützt hat. Habe ich aber im Script gelassen für alle Fälle.

    Der Dateiname vor dem .php kann übrigens auch beliebig geändert werden z.B. in

    /administrator/templates/atum/mycompatsecret0815.php

    Das selbe Script könnte man übrigens auch sehr leicht für das compat6-Plugin umschreiben und verwenden...

  • Ich "klinke" mich einmal mit einem "Erfahrungsbericht" ein von einer meiner Seiten:

    Plugin compat deaktiviert > Fehlermeldung ("Class ...") > Backup eingespielt > Errorreporting auf Max und neuer Versuch
    wieder die bekannte Meldung, aber keine weitere Fehlermeldung > Rückkehr zum Dashboard und dort konnte ich das Update auf 6.1.0 starten.
    Das Update war erfolgreich, Front- und Backend funktionieren fehlerfrei.

    Dann habe ich das Plugin compat6 deaktiviert mit dem Ergebnis Fehlermeldung ("Class ...")

    Dank dem Script von Sieger66 war das Plugin schnell wieder aktiviert.

    Wie komme ich jetzt auf die Spur des "Übeltäters"?
    Bei anderen Seiten hat der Wechsel auf J6 mit Deaktivierung des Plugins ohne Fehlermeldung geklappt.

  • Hallo zusammen,

    vielen Dank erstmal für eure Hilfe. Ich habe dasselbe Problem, aber ich checke es irgendwie nicht.

    Danke an Sieger66 für das PHP-Script. Ich habe den Code genommen und als "compat.php" in /administrator/templates/atum/ gespeichert und hochgeladen. Auf dem Server ist die Datei verfügbar.

    Wenn ich die Website dann jedoch über das Backend aufrufen möchte, passiert nichts und es erscheint noch immer die Fehlermeldung.

    Versuche ich die Datei über URL aufzurufen, erhalte ich eine Fehlermeldung: "Zuerst anmelden um das Kompatibilitäts-Plugin compat wieder zu aktivieren!" und "Access denied"- Was habe ich doofkopp denn nun wieder falsch gemacht?

    Sorry, bin wohl schon zu alt 🤪🫶