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.
Moin,
wo genau muss dieser fünfzeilige Codeblock eingesetzt werden? Direkt hinter die Zeile require_once ($dokuwiki_path . ‚inc/blowfish.php‘); ? Bei mir will das nicht klappen.
Viele Grüße,
Andreas
Ja, eigentlich schon.
Der Codeblock lädt zwei Dateien, in denen die Konfiguration von Dokuwiki gespeichert ist. Und diese Konfigurationsvariable ($conf) wird dann in der nächsten zur ersetzenden Zeile verwendet, also sollte der Codeblock auf alle Fälle vor ihr stehen.
Es könnte auch sein, dass man die vorhandenen (defekten) Cookies von Dokuwiki nach der Änderung erstmal löschen muss. Da bin ich mir gerade nicht mehr sicher, glaube aber dass ich das machen musste, bevor es dann funktioniert hat.