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.

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

  1. 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

  2. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert