Schlagwort-Archive: Joomla

JSON data error in Joomla 3.6.3

Wenn ihr eure Joomla-Seite auf Version 3.6.3 oder höher updaten wollt, kann es passieren, dass eure Seite nicht mehr erreichbar ist und folgenden Fehler anzeigt:

0 - Error decoding JSON data: Syntax error

Falls dieser Fehler auftritt, liegt das an fehlerhaften Daten in eurer Joomla Datenbank. Genauer gesagt, an Daten die dort im JSON-Format gespeichert sind. Falls die Daten fehlerhaft sind, dann wurden die bisher immer still verworfen und die Seite hat soweit normal funktioniert. Ab der neuen Joomla Version 3.6.3 hat sich dieses Verhalten geändert, denn die Prüfung der JSON-Daten wurde verbessert. Das heißt, das einige Fehler bisher keine Auswirkungen hatten, nun aber dazu führen dass die Seite nicht mehr funktioniert und den genannten Fehler anzeigt.

Was tun?

Robert Went hat ein kleines Tool geschrieben, dass die meisten dieser fehlerhaften JSON Daten korrigiert. Das Script könnt ihr bei Github herunterladen. Anschließend müsst ihr es in das Wurzelverzeichnis euer Joomla Installation legen und ausführen. Danach sollte eure Seite im besten Fall wieder funktionieren. Das prüft ihr einfach durch einen erneuten Aufruf der fehlerhaften Seite.

Falls das keinen Erfolg gebracht hat, klickt ihr auf Check For All Invalid Values, um eventuell weitere fehlerhafte Daten zu finden. Diese müsst ihr dann manuell korrigieren, beispielsweise mit phpMyAdmin.

Joomla 2.5.x: Fehler beim Passwort zusenden

Heute hatte ich mit folgendem Fehler zu tun: Beim Nutzen der Seite „Passwort vergessen?“, also dem Zusenden der E-Mail trat folgender Fehler auf:

Fatal error: Call to a member function checkAnswer() on a non-object in /.../libraries/cms/form/rule/captcha.php on line 47

Um das Problem zu lösen muss man im User-Manager die Option Captcha „- Nichts ausgewählt -“ einstellen. Genauso muss man es in der Konfiguration auch einstellen. Danach sollte es wieder funktionieren.

„Ungültiges Erweiterungsupdate“ bei Joomla Update

Heute war es mal wieder Zeit, einige Komponenten bei diversen Joomla-Installationen auf den neuesten Stand zu bringen. Leider funktionierte das neue Ein-Klick-Update-Verfahren, das mit Joomla 1.6.x eingeführt wurde, bei mir nie. Jedes mal erschien der Fehler „Ungültiges Erweiterungsupdate„. Bisher bin ich dem Fehler nie groß nachgegangen, sondern dachte, dass er mit einem der kommenden Joomla Updates behoben wird, da es wohl wirklich zwischenzeitlich fehlerhaft implementiert war. Da Joomla zwischenzeitlich auch schon wieder mal ein Update spendiert bekam, habe ich es auf einen neuen Versuch ankommen lassen. Hat natürlich nicht funktioniert. Fast. 😉 Bei einer brandneuen Joomla 1.7.x Installation funktionierte es! Ein guter Grund, der Sache mal mit Hilfe von Google genauer nachzugehen…

Auf deutsch habe ich nichts zielführendes gefunden, aber bei einer Suche nach der englischen Fehlermeldung „Invalid extension update“ kam ich der Sache dann auf die Spur. Der Fehler liegt wohl an einer fehlerhaften Migration von Joomla 1.5.x auf 1.7.x mittels jUpgrade. Deswegen trat der Fehler auch bei der frischen Joomla Installation nicht auf.

Der Fehler ist schnell erklärt. Eine Datei, die den Update-Prozess steuert, wurde bei der Migration nicht korrekt ersetzt. Sie stimmt mit der aktuellen Datei aus der Full-Version nicht überein. Die Lösung gestaltet sich entsprechend einfach. Die momentan eingesetzte oder aktuelle Full-Version von Joomla herunterladen, und die fehlerhafte Datei mit der korrekten aus dem zip-Archiv ersetzen.

Es handelt sich um die Datei update.php im Verzeichnis /administrator/components/com_installer/models/. Diese Datei muss durch die aktuelle ersetzt werden.

Mit der aktuellen Version der Datei hat das Update im Bereich „Aktualisieren“ auf einmal wunderbar geklappt. 🙂

 

Dokuwiki 2009-12-25 „Lemming“ für Joomla

Seit einigen Tagen gibt es die neue Dokuwiki-Version 2009-12-25 „Lemming“. Um die neue Version in gewohnter Weise in Joomla zu integrieren, das heißt mit AutoLogin unter Benutzung der Joomla-Benutzerdatenbank, muss man leider ein paar Zeilen Code ändern. Das ist notwendig, weil die Daten des Cookies, den Dokuwiki setzt um einen eingeloggten Benutzer zu erkennen, in der neuen Version etwas verändert wurden. Und da das AutoLogin-Plugin diesen Cookie ebenfalls erzeugt, muss das Plugin angepasst werden.

Ich nehme an, dass bereits das AutoLogin-Plugin sowie die Dokuwiki-Bridge installiert und konfiguriert sind.

Um die Änderungen durchzuführen, öffnet ihr die Datei plugins/user/dokuwikilogin.php. Das könnt ihr entweder mit Hilfe eines FTP-Programms machen, oder ihr benutzt dazu eXtplorer.

In dieser Datei müsst ihr folgende Zeile

 require_once ($dokuwiki_path . 'inc/blowfish.php');

um diesen Codeblock ergänzen. Dieser Code macht die die Dokuwiki-Konfiguration verfügbar.

 // Retrieve configuration parameters
 require_once ($dokuwiki_path . 'conf/dokuwiki.php');
 if (file_exists($dokuwiki_path . "conf/local.php")) {
     require_once ($dokuwiki_path . 'conf/local.php');
 }

Etwas weiter unten muss die Zeile

 $doku_cookie = 'DW'.md5($doku_rel);

durch diese ersetzt werden:

 $doku_cookie = 'DW'.md5($doku_rel.(($conf['securecookie'])?$_SERVER['SERVER_PORT']:''));

Außerdem noch diese Zeile

 $cookie = base64_encode("$username|$sticky|$password");

durch diese:

 $cookie = base64_encode($username).'|'.((int) $sticky).'|'.base64_encode($password);

Danach sollte Dokuwiki wieder ohne Probleme zu benutzen sein, sobald man sich neu bei Joomla angemeldet hat und keine Probleme mehr bereiten.