Hilfe:Tutorium/9

aus Wiki Aventurica, dem DSA-Fanprojekt
Version vom 12. Mai 2024, 07:00 Uhr von StipenTreublatt (Diskussion | Beiträge) (Seite überarbeitet)
(Unterschied) ← Nächstältere Version | Zeige aktuelle Version an (Unterschied) | Nächstjüngere Version → (Unterschied)
Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden
Tutorium-Logo
Mehr zum Thema
Hilfe:Vorlagen
SyntaxHighlight
ParserFunctions
StringFunctions
Hilfe:Variable
Hilfe:DPL
Kategorie:Vorlage
Spezial:Vorlagen expandieren
Tutorium
Einsteiger I Seiten bearbeiten II Seiten verlinken III Text formatieren
Mitarbeiter IV Artikel erstellen V Diskutieren VI Bilder hochladen
Experte VII Infoboxen VIII Vorlagen IX Programmieren
X Richtlinien

Vorwort

Auf dieser Seite gehen wir beim Thema „Vorlagenprogrammierung“ etwas mehr in die Tiefe - der normale Wikinutzer wird dies wohl nicht brauchen, daher kannst du diese Seite ohne schlechtes Gewissen überspringen. Wenn du allerdings daran interessiert bist, wie die Vorlagen dieses Wikis programmiert sind, kannst du gerne weiterlesen.

Um die auf dieser Seite angesprochenen Funktionen zu testen, bitten wir darum, die Seite Sandkasten/Test zu nutzen, und das Einbinden im Sandkasten dann mittels {{:Sandkasten/Test}} auszuprobieren. Zum Testen vorhandener Vorlagen kann auch die Seite Spezial:Vorlagen expandieren genutzt werden.

Gleich vorweg ein kleiner Hinweis: Klickt man in der Bearbeitungsansicht eines Artikels auf „Erweitert“, taucht am rechten Rand des Fensters ein kleines Symbol auf, das die „Suchen&Ersetzen“-Funktion startet. Möchte man in einem Artikel mehrfach den gleichen Code ändern, ist dies sicherlich bequemer als per Hand (für die Änderung mehrerer Artikel haben wir Bots).
Die „Suchen&Ersetzen“-Funktion bietet auch die Möglichkeit, Regular Expressions zu nutzen.

Tags (Etiketten)

Grundlegende Syntax für Tags
<tagname>Quelltext</tagname>

Wie auf der letzten Seite angesprochen, kann eine Vorlage einfach nur aus einem Text bestehen, der dann auf jeder Seite, in die die Vorlage eingebunden wird, angezeigt wird - aber schon bei Verwendung von Vorlage:Vorlagenhilfe stößt man auf die Tags „noinclude“ und „pre“. Desweiteren werden wir uns in diesem Abschnitt noch die Tags „includeonly“, „onlyinclude“, „nowiki“, „code“ und „syntaxhighlight“ anschauen.

Tags markieren den Beginn und das Ende von Quelltextabschnitten, die von der Software beim Erstellen der html-Seite besonders behandelt werden sollen.

„includeonly“, „onlyinclude“ und „noinclude“ sind eine Familie von Tags, die den Sinn haben, der Software mitzuteilen, welche Teile des Quelltexts beim Betrachten der Vorlage, und welche beim Einbinden der Vorlage verwendet werden sollen.

<noinclude> bedeutet, dass der Quelltext zwischen den beiden Tags nur beim Betrachten der Vorlagenseite angezeigt werden soll, und wird daher vor allem für Anmerkungen zur Verwendung der Vorlage und zur Kategorisierung der Vorlage verwendet.

Quelltext zwischen <includeonly>-Tags wird nur beim Einbinden der Vorlage angezeigt - dies eignet sich also besonders dafür, Kategorien zu vergeben (bindet man eine Kategorie außerhalb der „includeonly“-Tags in der Vorlage ein, wird natürlich auch die Vorlage in die Kategorie eingeordnet, was man wohl im Normalfall verhindern möchte).

Der <onlyinclude>-Tag schließt allen Quelltext außerhalb vom Einbinden aus - er bietet also eine Alternative zur Verwendung von „noinclude“. Sowohl „noinclude“ als auch „includeonly“ können innerhalb der „onlyinclude“-Tags verwendet werden.

Quelltext zum Testen:
<onlyinclude>
Dieser Text wird <noinclude>nicht</noinclude> eingebunden <includeonly>und dieser auch.</includeonly>
</onlyinclude>
<includeonly>Dieser Text steht außerhalb onlyinclude und wird deswegen nie angezeigt...</includeonly>
<noinclude>... aber dieser immerhin beim Anzeigen der Vorlagenseite.</noinclude>

„nowiki“, „pre“, „code“ und „syntaxhighlight“ sind eine Familie von Tags, die zum Anzeigen von Quelltext verwendet werden, und daher nicht nur bei der Vorlagenprogrammierung nützlich sein können.

Der <nowiki> eröffnet einen Quelltextabschnitt, der von der Software unverändert in die html-Version übertragen werden soll. Etwas umständlich darzustellen ist hiermit allerdings Code, der selbst ein </nowiki> enthält...

<code> erzeugt nur einen Rahmen, schaltet aber die Behandlung des Inhalts als Wiki-Quelltext nicht ab, und sollte daher immer zusammen mit „nowiki“ verwendet werden: <code><nowiki> eröffnet einen solchen Abschnitt, und </ nowiki></code> beendet ihn.
Hier sieht man die Schwierigkeit, mittels „nowiki“-Tags Quelltext darzustellen, der selbst „nowiki“ enthält.

Einfacher zu verwenden ist der <pre>-Tag - er erzeugt einen Kasten um den Quelltext und wirkt gleichzeitig wie ein „nowiki“, beginnt aber gleichzeitig eine neue Zeile und kann daher nicht im Fließtext verwendet werden.
Ein „nowiki“-Tag innerhalb der „pre“-Tags wirkt leider ebenfalls, weswegen „pre“ ebenfalls nicht gut geeignet ist, solchen Wiki-Code anzuzeigen.

Für längeren Quelltext verschiedener Programmiersprachen sowie Wikicode besser geeignet ist der <syntaxhighlight lang="<code>">-Tag, der die Syntax der gewählten Sprache hervorhebt. Die verfügbaren Sprachen sind auf Extension:SyntaxHighlight aufgelistet.
Sowohl „pre“ als auch „nowiki“-Tags werden innerhalb der „syntaxhighlight“-Tags als Quelltext angezeigt.

Beispielquelltext zum Testen:
<{{subst:leer}}nowiki>Nowiki-Test: {{Beispielvorlage|Parameter=Test}}</nowiki>

<code>Code-Test: {{Beispielvorlage|Parameter=Test}}</code>

<code><{{subst:leer}}nowiki>Code-Nowiki-Test: {{Beispielvorlage|Parameter=Test}}</nowiki></code>

<pre>
pre-Test: {{Beispielvorlage|Parameter=Test}}
<{{subst:leer}}nowiki>nowiki wird innerhalb des pre nicht angezeigt!</nowiki>
</{{subst:leer}}pre>

<syntaxhighlight lang="php">
<nowiki>syntaxhighlight-Test; nowiki wird angezeigt.</nowiki>
<pre>pre auch</pre>
function efGetSiteParams( $conf, $wiki ) {
    $site = 'Wiki Aventurica';
    $lang = substr( $wiki, 2);
    return array(
        'suffix' => $site,
        'lang' => $lang,
        'params' => array(
            'lang' => $lang,
            'site' => $site,
            'wiki' => $wiki,
        ),
        'tags' => array(),
    );
}
</syntaxhighlight>

Vorlage:leer wird verwendet, um den Quelltext auf dieser Seite richtig darstellen zu können - beim Abspeichern des angezeigten Quelltextes wird der Inhalt der Vorlage (also nichts) substituiert, wodurch der Quelltext auf der Zielseite wie vorgesehen funktioniert. Es gibt außerdem noch die Möglichkeit, den Code an passender Stelle durch <nowiki></nowiki> zu unterbrechen; wie das im Quelltext aussieht, kannst du dir an dieser Stelle anschauen...

Vorlagen mit Parametern

Grundlegende Syntax für Parameter
{{{Benannter Parameter}}} {{{1}}}

Möchte man nicht nur reine Textvorlagen erstellen, sondern Vorlagen, die je nach Situation unterschiedlichen Inhalt anzeigen, kann man Parameter programmieren. Dabei setzt man entweder ein Wort (benannter Parameter) oder eine Zahl (unbenannter Parameter) zwischen je drei geschweifte Klammern (die Zahl gibt an, der wievielte Parameteraufruf gemeint ist).

Parametern können auch Standardwerte zugewiesen werden, also der Wert, den die Vorlage für den Parameter verwenden soll, falls der Parameter im Vorlagenaufruf nicht angegeben wird. Dazu schreibt man nach dem Parameternamen ein Pipe-Symbol und trägt dann den Standardwert ein:
{{{Benannter Parameter|Standardwert}}} {{{1|Standardwert}}}

Parameter ohne Standardwert werden sehr hässlich angezeigt, wenn sie in der Vorlageneinbindung nicht angegeben werden - werden sie allerdings mit leerem Inhalt angegeben, ist alles in Ordnung. Standardwerte können auch leer, andere Parameter oder sogar weitere Vorlagen sein!
{{{Benannter Parameter mit leerem Standardwert|}}} {{{Benannter Parameter|{{{1|Standardwert}}} }}} {{{1|{{Beispielvorlage}} }}}
Ja, Vorlagen können auch andere Vorlagen einbinden, auch außerhalb von Parametern - dies wird auch oft genutzt. Diese Vorlagen-Verschachtelung kann man aber nicht beliebig tief programmieren - das Editierfenster zeigt nach dem Drücken von „Vorschau“ ganz unten auf der Seite „Profilingdaten des Parsers:“ an, unter denen auch die Expansionstiefe gelistet ist.

Quelltext für Sandkasten/Test:
{{{Testparameter|{{{1|Funktioniert}}} }}} {{{2}}}

Quelltext für Sandkasten:

{{:Sandkasten/Test|Testparameter=fraglich}}
{{:Sandkasten/Test|oder nicht?|Nochmal:}}
{{:Sandkasten/Test}}

Vorlagen mit Funktionen

Grundlegende Syntax für Funktionen
{{#Funktion: Inhalt}}

Um mit Vorlagen noch einiges mehr machen zu können, haben wir hier im Wiki die Extension:Parser Functions aktiviert, mittels der wir zum Beispiel Vorlagen programmieren können, die Jahreszahlen umrechnen, oder Texteingaben verarbeiten. Ausführliche Hilfeseiten findet man auf Help:Extension:ParserFunctions und Extension:StringFunctions, wir behandeln hier ein paar ausgewählte Funktionen, die wir bisher oft verwendet haben.

#expr berechnet das Ergebnis einer Rechenaufgabe: {{#expr: Aufgabe}}. Abgesehen von der Möglichkeit, das Wiki als Taschenrechner zu benutzen, ist dies natürlich insbesondere für das Programmieren von Vorlagen von Nutzen, wenn man die Eingabe als Parameter der Vorlage programmiert.
Kann die Eingabe nicht interpretiert werden, wird ein Fehler ausgegeben. Dieser kann mit einer weiter unten behandelten Funktion abgefangen werden.

Quelltext für Sandkasten/Test:
Alter: {{#expr: {{CURRENTYEAR}} - {{{Geburtsjahr|1900}}} }}

Quelltext für Sandkasten:

{{:Sandkasten/Test|Geburtsjahr=1982}}
{{:Sandkasten/Test|Geburtsjahr=Text}}
{{:Sandkasten/Test|Geburtsjahr=}}
{{:Sandkasten/Test}}

#if überprüft, ob die Eingabe Inhalt hat. Wenn ja, wird die erste Ausgabe angezeigt, wenn nein, die zweite: {{#if: Eingabe|erste Ausgabe|zweite Ausgabe}}. Dies ist insbesondere nützlich, wenn man überprüfen möchte, ob bei der Einbindung der Vorlage einem Parameter ein Wert gegeben wurde - man kann dann z.B. eine Infoboxzeile ausblenden, wenn eine entsprechende Information nicht angegeben wurde.
Da Infoboxen Tabellen sind, muss man dabei allerdings darauf achten, die Tabellensyntax innerhalb der if-Funktion mit dem Magic Word {{!}} zu bauen, sonst wird das Pipe-Symbol als Teil der if-Funktion interpretiert, was zu Fehldarstellungen führt.

Quelltext für Sandkasten/Test:
Augenfarbe: {{#if: {{{Augenfarbe|}}} | vorhanden {{!}} {{{Augenfarbe}}} | unbekannt }}

Hier muss für den Parameter ein leerer Standardwert angegeben werden, sonst wird der if-Funktion Inhalt angezeigt, wenn der Parameter in der Einbindung nicht angegeben wird.

Quelltext für Sandkasten:

{{:Sandkasten/Test|Augenfarbe=blau}}
{{:Sandkasten/Test|Augenfarbe=}}
{{:Sandkasten/Test}}

#ifeq vergleicht zwei Werte miteinander und liefert bei Gleichheit die erste Ausgabe, bei Ungleichheit die zweite: {{#ifeq: erste Eingabe|zweite Eingabe|erste Ausgabe|zweite Ausgabe}}. Dies kann man z.B. dafür benutzen, „override“-Eingaben zu programmieren, also eine spezielle Eingabe, für die die Vorlage eine ganz andere Ausgabe liefert als für alle anderen Eingaben.

Quelltext für Sandkasten/Test:
Geburtsjahr: {{#ifeq: {{{Alter}}} | unbekannt | unbekannt | {{#expr: {{CURRENTYEAR}} - {{{Alter}}} }} }}

Quelltext für Sandkasten:

{{:Sandkasten/Test|Alter=25}}
{{:Sandkasten/Test|Alter=unbekannt}}
{{:Sandkasten/Test|Alter=}}
{{:Sandkasten/Test}}

#iferror ist die oben angesprochene Fehlerbehandlungsfunktion. Sie untersucht eine Eingabe darauf, ob von #expr ein Fehler gemeldet wurde, und liefert die erste Ausgabe, falls ein Fehler vorhanden ist, und die zweite Ausgabe, falls kein Fehler vorhanden ist: {{#iferror: Eingabe|erste Ausgabe|zweite Ausgabe}}. Die Verwendung dieser Funktion ist daher natürlich nur zusammen mit #expr sinnvoll.

Quelltext für Sandkasten/Test:
Geburtsjahr: {{#iferror: {{#expr: {{CURRENTYEAR}} - {{{Alter}}} }} | Fehlerhaftes Alter! | {{#expr: {{CURRENTYEAR}} - {{{Alter}}} }} }}

Quelltext für Sandkasten:

{{:Sandkasten/Test|Alter=25}}
{{:Sandkasten/Test|Alter=unbekannt}}
{{:Sandkasten/Test|Alter=}}
{{:Sandkasten/Test}}

#replace ist eine speziell für Zeichenketten programmierte Funktion. Sie sucht in der Eingabe nach einer Zeichenkette und ersetzt diese dann durch eine andere Zeichenkette: {{#replace: Eingabe|Suche|Ersetze}}. Dies kann beispielsweise dazu verwendet werden, die in deutschen Zahlenangaben übliche Komma-Notation durch die im Englischen übliche (und auch in der #expr-Funktion erwartete) Punkt-Notation zu ersetzen.
Speziell zu diesem Zweck gibt es in diesem Wiki die Vorlagen PtK und KtP.

Quelltext für Sandkasten/Test:
Preis pro Seite (unbehandelt): {{#expr: {{{Preis}}}/{{{Seiten}}} }}
Preis pro Seite (besser): {{#expr: {{#replace: {{{Preis}}}|,|.}}/{{{Seiten}}} }}
Preis pro Seite (noch besser): {{#replace: {{#expr: {{#replace: {{{Preis}}}|,|.}}/{{{Seiten}}} }}|.|,}}

Quelltext für Sandkasten:

{{:Sandkasten/Test|Preis=37|Seiten=55}}
{{:Sandkasten/Test|Preis=37,05|Seiten=55}}
{{:Sandkasten/Test|Preis=37,05|Seiten=55,5}}
{{:Sandkasten/Test|Preis=37,05|Seiten=}}
{{:Sandkasten/Test|Preis=37,05}}
{{:Sandkasten/Test|Seiten=55}}
{{:Sandkasten/Test}}

Die #explode-Funktion zerlegt eine Zeichenkette mittels einem Trennzeichen in mehrere Unterzeichenketten und gibt eine davon als Ausgabe, wobei man sowohl das Zeichen, das zum Zerlegen verwendet werden soll, als auch die Unterzeichenkette, die ausgegeben werden soll, angeben kann: {{#replace: Eingabe|Trennzeichen|Nummer der Unterzeichenkette}} Meist verwenden wir hier als Trennzeichen das Leerzeichen. Die Unterzeichenketten werden ab 0 nummeriert.

Quelltext für Sandkasten/Test:
Datum: {{#explode: {{{Datum}}} | |0 }}

Quelltext für Sandkasten:

{{:Sandkasten/Test|Datum=1035 BF}}
{{:Sandkasten/Test|Datum=1035}}
{{:Sandkasten/Test|Datum=unbekanntes Datum}}
{{:Sandkasten/Test|Datum=}}
{{:Sandkasten/Test}}

DPL

Grundlegende Syntax für DPL
{{#dpl:
|Auswahlfunktion=Kriterium
|Übernahmefunktion=Kriterium
|Formatfunktion=Parameter
}}

DPL ist eine hier im Wiki aktivierte MediaWiki-Erweiterung, die eine Gruppe von Artikeln auswählen, bestimmte Inhalte übernehmen und formatiert in einem Artikel anzeigen kann. Dies kann man auch außerhalb von Vorlagen verwenden - aber mittels passend programmierter Vorlagen kann man eine große Anzahl automatischer Listen erstellen, ohne den Code jedes Mal manuell anpassen zu müssen.

Dabei können auch mehrere Auswahlfunktionen verwendet werden - die Liste der ausgewählten Artikel entspricht dann der Schnittmenge der durch die verschiedenen Funktionen ausgewählten. Hilfe:DPL bietet eine vollständige Liste der verfügbaren Funktionen, wir stellen hier die in diesem Wiki am Häufigsten verwendeten vor.

Auswahlfunktionen

category wählt alle Artikel einer Kategorie aus: |category=Kategoriename. Fügt man ein * vor dem Kategorienamen ein, werden auch alle Artikel in Unterkategorien der ausgewählten Kategorie in die Auswahlmenge aufgenommen, fügt man zwei Sterne ein, wählt DPL auch Artikel in Unterkategorien der Unterkategorien aus. Mehr als zwei Ebenen tief kann man nicht auswählen.

namespace wählt alle Artikel eines bestimmten Namensraums aus: |namespace=Namensraum. Dies ist natürlich meist auch nur in Kombination mit anderen Auswahlfunktionen sinnvoll. Zu beachten ist, dass der Name des Artikelnamensraums einfach nur leer ist und damit folgendermaßen ausgewählt wird: |namespace=

linksto wählt alle Artikel aus, die auf den angegebenen Artikel verlinken: |linksto=Artikel. Dies wird vor allem verwendet, um die Auswahl von Artikeln einzuschränken - z.B. wenn man eine Liste von NSC erstellen möchte, die eine gewisse Eigenschaft haben, und man weiß, dass diese Eigenschaft im Normalfall verlinkt sein sollte.

uses wählt alle Artikel aus, die die angegebene Vorlage verwenden: |uses=Vorlage:Name. Dies wird insbesondere dann verwendet, wenn man Daten aus Infoboxen übernehmen möchte - natürlich sollte die Infobox dann auch in den ausgewählten Artikeln verwendet werden! „Vorlage“ muss angegeben werden, weil es ja auch die Möglichkeit gibt, beliebige Seiten in andere einzubinden, und DPL hier die Möglichkeit gibt, auch solche Fälle auszuwählen.

All diese Auswahlfunktionen können auch mit einem „not“ davor verwendet werden, und wählen dann eben die Gegenmenge aus: |notcategory=Kategoriename |notnamespace=Namensraum |notlinksto=Artikel |notuses=Vorlage:Name Dies ist meist nur sinnvoll, wenn man bereits eine Gruppe von Artikeln ausgewählt hat, von denen man einige aus der Auswahl ausschließen möchte.

Quelltext für Sandkasten/Test:
{{#dpl:
|namespace={{{1|Hilfe}}}
|linksto={{{2|{{PAGENAME}} }}}
|category={{{3|Test}}}
|uses=Vorlage:{{{4|Test}}}
}}

Quelltext für Sandkasten:

{{:Sandkasten/Test||Gareth|Menschen|Infobox Person}}
{{:Sandkasten/Test}}

Übernahmefunktionen

Eigentlich gibt es nur eine Funktion, die Inhalte aus den ausgewählten Seiten übernimmt: include
Diese Funktion hat jedoch ein paar verschiedene Anwendungsmöglichkeiten, von denen wir hier zwei betrachten.

Vorlagenparameterwerte übernehmen: Mittels |include={Vorlagenname}:Parametername kann man aus den ausgewählten Seiten den Wert eines oder mehrerer Parameter einer Vorlage übernehmen. Dies ist wohl die nützlichste Funktion von DPL und ermöglicht es, Tabellen von Infoboxdaten zu erstellen, beispielsweise zu NSC oder Regionen.

Abschnittsinhalte übernehmen: Man kann auch den Inhalt von Artikelabschnitten übernehmen: |include=#Kurzbeschreibung[300] übernimmt von den ausgewählten Artikeln die ersten 300 Zeichen der Kurzbeschreibung. Dies wird seltener verwendet, eignet sich aber dafür, eine Gruppe von Artikeln mit einem kurzen Anreißer des Inhalts aufzulisten.

includematch gehört eigentlich streng genommen zu den Auswahlfunktionen, hat aber nur Auswirkungen, wenn mittels „include“ Inhalte übernommen werden, weswegen wir die Funktion in diesem Abschnitt besprechen. |includematch=@Regex@ durchsucht den Inhalt der ausgewählten Artikel mit der angegebenen Regular Expression und schließt alle Artikel aus der Ergebnisliste aus, die dieser Regex keinen Treffer liefern. Zu beachten ist dabei, dass DPL aufgrund der Auswahlfunktionen eine Ergebnisliste von maximal 500 Artikeln erstellt, und „includematch“ erst nach dem Erstellen dieser Liste angewendet wird - DPL-Aufrufe, die „includematch“ verwenden, können also unter Umständen zu wenige Ergebnisse liefern, wenn die anderen Auswahlfunktionen die gewünschte Artikelgruppe nicht genau genug ausgewählt haben.
DPL erwartet hier eine Perl-Regex, deswegen umschließen die beiden @-Zeichen die eigentliche Regular Expression, siehe php.net.

Quelltext für Sandkasten/Test:
{{#dpl:
|namespace=
|linksto={{{1|Gareth}}}
|category={{{2|Menschen}}}
|uses=Vorlage:Infobox Person
|include={Infobox Person}:Spezies:Kultur:Profession:Wohnort
|includematch=@{{{1|Gareth}}}@
}}

{{#dpl:
|category=Zeitalter
|include=#Kurzbeschreibung[300]
}}

Quelltext für Sandkasten:

{{:Sandkasten/Test|Vinsalt|Halbelfen}}
{{:Sandkasten/Test}}

Formatfunktionen

Standardmäßig formatiert DPL eine Artikelauswahl als einfache Liste der verlinkten Artikelnamen, wobei jeglicher übernommener Inhalt einfach an den entsprechenden Artikelnamen angehängt wird. Da dies eher weniger übersichtlich ist, gibt es die Möglichkeit, die Ausgabeliste zu formatieren.

table bietet die Möglichkeit, einfache Tabellen zu erstellen. |table=class="wikitable sortable",Artikel,Parameter erstellt eine mittels der CSS-Klassen „wikitable“ und „sortable“ formatierte Tabelle, die die Überschriften „Artikel“ und „Parameter“ hat. Dies ist dafür gedacht, die durch „include“ übernommenen Parameter einer Vorlage in Tabellenform darzustellen.

tablesortcol kann in Kombination mit „table“ verwendet werden, um die Spalte auszuwählen, nach der die Tabelle sortiert werden soll: |tablesortcol=Zahl. Dabei bedeuten positive Zahlen, dass die entsprechende Spalte aufsteigend geordnet werden soll, und negative Zahlen, dass die entsprechende Spalte absteigend geordnet werden soll.

format ermöglicht es, die Ergebnisliste samt übernommenener Inhalte auf vielfältige Weisen zu formatieren: |format=Startall,Start,End,Endall. „Startall“ und „Endall“ werden vor bzw. nach der gesamten Liste eingebaut, „Start“ und „End“ vor bzw. nach jedem einzelnen Ergebnis. Da dies alles ein wenig komplizierter zu handhaben ist, verweisen wir an dieser Stelle einfach auf Hilfe:DPL - erwähnen wollten wir die Funktion an dieser Stelle aber dennoch, da sie hier im Wiki relativ oft genutzt wird.

Mit resultsheader und resultsfooter kann man Wikicode angeben, der über bzw. unter der Liste angezeigt wird, falls Ergebnisse gefunden wurden: |resultsheader=Überschrift |resultsfooter=Anmerkung. Dabei kann es allerdings zu Fehlern kommen, wenn gleichzeitig „includematch“ verwendet wird, und kein einziger der ausgewählten Artikel zu der von „includematch“ verlangten Regex passt.

noresultsheader gibt an, was im Falle einer leeren Ergebnisliste angezeigt werden soll: |noresultsheader=Keine Ergebnisse gefunden!. Damit wird auch die sonst angezeigte DPL-Fehlermeldung unterdrückt.

Quelltext für Sandkasten/Test:
{{#dpl:
|namespace=
|linksto={{{1|Gareth}}}
|category={{{2|Menschen}}}
|uses=Vorlage:Infobox Person
|include={Infobox Person}:Spezies:Kultur:Profession:Wohnort
|includematch=@{{{1|Gareth}}}@
|table=class="wikitable sortable",Name,[[Spezies]],[[Kultur]],[[Profession]],Wohnort
|tablesortcol=1
|resultsheader=Menschliche Einwohner der Stadt [[{{{1|Gareth}}}]]
|resultsfooter=Möglicherweise werden nicht alle Einwohner gelistet, die Liste ist auf 500 Personen beschränkt.
|noresultsheader=Keine Ergebnisse gefunden!
}}

Quelltext für Sandkasten:

{{:Sandkasten/Test|Vinsalt|Halbelfen}}
{{:Sandkasten/Test}}

Das waren soweit die wichtigsten in diesem Wiki beim Vorlagenprogrammieren verwendeten Funktionen. Viele weitere findest du auf den oben verlinkten Hilfeseiten. Den Abschluss dieses Tutoriums bildet eine Seite mit ein paar Worten zu den Richtlinien dieses Wikis.