Podcast-Wiki Physik

PodcastWiki:Vorlagen

Vorlagen sind ein zentrales Feature von MediaWiki und werden in der Podcast-Wiki intensiv verwendet. Vorlagen ermöglichen es, wiederverwendbare Elemente in Seiten einzubinden und sogar Platzhalter in diesen Elementen zu ersetzen. Diese Seite dokumentiert etwas, wie Vorlagen in PodcastWiki funktionieren.

Grundlagen zu Vorlagen

Vorlagen sind normale Wikiseiten im Namensraum Vorlage:. Hier gibt es eine Übersicht alle Vorlagen in PWP. Mit Vorlagen in Vorlagen sowie Parserfunktionen kann man viele tolle Sachen machen, die einer Seite einen "dynamischen" Flair geben oder den Syntax besonders einfach oder elegant halten. Insbesondere eignen sich Vorlagen auch dazu, schwierigen MediaWiki-Syntax zu verstecken - eben hinter der Maske einer einfachen Vorlagen. Zur Syntax und Benutzung von Vorlagen im Allgemeinen siehe Hilfe:Vorlagen in der Mediawiki-Doku sowie die ausführlichere Hilfe:Vorlagen in Wikipedia. Dort gibt es auch eine exzellente Hilfe zur Vorlagenprogrammierung. Vorlagen funktionieren in PodcastWiki völlig analog. Viele Vorlagen sind Hilfsvorlagen, die von Wikipedia eins zu eins kopiert werden können.

Eine schwierige Vorlage analysiert

An dieser Stelle soll der Quelltext der Vorlage:Video diskutiert werden. Sie ist ein Paradebeispiel einer Vorlage, die den komplizierteren Syntax von MediaWiki vor dem Schreiber einer Seite "versteckt". Sie fängt an mit so etwas wie:

<includeonly><!--
   Seitenüberschrift (optional):
-->{{#if: {{{Seitenüberschrift|}}} | {{Seitenüberschrift|{{{Seitenüberschrift}}}}} | }}<!--
   "Nicht veröffentlicht"-Hinweisbox bei noch nicht veröffentlichten Videos:
-->{{#ifeq: {{{Veröffentlicht|Nein}}} | Nein | {{Unveröffentlicht}} | }}

Hier fängt es an mit includeonly, was besagt, dass der Inhalt nur verwendet wird, wenn die Vorlage eingebunden wird, sodass man auf der gleichen Vorlagenseite auch noch eine Dokumentation der Vorlage schreiben kann. Dann werden Kommentare verwendet, die dem HTML-Syntax folgen. Anschließend wird bereits eine Parserfunction verwendet (siehe Vorlagenprogrammierungslink oben), der überprüft, ob ein Paramter (Notation mit drei geschweiften Klammern) gesetzt ist oder nicht. Falls ja, wird die Vorlage:Seitenüberschrift eingebunden, welche ihrerseits den MediaWiki-Syntax beinhaltet, um die Seitenüberschrift anzupassen. Etwas ähnliches macht auch die nächste Zeile mit der Vorlage:Unveröffentlicht, die lediglich eine Box anzeigt, also sehr einfach zu verstehen ist.

Was dann folgt, ist ein Feature der Semantic Mediawiki:

{{#set:
| Videotitel = {{{Videotitel}}}
| Untertitel = {{{Untertitel}}}
| Länge = {{{Länge}}}
| Videopfad = {{SERVER}}/{{{Videopfad}}}
| Dateinamensprefix = {{{Dateinamensprefix|}}}
...

Hier werden Vorlagenparameter quasi eins zu eins übergeben an eine SMW-Funktion, die Attribute für die Seite setzt. Was das beduetet, ist auf PodcastWiki:Semantic Mediawiki erklärt.

Zuguterletzt noch eine bedingte Kategorisierung:

<!--
   Kategorisierung je nachdem, welchen Zustand das Video hat.
-->{{#ifeq: {{{Veröffentlicht|Nein}}} | Nein | [[Kategorie:Unveröffentlichtes Video]] | [[Kategorie:Veröffentlichtes Video]] }}

Diese stellt sicher, dass die Videoseite, die die Vorlage:Video einbindet, immer entweder in Kategorie:Unveröffentlichtes Video oder Kategorie:Veröffentlichtes Video eingebunden wird.

Im Quelltext von Vorlage:Video folgt dann nur noch dokumentarischer Code.

Fazit: Wenn man weiß, wo die Syntax, die Verwendung findet, dokumentiert ist, kann man auch durch so eine Vorlage steigen.

Dokumentation ist allerdings das A und O. Die Bedeutung von Vorlagenparametern muss klar sein, ansonsten kann man sie nicht gescheit verwenden.