CMS

PmWiki: Ein Überflieger auf Text-Füßen

16. August 2007
von

WikiWiki steht im hawaianischen für schnell. Wiki als Content Management System (CMS) bedeutet schnelles Hinzufügen neuer und Verändern existierender Webseiten direkt im Browser.

PmWiki von Autor Patrick Michaud ist eine Wiki-Variante vorstellen, welche, basierend auf PHP 4 oder 5, ohne Datenbank auskommt. Überraschenderweise muß man bei der PmWiki im Vergleich zu der weit verbreiteten MediaWiki keinerlei Abstriche in der Funktionalität in Kauf nehmen.

Drei Arten von Content Management Systemen
Während bei traditionellen CMS die Strukturierung des Inhaltes thematisch in verschiedenen Hierarchie-Ebenen erfolgt, geschieht dies bei Blogs vor allem über die Chronologie der Einträge. Wikis verfügen dagegen meist über eine sehr flache Struktur ähnlich wie bei einem Lexikon. Wenn doch eine weitergehende Gliederung vorgegeben wird, kann, bedingt durch den offenen Charakter der Wiki, diese ohne administratives Eingreifen schnell wieder verlorengehen.

Klassische CMS verfügen von Haus aus über ein geordnetes System von Zugriffsrechten für jeden Autor, während bei den Blogs als originäre Einzelnutzersysteme und bei den Wikis getreu der Devise “Jeder darf Alles” dezidierte Zugriffsverwaltungen meist erst nachträglich eingebaut werden. Die Wikis setzen vor allem auf Versionierung. um unerwünschte Änderungen wieder rückgängig zu machen. Klassische CMS und Blogs bietem beim Erstellen der Texte webbasierte What You See Is What You Get (WYSIWYG)-Editoren oder BBCodes, wogegen Wikis eine einfach zu erlernende, gut lesbare Markup-Sprache mitbringen. Allerdings verfügt derzeit fast jede Wiki über eine andere Variante. So muss man leider jeden Dialekt neu erlernen. Mit dem neuen Standard des Creole-Markups könnte sich das allerdings demnächst ändern.

Hier eine Überblickstabelle zum Vergleich der Eigenschaften der verschiedenen Content Management Systeme:

Typ Autoren Zugangskontrolle Gliederung Editieren Versionierung
Wiki viele frei lexikalisch Wiki-Markup ja
klass. CMS viele Passwort inhaltlich WYSIWYG nein
Blog einer Passwort zeitlich WYSIWYG/ BBcode nein

Zwischen den Systemen gibt es natürlich fließende Übergänge. Wikis können eine Zugangskontrolle erhalten, Blogs werden um Kategorien erweitert und so weiter. Die Grenzen verwischen schnell bei der Weiterentwicklung der Software aber die Schwerpunkte bleiben erkennbar.

Die Wiki-Erfolgsgeschichte
Der Erfolg der von Ward Cunningham 1994 erfundenen Wiki beruht auf der Einfachheit der Benutzung und ihrem Gemeinschafts-Charakter. Direkt im Webbrowser können die Anwender neue Einträge anlegen und existierende korrigieren und erweitern. Durch die Verteilung der Arbeit auf viele Schultern entstehen schnell umfangreiche Dokumentationen. Das bekannteste Beispiel dafür ist sicher das Online-Lexikon Wikipedia. Wikis können für viele Arten von Texten genutzt werden, als Sammlung von Code-Schnipseln, Ideen, ToDo-Listen oder zur Dokumentation von Arbeitsabläufen. Anstatt diese Dinge lokal auf den Festplatten einer Arbeitsgruppe zu verstreuen, werden sie zentral verwaltet und sind bedingt durch die Suchfunktionen der Wiki-Software schnell wieder auffindbar. Wird das Wissen der Mitarbeiter in einer Wiki abgelegt, so steigt die Produktivität erheblich.

Eine weitere Ursache für die Erfolgsgeschichte der Wikis liegt in der guten Lesbarkeit der verwendeten Markup-Sprache begründet. Dieses ergibt sich aus der sparsamen Verwendung nicht alphanumerischer Zeichen für die Markup-Syntax. Derartige Zeichen versucht das Auge wegen ihrer Unlesbarkeit weitgehend zu ignorieren. So verbraucht das PmWiki-Markup für eine Überschrift mit dem !-Symbol nur ein Zeichen, während das entsprechende HTML-Element deren 9, davon 4 alphanumerische, verbraucht. Dies geht natürlich zu Lasten der Lesbarkeit.

Die PmWiki im Vergleich mit der MediaWiki
wikimatrix foto

Die PmWiki wird seit 2002 vor allem von Patrick Michaud enwickelt. Michaud konzentriert sich gegenwärtig auf Bugfixes der neuen 2.2-Version. Beinahe wöchentlich erscheinen Fehlerbereinigungen und kleinere Verbesserungen.

Wer die PmWiki auf der WikiMatrix-Webseite mit der berühmten MediaWiki vergleicht, wird feststellen, dass die PmWiki insgesamt sogar ein Mehr an Funktionalität bietet. Das bei der PmWiki keine Datenbank benötigt wird, erleichtert außerdem die Installation und senkt die Ansprüche an den Server beziehungsweise an den Webauftritt des Nutzers. So ist gegenwärtig auf der weltweit größten Entwickler-Plaftform Sourceforge die aktuelle Version der MediaWiki nicht installierbar, da Sourceforge nicht die aktuelle Variante der MySQL-Datenbank bereitstellt. Ob die Dateien als Datenbank-Einträge oder in Text-Dateien vorliegen, kann dem Anwender letztendlich gleichgültig sein. Die Vorteile der Verwendung einer Datenbank liegen bei einer Wiki-Software beim Programmierer aber nicht beim Benutzer.

Installation
pmwiki install foto

Die PmWiki ist bescheiden im Platzverbrauch. Das 400kb Download der letzen stabilen Version 2.1.27 beziehungweise der letzten Beta (2.2.0) benötigt nur 3 Mb auf der Festplatte. Verzichten muß man bei der PmWiki auf eine benutzergeführte Installation. Hier ist nach dem Auspacken der Archivdatei und dem ersten Aufruf der Startwebseite pmwiki.php etwas Handarbeit durch das Editieren der Datei local/config.php notwendig. Die Datei muß zuvor manuell erstellt werden, zum Beispiel durch das Kopieren und Umbenennen der Datei docs/sample-config.php. Durch diese manuelle Prozedur wird ein späteres Update des PmWiki-Codes erleichtert. Eine schon erstellte Konfigurationsdatei kann so nicht irrtümlicherweise überschrieben werden.

Hier eine Beispiel-Konfiguration:

 # Titel und Logo $WikiTitle = "Meine Beispiel-Wiki"; $PageLogoUrl = "http://www.beispiel.de/meinlogo.gif";

 # Passwoerter für Admin-Bereich und Uploads $DefaultPasswords['admin'] = crypt('onesecret'); $EnableUpload = 1; $DefaultPasswords['upload'] = crypt('secrettwo');

 # Zeitformat putenv("TZ=EST5EDT"); $TimeFmt = '%B %d, %Y, at %I:%M %p EST';

 ## News-Feeds ermöglichen if ($action == 'rss') include_once('scripts/feeds.php'); # RSS 2.0 if ($action == 'atom') include_once('scripts/feeds.php'); # Atom 1.0

Um PmWiki ohne eine Angabe der PHP-Datei aufrufen zu können, sollte man eine Datei index.php oder index.php5 mit folgendem Inhalt erstellen:

 <?php include('pmwiki.php'); ?>

Hervorzuheben ist, dass die PmWiki auch unter der auf dem Webserver häufig verwendeten Konfiguration safe_mode=on funktioniert. Auf eine eventuell anzutreffende Fehlermeldung muss lediglich der beanstandete Ordner wiki.d per FTP-Programm manuell angelegt werden.

Wiki-Seiten erstellen und bearbeiten
Nach der Installation kann man sofort mit dem Verändern der Startseite Main.HomePage und dem Erstellen neuer Seiten beginnen. Jede Wiki-Seite verfügt über einen Link zum Bearbeiten oder Editieren der Seite. Beim Klicken auf diesen Link öffnet sich ein Textarea-Element, welches den aktuellen Text der Wiki-Seite enthält. Am Fuß der Seite ist eine Übersicht über die wichtigsten Formatierungsbefehle als Editierhilfe vorhanden. Will man eine neue Seite erstellen, gibt man einfach den gewünschten Seitennamen in doppelten rechteckigen Klammern ein:

 [[Meine Ideen]]

Main.WikiSandbox

Die Wikiseiten können in sogenannten Gruppen angeordnet werden. Dazu trennt man bei neu einzugebenen Seiten die Kategorie vom Seitennamen durch einen Schrägstrich oder Punkt. Auf diese Weise sind zum Beispiel auch gleiche Seitennamen in unterschiedlichen Gruppen möglich. Standard ist, dass jede Seite zu der Gruppe gehört, in der sie gerade erstellt wird. Durch explizite Benutzung des Gruppen-Prefixes kann die Seite einer anderen Gruppe zugeordnet werden. So legt der Nutzer Otto zum Beispiel seinen Bereich mit Otto.HomePage an. Dort legt er seine eigene ToDo-Seite mit

      [[ToDo]]

Main.ToDo

 !! Otto (:include Otto.ToDo:) !! Fritz (:include Fritz.ToDo:)
pmwiki todo foto

Die Markup-Sprache
In der Datei local/config.php kann statt des PmWiki-Markups auch der neue Standard das Creole-Markup eingestellt werden. Dieser soll dem Format-Wirrwar – jeder Wiki ihr Markup – ein Ende bereiten. Gegenwärtig wird Creole von 10-Wiki-Implementierungen unterstützt und es werden wohl schnell mehr werden. Da die Dokumentation der PmWiki aber noch nicht auf die Verwendung des Creole-Markups angepasst ist, sollten unerfahrene Nutzer erst einmal mit dem PmWiki-Markup Erfahrungen sammeln. Hier in der Gegenüberstellung (Tabelle im neuen Fenster) die wichtigsten Markup-Regeln für PmWiki, Creole und MediaWiki.

Die PmWiki demonstriert hier ihre Wandlungsfähigkeit, indem man in der Konfigurationsdatei eigene Markup-Befehle einfügen kann. Hier Beispielzeilen, welche die Creole-Formatierung für bold und italics umsetzen:

 Markup("//", "inline", "/\/\/(.*?)\/\//", "<i></i>"); # //italic// Markup("**", "inline", "/\*\*(.*?)\*\*/", "<b></b>"); # **bold**

Danach kann man alternativ entweder das PmWiki- oder das Creole-Markup benutzen. Für mehr Information zu diesem Thema sollte man die PmWiki.CustomMarkup-Seite konsultieren.

Deutsche Oberfläche
Um die deutsche Oberfläche für die PmWiki einzustellen, ist von der Internationalisierungsseite die Datei i18n-de.zip herunterzuladen und in die PmWiki-Installation zu entpacken. In der Konfigurationsdatei local/config.php ist dann der Eintrag:

 XLPage('de','PmWikiDe.XLPage');

PmWiki-Erweiterungen
Der Kern der PmWiki-Software beschränkt sich nach Aussagen des Autors auf die Bereitstellung der wichtigsten Funktionalität. Wenn man sich die Dokumentation durchliest, wird man erkennen, dass wichtig hier sehr weit gefasst ist. Will man die PmWiki dennoch erweitern, sollte man sich dazu im Bereich Cookbook der PmWiki-Webseite umsehen. Das gilt zum Beispiel für fortgeschrittenere Methoden der Kontrolle des Nutzerzugangs. Prinzipiell ist festzustellen, dass über solche “Kochrezepte” und mit etwas PHP-Kenntnissen fast jede gewünschte Funktion eingebaut werden kann. So ist zum Beispiel über Plugins sowohl Datenbank-Unterstützung [sic] als auch SVG-Grafik-Erstellung und PDF-Export machbar. Des Weiteren kann die PmWiki auch als Standalone-Anwendung ohne Webserver betrieben werden.

Zugangskontrolle
Im Intranet einer Firma oder eines Institutes mag eine Wiki durchaus ohne Zugangskontrolle auskommen, im Internet wird man allerdings früher oder später mit den Einträgen von Spammern konfrontiert. Um dieser Plage Herr zu werden, empfiehlt sich der Einsatz eines Passwortschutzes. Die PmWiki bietet dazu verschiedene Möglichkeiten. Am einfachsten ist die Vergabe eines globalen Passworts für das Editieren oder Ansehen von Wiki-Seiten. Damit das Passwort nicht im Klartext in der Datei local/config.php steht, kann man es auf der Seite: pmwiki.php?n=PasswordsAdmin?action=crypt verschlüsseln. Anstatt des Klartextes trägt man dann den verschlüsselten Text ein.

 foto

Für unsere PmWiki-Installation vergeben wir hier zum Beispiel das Passwort pmwikipass und tragen, nachdem uns PHP dieses Word verschlüsselt hat, etwas wie die folgende Zeile in die Konfigurationsdatei ein:

 $DefaultPasswords['edit']='$cB0./C5.$JBqc4ASxLafItNT.sdx.I.';

Nach dem Speichern dieser Änderung wird man vor dem Editieren einer Datei zur Eingabe des Passwortes aufgefordert. Es ist dabei wichtig zu wissen, dass das Resultat der Verschlüsselung variieren kann und das man das verschlüsselte Passwort häufig nicht auf einen anderen Server transferieren kann. Der Webserver reagiert sonst eventuell mit einer Fehlermeldung. Eine ausführliche Beschreibung der Verschlüsselungsprozedur findet sich auf der PmWiki.PasswordsAdmin-Seite. Für die Vergabe von unterschiedlichen Rechten einzelner Autoren in den verschiedenen Bereichen der Wiki ist die PmWiki.AuthUser-Seite zu konsultieren.

PmWiki-Themen
Das Aussehen der PmWiki kann durch Themen, auch Skins genannt, an die Wünsche des Anwenders angepasst werden. Auf der Themenseite der PmWiki gibt es einige dutzend Beispiele. Das beliebteste Wiki-Thema überhaupt ist wahrscheinlich das Standard-Thema der MediaWiki, daß sogenannte Monobook-Thema. Auch für die PmWiki gibt es dieses Thema. Zur Installation sind die Themen-Dateien in einen pub/skins/monobook-Ordner zu entpacken und anschließend ist das Thema in der Datei local/config.php mit:

       $Skin = 'monobook'; 

Die MediaWiki verfügt auch über Diskussionsbereiche für jeden Eintrag. Mit Hilfe einer Cookbook-Erweiterung kann diese Fähigkeit auch in die PmWiki-übertragen werden. Für das Monobook-Thema ist das jedoch etwas schwierig umzusetzen. Deswegen enthält der Download am Ende des Artikels die entsprechenden Änderungen, um die Diskussions- oder Talk-Seite zum Laufen zu bringen.

 foto

Zusammenfassung
Hervorzuheben ist bei der PmWiki neben den vielen Features auch die umfangreiche Dokumentation. Diese stellt sonst bei Open Source Projekten leider oft ein Stiefkind dar. Wer Fragen oder Probleme hat, sollte sich im Dokumentations-Index oder auf den Mailing-Listen umsehen. Es existiert des Weiteren auch eine deutschsprachige Fassung von Teilen der Dokumentation. Damit man sich etwas Handarbeit sparen kann, habe ich dem Download dieses Artikels eine deutschsprachige Version der PmWiki mit dem Monobook-Thema, dem Diskussions-Tab und einer einfachen Zugangskontrolle beigefügt: pmwiki2.2.zip. Für den interessierten Leser ist für einige Zeit eine Testversion der aktuellen PmWiki zum Ausprobieren installiert. Wem die PmWiki nicht gefällt, dem seien aus dem Bereich der textdateibasierten Datenbanken noch die kleine aber feine LunaWiki und die DokuWiki empfohlen. Letztere verfügt über eine adminstrative Oberfläche und unterstützt 39 Sprachen. Allerdings schlagen sich diese Fähigkeiten auf den verbrauchten Platz nieder. Ohne Inhalte und ohne Dokumentation verbraucht die DokuWiki 30Mb Festplattenplatz, davon alleine 16MB für die Internationalisierung. Hinweise und Kommentare zum Artikel an den Autor: em 4 foto

Erstveröffentlichung 16.08.2007

 foto

Detlef Dr. Groth

Dr. Detlef Groth, von Beruf Biochemiker und IT-Konsultant, arbeitet als Bioinformatiker und Autor in Potsdam und Umgebung.

Ein Kommentar? Schön!

Wir freuen uns immer über Leser, die durch nützliche und konstruktive Beiträge zum Thema eine Diskussion anstoßen oder den Artikel mit weiteren Informationen anreichern. Alle Kommentare werden in diesem Sinne moderiert. Zum Kommentar-Fairplay gehört für uns auch der Einsatz von rel="nofollow". Bitte verwenden Sie zudem als Namen weder eine Domain noch ein spamverdächtiges Wort. Vielen Dank!

*