Hilfe:VoWi zum Selbermachen

From VoWi
Jump to navigation Jump to search

Das VorlesungsWiki ist ein normales MediaWiki 1.35.1 (details). Es verwendet einige 3rd Party Extensions, ein paar selbst geschriebene Extensions sowie eine Vielzahl an "Custom Hacks". Die meisten hat Fabian ursprünglich geschrieben und wurden von Mati gepatched, manche stammen direkt von Mati selbst.


3rd-Party Extensions

DynamicPageList (DPL)

Die Extension DynamicPageList hat eine lange Geschichte. Urspruenglich unter diesem Namen mit sehr beschraenkten Features entstanden, wurde sie von Fabian unter dem Namen "DynamicPageList2" aufgegriffen und erweitert und ist schliesslich sogar ins MediaWiki-SVN aufgenommen worden und wurde dort von einigen anderen Menschen weiterentwickelt. Mittlerweile heisst die Extension wieder nur "DynamicPageList", wird wieder von einem anderen Menschen weiterentwickelt und hat auch ein seperates DemoWiki.

Die DPL erlaubt es, eine Liste von Seiten, die bestimmte Kriterien erfüllen, dynamisch zu erstellen. So können u.a. Kategorien, Namensräume und Links-To anhand von logischen AND, OR und NOT verknüpft werden.
Wir verwenden diese Extension zum dynamischen erstellen von:

  • einer Auflistung aller LVAs. Dazu sind alle LVAs in Namensräumen (TU_Wien, Uni_Wien...) sortiert, die Liste inkludiert also alle Artikel, die in einem der dort angegebenen Namensraeume sind.
  • Auflistungen nach Studienplänen (z.B. dem Bachelorstudium Technische Informatik (535)). Dazu werden alle LVAs bestimmten Kategorien zugeordnet. Dies geschieht mittels Vorlage (etwa dieser hier).
  • Um z.B. Stubs und veraltete Artikel auszusortieren. Dazu werden ebenfalls Kategorien mittels Banner hinzugefügt. Eine Uebersichtsseite gibt es uebrigens unter VoWi:Moderation.

Wir verwenden gegenwärtig die Version 1.1.0 der DPL, allerdings ist sie leicht gepatched, um zu verhindern, das die Auflistung nach Namensräumen sortiert wird. Der Patch ist hier verfügbar.

Labeled Section Transclusion

Die Labeled Section Transclusion ist ebenfalls im VoWi installiert. Ursprünglicher Grund war eigentlich nur, dass diese Extension als Vorraussetzung für die DPL2 geführt wurde.

Mittlerweile wird diese Extension verwendet um die Beschreibungen der Banner in VoWi:Kategorien_und_Vorlagen#Studienplanzuordnungen automatisch zu erzeugen, eine Demo ist auch unter Benutzer:Mati/LST-test1 bzw. Benutzer:Mati/LST-test2 verfügbar. (Um zu verstehen was daran jetzt so cool ist, musst du aber bei beiden Artikeln auf "Bearbeiten" klicken).


Selbst geschriebene Extensions

Einige Einstellungen werden von mehreren Hacks verwendet:

# If the name of a namespace is displayed and its ID is listed
# in this array, the name will be a link that points to the
# the corresponding value.
# i.e. "TU Wien" will become "[[Alle LVAs (TU Wien)|TU Wien]]"
# assuming that "TU Wien" is a namespace with the ID 100
$wgNamespaceHomes = array(
        100                     => "Alle LVAs (TU Wien)",
        102                     => "Alle LVAs (Uni Wien)",
        104                     => "Alle LVAs (MU Wien)"
);

Der Code aller selbst geschriebener Extensions ist unter die GPL gestellt.

SimilarNamedArticles (a.k.a. LVASuche)

Die SimilarNamedArticles-Extension (ehemals LVASuche) ist eine selbst programmierte Extension, die

  1. es erlaubt "allgemeine Links" auf LVAs zu setzen. Siehe hier für eine Erklärung.
  2. verantwortlich ist für die Auflistung gleichnamiger LVAs über den Artikeln. Siehe hier für ein Beispiel.

Die Extension gibt es hier zum download. Beachte jedoch, dass speziell SimilarNamedArticlesHook.php sehr VoWi-spezifischen Code hat - siehe Zeile 31. Es ist aber nicht mehr noetig den MediaWiki Source-Code selbst zu patchen.

Installation

Damit die Extension funktioniert muss nur das Archiv in den extensions/ ordner entpackt werden. Natuerlich muss LocalSettings.php auch noch modifiziert werden:

require_once ("$IP/extensions/SimilarNamedArticles/SimilarNamedArticles.php");
$wgSNA_SearchEnable = true;
# enable display of similar named articles above article:
$wgSNA_aboveArticleEnable = true

Konfiguration

Hier einfach die Konfigurationsvariablen mit (hoffentlich) selbsterklaerenden Kommentaren:

# This influences in what namespaces this extension will search for similar
# named articles. If this variable is omitted, $wgNamespacesToBeSearchedDefault will
# be used instead.
$wgSNA_Namespaces = array( 100, 102, 104, 106 );
 
# Only articles in a namespace listed here will have the header above the article.
$wgSNA_aboveArticleNamespaces = array ( 100, 102, 104, 106 );

# Append the namespace in braces after each article
$wgSNA_addInfoNamespace = 1;

# With $wgSNA_addInfoCategories you can add categories as additional information after each
# found article.
#  * "all" is a magic keyword. If it is found anywhere within the array, all categories that
#    the article is in will be diplayed.
#  * If just a value is inserted, the name of the category will be displayed, if the article
#    is in the category.
#  * If you insert a key => value pair, the value will be treated as the "home" of that
#    category, that is, it will display a link to that page.

# Here are several examples:

# Display if article is in "Some category", as well as display a link to the Category-page
# of "Other category"
# $wgSNA_addInfoCategories = array ( "Some category",
#             "Other category" => ":Category:Other category");

# Display all categories
# $wgSNA_addInfoCategories = array ( "doesnt matter whats here", "all", "foo" => "bar");

# here is what we use in our wiki:
$wgSNA_addInfoCategories = array ("Stub", "Veraltet", "Illegal", "Veränderter Ablauf");

Werden keine weiteren Einstellungen vorgenommen, sucht die Extension nur im Main-Namensraum. Ist die Variable $wgNamespacesToBeSearchedDefault gesetzt (sie beeinflusst eigentlich das Verhalten der Suche) sucht sie in den dort angegebenen Namensraeumen.
Du kannst aber auch die zu durchsuchenden Namensräume händisch angeben:

NewArticleTemplates

NewArticleTemplates ist ebenfalls eine selbstprogrammierte Extension, die es erlaubt ganz normale Artikel als Vorlagen für neue Artikel zu definieren. In der aktuellen Version ist es möglich je nach Namensraum unterschiedliche Vorlagen zu verwenden. Die Extension gibt es hier zum herunterladen.

Die gegenwärtige Version erlaubt nun eine sehr feine Einstellung für welche Artikel welche Vorlagen verwendet werden. Hier ein Ausschnitt aus LocalSettings.php:

# enable everything first:
$wgNewArticleTemplatesEnable = true;
# These Namespaces will have a Template.
$wgNewArticleTemplatesNamespaces = array(
        100                     => 1,
        102                     => 1,
        104                     => 1,
        106                     => 1
);
# You can define a different Template for every Namespace:
$wgNewArticleTemplates_PerNamespace = array(
        100                     => "MediaWiki:NewArticleTemplate",
        102                     => "MediaWiki:NewArticleTemplate",
        104                     => "MediaWiki:NewArticleTemplate",
        106                     => "MediaWiki:NewArticleTemplate"
);
# In case a namespace is listed in $wgNewArticleTemplatesNamespaces but not
# in $wgNewArticleTemplates_PerNamespace, use this Article as a Template:
$wgNewArticleTemplatesDefault = "MediaWiki:NewArticleTemplate";

$wgNewArticleTemplatesDefault muss nicht unbedingt gesetzt werden, wenn alle Namensräume aus $wgNewArticleTemplatesNamespaces ein eigenes Template in $wgNewArticleTemplates_PerNamespace definiert haben. Umgekehrt müssen Namespaces nicht in $wgNewArticleTemplates_PerNamespace definiert werden, wenn $wgNewArticleTemplatesDefault gesetzt ist.

Für die Bequemlichkeit hab ich noch eine eigene Spezialseite programmiert:

HTTPS Login

Unser MediaWiki verwendet automatisch https fuer Anmeldungen und wechselt nachher automatisch wieder auf http zurueck. Dafuer gibt es eine Extension, die sehr stark an den Code von hier angelehnt ist. Die Extension kann hier heruntergeladen werden, zum aktivieren reicht ein simples require_once in LocalSettings.php.

Wenn du das MediaWiki in einer anderen Sprache verwendest, musst du allerdings noch Zeile 26 aus httpsLogin.php editieren, dass sollte aber selbsterklaerend sein.


Custom Hacks

Die im folgenden zum Download bereitgestellten Patches sind

  1. selbst geschrieben und
  2. speziell für die Version 1.9.0 von MediaWiki erstellt worden.

Da sich der Code von MediaWiki selbst immer wieder ändert ist es wahrscheinlich, dass die Patches bei zukünftigen (oder früheren) Versionen nicht mehr funktionieren. Die patches sind daher lediglich als Orientierung gedacht, am besten ist es wohl noch immer, sie händisch einzuspielen.

CustomNavBlocks

Ermöglicht die genau Gestaltung der Sidebar: Liest den Artikel MediaWiki:CustomNavBlocks worin untereinandergeschrieben die Beschreibungen der einzelnen Blöcke in der Sidebar im Format

Artikeltitel|Titel

liegen. Artikeltitel ist ein Artikel im MediaWiki-Namespace der den Blockinhalt beschreibt. Titel wird über dem Block angezeigt. Der Artikelname sollte mit CustomBlock beginnen um nicht mit anderen MediaWiki-Artikeln zu kollidieren.

Da MonoBook.php selber keine passenden Hooks hat, kann diese Funktionalitaet nicht als einfache Extension implementiert werden sondern erfordert zusaetzlich das patchen von MonoBook.php. Dieser Patch befindet sich hier. Weiters muss noch die Datei customnavblocks.php ins extensions/ Verzeichnis kopiert werden.

Category-Sorting

Aus unerfindlichen Gründen sortiert unser MediaWiki die Seiten einer Kategorie nicht nach Titel sondern zuerst nach Namensraum und dann nach Titel. Ausserdem wird in der Artikelliste immer der Namensraum mit angezeigt, was uns nicht besonders gefallen hat.

Dieser Patch fuer MediaWiki Version 1.9.3 (1.9.0) behebt das Sortierungsproblem, es gibt auch einen ganz ähnlichen Patch für die DPL2, siehe oben. Und hier ist der Patch, der bewirkt, dass die Namensraeume in der Kategorieansicht nicht mehr angezeigt werden.

Beliebte Seiten

Es gibt eine Spezialseite namens Spezial:Popularpages, die die am haeufigsten aufgerufen Seiten auflistet. Aus unerfindlichen Gründen listet die Seite aber nur Seiten aus dem 'Main' Namensraum auf, was wirklich unpraktisch sind, da alle unsere LVA-Artikel ja in eigenen Namensraeumen liegen.

Ein simpler, zweizeiliger Patch behebt das Problem.

/wiki/ redirect

Verwendet man die mitgelieferten .htaccess um /wiki/-URLs zu ermöglichen bekommt man Probleme mit Artikel in deren Titel ein "kaufmännisches Und" ('&') verwendet wird. Ein Workaround dazu: 1. In die .htaccess folgendes eintragen:

RewriteEngine off

<Files "wiki">
   ForceType application/x-httpd-php
   Allow from all
</Files>

2. Ins Verzeichnis der MediaWiki-Installation eine Datei 'wiki' mit folgendem Inhalt anlegen:

<?php include_once('index.php');?>

3. in LocalSettings.php

$wgScript           = "$wgScriptPath/index.php";

ersetzen durch

$wgScript           = "$wgScriptPath/wiki";


Download

Well be here.

Verwendung / Lizenz

Es steht jeder und jedem frei die Patches zu verwenden, GPL, wie ich schon sagte. Meine einzige Bitte ist dass ihr mir eure Änderungen die ihr evtl. an MediaWiki macht wieder zukommen lässt. Genauso werde ich meine zukünftigen Patches wieder online stellen.

Liste aller VoWi Schwestern

Es wäre cool eine Liste mit VoWi Schwestern zu pflegen. Vielleicht können wir ja mal InterWiki-Links verwenden oder was anderes studienrichtungsübergreifendes machen. :-)

  • Linguistik-Wiki (LiWi): An dieses Wiki angelehnete Vorlesungswiki für das Linguistik- und Indogermanistikstudium. Neben den LVA-Rezensionen können dort auch POs und Mitschriften gemeinsam erstellt werden (in der Theorie zumindest mal). (geschaffen von Murmel)
  • Germanistik-Wiki (GermWiki): An das VoWi und LiWi angelehnt, ist das zentrales Anliegen des GermWiki das Sammeln von Informationen (Mitschriften, Prüfungsfragen und LV-Beschreibungen) zum Germanistik-Studium der Uni Wien.
  • Psycho-Wiki: An das VoWi angelehntes Vorlesungswiki für das Wiener Psychologiestudium, dessen Neuerung gegenüber den anderen VoWis besonders in einem eingebauten Poll-System besteht.