Dokuwiki Plugin: showpageafterlogin

Dokuwiki ist eine Wiki-Software, die sehr leichtgewichtig ist, ohne Datenbank auskommt und, wie es inzwischen Standard ist, durch eine Vielzahl von Plugins mit zusätzlicher Funktionalität versehen werden kann.

Ich habe bisher zwei Websiten mit Dokuwiki aufgesetzt: Das Fantasylife Item Wiki  sowie die deutsche Stardew Valley Fansite. Beide tun ganz wunderbar und pflegeleicht ihren Dienst.

 

Beim Fantasy Life Item Wiki bin ich mit der Grundfunktionalität und einigen wenigen Plugins gut ausgekommen. Die Stardew Valley Fansite hat einen deutlich größeren Scope, wodurch ich hier mehr Plugins verwendet habe und darüber hinaus eine ganze Reihe von Anpassungen selbst vorgenommen habe – neben einem eigenen Template gehörten da auch funktionale Anpassungen hinzu. Da Dokuwiki eine leicht zugängliche Plugin-API bietet, habe ich mich letztes Wochenende darin versucht, einer dieser Anpassungen in ein Plugin zu packen.

Der Anwendungsfall

Meine Absicht war es, Usern, die sich frisch im Wiki registrieren, eine Art Willkommensseite anzuzeigen, unter anderem um sie auf die How-Tos zu verweisen, die das Pflegen von Seiten in der vorhandenen Wikistruktur erläutern. Zu meiner Überraschung gab es dafür weder Standardfunktionalität noch ein Plugin ( … oder ich hab es nicht gefunden).

Eventbasierte Plugins

Dokuwiki unterteilt seine Plugins selbst in verschiedene Arten. Eine Art sind Actions-Plugins – es gibt eine ganze Reihe an Events, die Dokuwiki feuert und bei denen man mittels Hooks ein Plugin davor bzw. dahinter schalten kann. Das macht einem Dokuwiki ganz einfach mit einem Methodenaufruf.

Da ich nach dem Login prüfen wollte, ob es sich um einen neuen User handelt, habe ich mich an das ACTION_SHOW_REDIRECT Event gehangen, das immer losläuft, sobald ein Redirect stattfindet – was scheinbar hauptsächlich nach einem Login/Logout der Fall ist, da Dokuwiki dann bemüht ist, den Nutzer auf die vorher geöffnete Seite umzuleiten.

Konfigurierbarkeit

Auch in Sachen Konfigurierbarkeit macht es Dokuwiki dem geneigten Pluginentwickler sehr, sehr einfach. Ein Key-Value Eintrag in der conf/metadata.php reicht aus, um die Option in den Dokuwiki Einstellungen anzuzeigen. Dazu dann noch Standardwert und Übersetzung eintragen und im Plugin selbst per Methodenaufruf auslesen – fertig.

 

Das alles führt dazu, das das Plugin selbst es nicht einmal auf 100 Zeilen Code schafft.

showpageafterlogin

Die Funktionalität

showpageafterlogin protokolliert in einer eigens geführten JSON-Datei die Logincounts des Users und ändert die ersten, konfigurierbaren X Mal das Ziel des Umleitungsevents. Fertig.

Konfiguration

Konfigurierbar sind hier zwei Werte.

page_after_login Seite, die nach dem Login angezeigt werden soll
login_display_count Anzahl der Logins pro User, die auf das Ziel umgeleitet werden sollen

Wird login_display_count auf 0 gestellt, greift die Umleitung immer.

Code und Dokumentation

Die Codebase des Plugins ist auf Github zu finden, die Dokumentation (in englisch) im offiziellen Dokuwiki-Wiki.

 

Solltet ihr euch selbst an einem Dokuwiki-Plugin versuchen wollen, dem lege ich den Plugin Wizard von Dokuwiki sehr ans Herz. Er stellt euch eine vollständige Projektstruktur zur Verfügung und ihr könnt sofort loslegen. Generell bietet Dokuwiki viel brauchbare Dokumentation, die das Entwickeln einfach machen, etwa zu verfügbaren Events.

Schreibe einen Kommentar

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