Weblog mit Mediawiki
Seit fast 2 Jahren habe ich nun Artikel in Form von Weblogs veröffentlicht. Zuerst habe ich ein selbstgeschriebenes Weblog verwendet, dann BLOG::CMS und dann Wordpress. Aber keines der Systeme konnte mich zufriedenstellen weshalb ich auf MediaWiki umgestiegen bin, weil die Syntax sehr einfach ist und man vor allem Sourcecode schnell und unkompliziert integrieren kann.
Bis heute blieb jedoch die Frage, wie ich möglichst unkompliziert eine "Weblog"-Sektion in Mediawiki erstellen kann, die sich ähnlich verhält wie die in WordPress (oder eines anderen Weblogs): In einer Liste sollen Beiträge, chronologisch sortiert aufscheinen und jeweils nur eine Vorschau angeboten werden. Nach einem Klick auf "Weiter" soll der gesamte Artikel erscheinen. Dinge wie RSS oder Kommentare sind nicht wichtig für mich.
Import der alten Artikel
Von Artikeln, die ich vom alten Weblog übernommen habe, muss das Erstellungsdatum geändert werden. Das geschieht über die Tabelle "articles" und "revisions". In Articles wird der betreffende Artikel rausgesucht damit man an die ID kommt. Diese wird dann in "revisions" gesucht und beim ersten Eintrag das Datum auf das ursprüngliche geändert. Die Weblogeinträge selbst sind normale Wiki-Seiten.
Kategorie Weblog
Um die Weblogartikel gruppieren zu können werden sie einer speziellen Kategorie zugeordnet: Weblog.
Vorschau
In jedem Artikel wird nun die Vorschau "markiert", die in der Liste erscheinen soll. Das geschieht mit:
<ssection begin="head"/> Artikelkopf <ssection end="head"/> Rest des Artikels
Die Extension DynamicPageList2
Mit der Extension DynamicPageList2 ist genau das möglich was ich suche: Die Erweiterung sucht sich aus einer oder mehreren Kategorien eine Liste von Artikeln zusammen und stellt sie in beliebiger Form dar. Die Möglichkeiten der Erweiterung sind scheinbar unbegrenzt.
Sie wird eingebunden mit folgender Zeile in LocalSettings.php:
require_once('extensions/DynamicPageList/DynamicPageList2.php');
Die folgenden Optionen jedoch sind optimal für mein Weblog:
<DPL>
category=Weblog
ordermethod=firstedit
order=descending
addeditdate=true
mode=userformat
format= __NOEDITSECTION__ __NOTOC__ ,\n===[[%PAGE%|%TITLE%]]===\n'''%DATE%'''\n,\n\n''[[%PAGE%|mehr...]]''\n----,
include=head
</DPL>
Auf der Hauptseite kommt genau der obige Code hin und wird um folgende Zeile erweitert:
count=7
Damit werden nur die ersten 7 Artikel dargestellt. Eine neue Seite "Weblog" wird erstellt die den obigen Code ohne den count-Parameter enthält. Das ist nun die Seite, die alle Weblogartikel enthält.
Beschreibung der Parameter
- category=Weblog
- Damit wird ausgewählt, dass alle Seiten, die in der Kategorie Weblog sind ausgewählt werden sollen
- ordermethod=firstedit
- Damit wird nach dem Datum der Erstellung sortiert (und nicht etwa nach Titel oder letzter Bearbeitung)
- order=descending
- Die letzten Artikel erscheinen zuerst und die ältesten zuletzt
- addeditdate=true
- Hiermit wird das Datum der Erstellung als Variable %DATE% verfügbar.
- mode=userformat
- Hiermit wird eingestellt, dass das komplette Ausgabeformat selbst eingestellt wird
- include=head
- Hiermit wird der jeweilige Artikel eingebunden und zwar nur der Teil, der im Abschnitt "head" enthalten ist.
- format=...
- Hiermit wird das Ausgabeformat bestimmt. Die Option besteht aus 4 Parametern die durch Beistriche getrennt sind: Der erste enthält Code für den Anfang der Liste, der zweite für die Überschrift jedes Artikels, der dritte für den Footer nach jedem Artikel und der vierte für den Gesamtfooter. NOEDITSECTION und NOTOC sorgen dafür, dass kein Inhaltsverzeichnis erstellt wird und die "Bearbeiten"-Links bei Überschriften entfernt werden. %PAGE% wird durch die Url zur Seite erstetzt, %TITLE% durch den Titel und %DATE% durch das Erstellungsdatum.