Weblog mit Mediawiki

Aus NOBAQ
Wechseln zu: Navigation, Suche
Mediawiki.jpg

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.


Inhaltsverzeichnis

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

Achtung, bitte hier ssection durch section ersetzen! Ich weiss nicht wie ich das richtig escapen kann, mit dem nowiki-Tag kann ich es nicht formatiert ausgeben...

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.

Kommentare

tp said ...

Habe das ganze in unserem Firmenintranet probiert - da komme ich mit ordermethod = firstedit in eine Endlosschleife.

Bei uns funktioniert nur pagetouched, und das ist problematisch, wenn in einem artikel nur eine kleinigkeit nachträglich ausgebessert wird, da sie wieder an die spitze der liste gesetzt wird - gibt es da vielleicht einen trick? lg tp

--tp 15:04, 3. Jul. 2009 (MSD)

Niki said ...

Mir ist leider keiner bekannt. Das ist offenbar ein Bug, mit einer bestimmten Version. Bei mir funktioniert es problemlos. Hast du vielleicht ein neueres MediaWiki? Am besten du setzt dich mit dem Autor der Extension in Verbindung...

--Niki 02:03, 6. Jul. 2009 (MSD)

Meine Werkzeuge