Mediawiki/Vorlage: Unterschied zwischen den Versionen

Aus Mikiwiki
Wechseln zu: Navigation, Suche
(Beispiel: Ersetzung eines benannten Parameters)
 
(64 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{WIP}}
+
Eine <b>Vorlage</b> ist eine Wikiseite, die in anderen Wikiseiten auf eine der folgenden Arten verwendet werden kann.
  
== Erstellung ==
+
{| class=wiki
 
 
Eine Vorlage ist durch ein vorangestelltes "Vorlage:" (z. B. "[[Vorlage:Text]]") gekennzeichnet und kann wie jede andere Wikiseite erstellt werden.
 
 
 
== Verwendung ==
 
 
 
Vorlagen sind Wikiseiten, welche in anderen Wikiseiten auf folgende Arten verwendet werden können.
 
 
 
{| class=wiki width=100%
 
 
|-
 
|-
| <tt><nowiki>[[Template:Name]]</nowiki><br><nowiki>[[Vorlage:Name]]</nowiki></tt> || Erzeugt einen Hyperlink zur Vorlage "Name".
+
| <tt><nowiki>[[Template:Name]]</nowiki><br><nowiki>[[Vorlage:Name]]</nowiki></tt> || Erzeugt einen [[Hyperlink]] zur Vorlage "Name".
 
|-
 
|-
 
| <tt><nowiki>{{Name}}</nowiki></tt> || Der Inhalt der Vorlage "Name" wird erst zu dem Zeitpunkt in die aktuelle Seite eingefügt, wenn die aktuelle Seite aufgerufen wird. Im Bearbeitungsfenster ist stets nur "<nowiki>{{Name}}</nowiki>" zu sehen.
 
| <tt><nowiki>{{Name}}</nowiki></tt> || Der Inhalt der Vorlage "Name" wird erst zu dem Zeitpunkt in die aktuelle Seite eingefügt, wenn die aktuelle Seite aufgerufen wird. Im Bearbeitungsfenster ist stets nur "<nowiki>{{Name}}</nowiki>" zu sehen.
Zeile 23: Zeile 15:
  
 
Im Fall eines Namenskonflikts mit einer Variable (z. B. "Vorlage:Ns:3" und "Vorlage:PAGENAME") kann ":Vorlage:" verwendet werden, um deutlich zu machen, dass die Vorlage gemeint ist:
 
Im Fall eines Namenskonflikts mit einer Variable (z. B. "Vorlage:Ns:3" und "Vorlage:PAGENAME") kann ":Vorlage:" verwendet werden, um deutlich zu machen, dass die Vorlage gemeint ist:
 +
 
* <nowiki>{{Ns:3}}</nowiki> bzw. <nowiki>{{PAGENAME}}</nowiki> zeigen den User talk bzw. die Seite "Mediawiki/Vorlage" (also die aktuelle Seite)
 
* <nowiki>{{Ns:3}}</nowiki> bzw. <nowiki>{{PAGENAME}}</nowiki> zeigen den User talk bzw. die Seite "Mediawiki/Vorlage" (also die aktuelle Seite)
 
* <nowiki>{{:Vorlage:Ns:3}}</nowiki> bzw. <nowiki>{{:Vorlage:PAGENAME}}</nowiki> zeigen den Inhalt der Vorlage "Ns:3" bzw. "PAGENAME".
 
* <nowiki>{{:Vorlage:Ns:3}}</nowiki> bzw. <nowiki>{{:Vorlage:PAGENAME}}</nowiki> zeigen den Inhalt der Vorlage "Ns:3" bzw. "PAGENAME".
  
 
Eine Seite von ausserhalb des Namensraums "Vorlage:" kann in folgenden Fällen nützlich sein:
 
Eine Seite von ausserhalb des Namensraums "Vorlage:" kann in folgenden Fällen nützlich sein:
* Anzeige von Systemtexten im MediaWiki-Namensrtaum.
+
 
 +
* Anzeige von Systemtexten im MediaWiki-Namensraum.
 
* Vorlagen für den persönlichen Gebrauch in den Unterseiten von jemandes Benutzerseite, beispielsweise zu Testzwecken.
 
* Vorlagen für den persönlichen Gebrauch in den Unterseiten von jemandes Benutzerseite, beispielsweise zu Testzwecken.
 
* Einschluss von Seiten in anderen Seiten innerhalb desselben Namensraums, beispielsweise wird eine zusätzliche Seite (z. B. eine Arbeitsliste) mit jeder Seite durch eine einfache Namensübereinstimmung verbunden werden; sie kann mit <nowiki>{{{{NAMESPACE}}:{{PAGENAME}}/Arbeitsliste}}</nowiki> angelegt und eingeschlossen werden.
 
* Einschluss von Seiten in anderen Seiten innerhalb desselben Namensraums, beispielsweise wird eine zusätzliche Seite (z. B. eine Arbeitsliste) mit jeder Seite durch eine einfache Namensübereinstimmung verbunden werden; sie kann mit <nowiki>{{{{NAMESPACE}}:{{PAGENAME}}/Arbeitsliste}}</nowiki> angelegt und eingeschlossen werden.
  
 
Eine Vorlage kann auch eine andere Vorlage enthalten. Für das wiederholte Einfügen von Vorlagen siehe:
 
Eine Vorlage kann auch eine andere Vorlage enthalten. Für das wiederholte Einfügen von Vorlagen siehe:
 +
 
* [http://meta.wikimedia.org/wiki/Help:Template#Repetition_within_a_page Repetition within a page]
 
* [http://meta.wikimedia.org/wiki/Help:Template#Repetition_within_a_page Repetition within a page]
 
* [http://meta.wikimedia.org/wiki/Template:List_of_template_calls Template:List of template calls]
 
* [http://meta.wikimedia.org/wiki/Template:List_of_template_calls Template:List of template calls]
Zeile 41: Zeile 36:
 
Ein Wikitext mit aufeinanderfolgenden doppelten öffnenden und schliessenden geschweiften Klammern (z. B. "<nowiki>{{{{tc}}}}</nowiki>") wird als Vorlage interpretiert, welche einen durch dreifache geschweifte Klammern begrenzten Vorlagenparameter-Tag (also "<nowiki>{ {{{tc}}} }</nowiki>") enthält. Um das zu vermeiden, sollte mindestens in einem der Klammernpaare ein Leerschlag eingefügt werden, am besten aber "<nowiki>{{ {{tc}} }}"</nowiki>.
 
Ein Wikitext mit aufeinanderfolgenden doppelten öffnenden und schliessenden geschweiften Klammern (z. B. "<nowiki>{{{{tc}}}}</nowiki>") wird als Vorlage interpretiert, welche einen durch dreifache geschweifte Klammern begrenzten Vorlagenparameter-Tag (also "<nowiki>{ {{{tc}}} }</nowiki>") enthält. Um das zu vermeiden, sollte mindestens in einem der Klammernpaare ein Leerschlag eingefügt werden, am besten aber "<nowiki>{{ {{tc}} }}"</nowiki>.
  
Die Erweiterung "ExpandTemplates" erstellt die Seite "Special:ExpandTemplates", welche den Wikitext anzeigt, der durch den Aufruf einer Vorlage erzeugt wird. Dasselbe geschieht auch bei Verwendung eines URL der Art "http://mikiwiki.org/wiki/index.php?title=Mediawiki/Vorlage&action=raw&templates=expand".
+
Die Erweiterung "ExpandTemplates" erstellt die Seite "Special:ExpandTemplates", welche den Wikitext anzeigt, der durch den Aufruf einer Vorlage erzeugt wird. Dasselbe geschieht auch bei Verwendung eines URL der Art <nowiki>"http://mikiwiki.org/wiki/index.php?title=Mediawiki/Vorlage&action=raw&templates=expand"</nowiki>.
 
 
== Parameter ==
 
 
 
Vorlagenparameter sind "called-by-value" und sind deshalb ausschliesslich Eingabeparameter.
 
 
 
In der Vorlage "Aufruf" kann die Anzahl der Parameter variieren (im Beispiel sind es zwei), weswegen die Syntax wie folgt lautet:
 
* <nowiki>{{vorlagenname|parname1=parwert1|parname2=parwert2}}</nowiki> mit den Tags <nowiki>{{{parname1|default}}}, {{{parname2|default}}}</nowiki> usw. in der Vorlage, oder
 
* <nowiki>{{vorlagenname|parwert1|parwert2}}</nowiki> mit den Tags <nowiki>{{{1|default}}}, {{{2|default}}}</nowiki> usw. in der Vorlage, oder
 
* eine Mischung aus den beiden Möglichkeiten.
 
 
 
Ein Vorlagenaufruf besitzt also nach dem Vorlagenamen, keine oder mehrere Parameterdefinitionen, die in der Wikisyntax durch das Verkettungszeichen ("|") voneinander getrennt werden. Zudem wird jede ein Gleichheitszeichen ("=") enthaltende Parameterdefinition an der Stelle dieses Gleichheitszeichens in einen Parameternamen und einen Parameterwert getrennt. Für alle übrigen Parameterdefinitionen werden Parameternamen von "1", "2", "3" usw. angenommen.
 
 
 
Ein formaler Parameter (der Platzhalter für den Parameterwert) wird durch ein Parameter-Tag mit drei aufeinanderfolgenden geschweiften Klammern dargestellt (z. B. <nowiki>{{{3}}}</nowiki>), optional gefolgt von einem Verkettungszeichen und einem Standardwert (z. B. <nowiki>{{{3|abc}}}</nowiki>).
 
 
 
Ein Parameter wie <nowiki>{{{3|abc}}}</nowiki> kann auf zwei Arten referenziert werden:
 
* explizit mit "3=pqr". Wenn der Parametername keine "kleine" positive Ganzzahl ist, so kann er nur explizit referenziert werden.
 
* implizit, indem "pqr" an dritter Stelle unter den unbenannten Parameterdefinitionen genannt wird.
 
 
 
{| class=wiki width=100%
 
! width=50% | Benannte Parameter !! width=50% | Implizit numerierte Parameter
 
|-
 
|
 
* Benannte Parameter können in jeder beliebigen Reihenfolge angegeben werden.
 
* Bei einem benannten Parameter werden Leerzeichen und Zeilenumbrüche vom Anfang und Ende der Parameterwerte entfernt. Deshalb ist der beste Name für einen Separatorparameter "1" - er bestimmt, wie die Ausgabe unterteilt wird.
 
|
 
* Um den Wert eines bestimmten implizit numerierten Parameters anzugeben müssen alle vorangehenden ebenfalls angegeben werden (in diesem Fall wird oft eine leere Zeichenkette als Wert mitgegeben).
 
* Mit implizierter Numerierung ist der Aufruf kürzer.
 
* Einem implizit numerierter Parameter kann ein das Gleichheitszeichen ("=") enthaltender Wert nur indirekt zugewiesen werden.
 
* Bei einem implizit numerierten Parameter werden Leerzeichen und Zeilenumbrüche vom Anfang und Ende der Parameterwerte nicht entfernt.
 
|}
 
 
 
Der Standardwert (optional, zusammen mit vorangestelltem Verkettungszeichen) kann bei jedem Vorkommen anders sein und wird angewendet, wenn beim Aufruf der Vorlage kein Wert angegeben wurde; er sollte nicht mit dem Fall verwechselt werden, dass der leere Wert angegeben wurde.
 
 
 
Um zwischen einem definierten und nicht-leeren Parameter einerseits und einem nicht definierten oder leeren Parameter andererseits unterscheiden zu können, kann "#if:" mit einem leeren Standardwert verwendet werden:
 
 
 
<pre class=wiki>
 
{{#if: {{{param|}}} | Parameter ist definiert und nicht leer | Parameter ist nicht definiert und leer}}
 
</pre>
 
 
 
Um zwischen einem definierten (und möglicherweise leeren) und einem nicht definierten Parameter unterscheiden zu können:
 
 
 
<pre class=wiki>
 
{{#ifeq: {{{param|+}}} |  {{{param|-}}} | Parameter ist definiert | Parameter ist nicht definiert}}
 
</pre>
 
 
 
Im Fall der Seitenersetzung mit einem undefinierten Parameter wird nicht der Standardwert, sondern der Parameter selber mit dem Standardwert ersetzt und in den Wikitext eingefügt. Falls das nicht erwünscht ist, so gibt es eine Alternative (die ebenfalls "#ifeq" verwendet): [http://meta.wikimedia.org/wiki/Help:Substitution#Parameter_default_considerations Help:Substitution#Parameter_default_considerations].
 
 
 
=== Beispiel: Ersetzung eines benannten Parameters ===
 
 
 
Es wird die folgende Vorlage "Namensbeispiel" angelegt (genauer gesagt heisst sie "Vorlage:Namensbeispiel") mit einem Parameter für den Vornamen ("vorname") und einem für den Nachnamen ("nachname"):
 
 
 
<pre class=wiki>
 
Ich bin ein Vorlagenbeispiel. Mein Vorname ist <b>{{{vorname}}}</b> und mein Nachname ist <b>{{{nachname}}}</b>.
 
 
 
Meine Seite kann unter [[{{{nachname}}}, {{{vorname}}}]] aufgerufen werden.
 
</pre>
 
 
 
Auf einer zweiten Seite wird eingegeben: <nowiki>{{Namensbeispiel}}</nowiki>. Das Ergebnis wird das folgende sein, da die Vorlage keine Parameterwerte besitzt.
 
 
 
: Ich bin ein Vorlagenbeispiel. Mein Vorname ist <b><nowiki>{{{vorname}}}</nowiki></b> und mein Nachname ist <b><nowiki>{{{nachname}}}</nowiki></b>.
 
: Meine Seite kann unter <nowiki>[[{{{nachname}}}, {{{vorname}}}]]</nowiki> aufgerufen werden.
 
 
 
Wird auf der zweiten Seite jedoch folgendes eingegeben: <nowiki>{{Namensbeispiel|vorname=Hans|nachname=Muster}}</nowiki>, so wird das Ergebnis wie folgt aussehen.
 
 
 
: Ich bin ein Vorlagenbeispiel. Mein Vorname ist <b>Hans</b> und mein Nachname ist <b>Muster</b>.
 
: Meine Seite kann unter [[Muster, Hans]] aufgerufen werden.
 
  
 +
Eine Vorlage ist durch ein vorangestelltes "Vorlage:" (z. B. "[[Vorlage:Text]]") gekennzeichnet und kann wie jede andere Wikiseite erstellt werden.
  
 +
== Konzepte ==
  
 +
* [[/Parameter|Parameter]]
 +
* [[/Vorlagen-Tag-Layout|Vorlagen-Tag-Layout]]
 +
* [[/Relativer Name für querverlinkte Seite|Relativer Name für querverlinkte Seite]]
 +
* [[/Vorlageseite|Vorlagenseite]]
  
 
<!--
 
<!--
 
<div style="float:right">
 
{| {{Prettytable}}
 
|-
 
|{{Hl2}} colspan="2" align="center" |'''Vorlage mit nummerierten Parametern'''
 
|-
 
| colspan="2" |
 
<pre><nowiki>
 
'''A little thank you...'''<br>
 
<small>for {{{1}}}.<br>
 
hugs, {{{2}}}</small>
 
</nowiki></pre>
 
|-
 
|{{Hl2}}|'''Du schreibst'''
 
|{{Hl2}}|'''Du bekommst'''
 
|-
 
|<code><nowiki>{{Thankyou|all|Joe}}</nowiki></code>
 
|
 
{{Thankyou|all|Joe}}
 
|-
 
|{{Hl2}} colspan="2" align="center" |'''mit benannten Parametern'''
 
|-
 
| colspan="2" |
 
<pre><nowiki>
 
'''A little thank you...'''<br>
 
<small>for {{{reason}}}.<br>
 
hugs, {{{signature}}}</small>
 
</nowiki></pre>
 
|-
 
|{{Hl2}}|'''Du schreibst'''
 
|{{Hl2}}|'''Du bekommst'''
 
|-
 
|<pre><nowiki>{{Thankyou
 
|reason=all
 
|signature=Joe}}</nowiki></pre>
 
|
 
{{Thankyou|all|Joe}}
 
|}
 
</div>
 
 
Du kannst Parameter in Vorlagen entweder als nummeriert, wie <code><nowiki>{{{1}}}</nowiki></code>, oder als benannt <code><nowiki>{{{param}}}</nowiki></code> definieren.
 
'''Beispiel:''' Du möchtest eine kleine Danknotiz, die du auf die Gesprächsseite mit anderen Nutzern setzen kannst. Sie soll den Grund und deine Signatur enthalten. Du kannst [[Template:Thankyou]] erstellen, um deinen Text wie im Beispiel in der Tabelle einzugeben.
 
 
Wenn du die Vorlage auf einer Seite verwendest, füllst du die, durch ein Pipezeichen (|) getrennten, Parameterwerte: <code><nowiki>{{Thankyou|all|Joe}}</nowiki></code>. Für benannte Parameter verwendest du "name=wert"-Paare, welche auch wieder durch ein Pipezeichen voneinander getrennt werden: <code><nowiki>{{Thankyou|reason=all|signature=Joe}}</nowiki></code>. Der Vorteil bei der Verwendung benannter Parameter in deiner Vorlage ist, dass die Reihenfolge flexibel ist. Außerdem ist die Vorlage damit leichter verständlich, wenn du viele Parameter hast. Falls du die Reihenfolge der nummerierten Parameter ändern möchtest, musst du das explizit vermerken: <code><nowiki>{{Thankyou|2=Joe|1=all}}</nowiki></code>.
 
 
 
 
<nowiki></nowiki>
 
<nowiki></nowiki>
 
<nowiki></nowiki>
 
<nowiki></nowiki>
 
<nowiki></nowiki>
 
<nowiki></nowiki>
 
<nowiki></nowiki>
 
<nowiki></nowiki>
 
<nowiki></nowiki>
 
<nowiki></nowiki>
 
 
 
  
 
== Steuern der Vorlageneinbindung ==
 
== Steuern der Vorlageneinbindung ==
Zeile 208: Zeile 84:
  
 
-->
 
-->
 
+
{{Weblinks}}
== Weblinks ==
+
{{url|US|meta.Wikimedia.org|eng|http://meta.wikimedia.org/wiki/Help:Template|Help:Template}}
 
+
{{url|US|Mediawiki.org|eng|http://www.mediawiki.org/wiki/Help:Templates|Help:Templates}}
* [http://meta.wikimedia.org/wiki/Help:Template Help:Template] (Meta.Wikimedia.org)
+
{{url|US|Mediawiki.org|ger|http://www.mediawiki.org/wiki/Help:Templates/de|Help:Templates/de}}
* [http://www.mediawiki.org/wiki/Help:Templates Help:Templates] (Mediawiki.org)
+
{{Fuss}}
** [http://www.mediawiki.org/wiki/Help:Templates/de Help:Templates/de] - dieselbe Seite in Deutsch
 
  
  
 
{{cat|Mediawiki}}
 
{{cat|Mediawiki}}
 +
{{cat|UNFERTIG}}

Aktuelle Version vom 7. Februar 2010, 00:57 Uhr

Eine Vorlage ist eine Wikiseite, die in anderen Wikiseiten auf eine der folgenden Arten verwendet werden kann.

[[Template:Name]]
[[Vorlage:Name]]
Erzeugt einen Hyperlink zur Vorlage "Name".
{{Name}} Der Inhalt der Vorlage "Name" wird erst zu dem Zeitpunkt in die aktuelle Seite eingefügt, wenn die aktuelle Seite aufgerufen wird. Im Bearbeitungsfenster ist stets nur "{{Name}}" zu sehen.
{{msgnw:Name}} Der Inhalt der Vorlage "Name" erst zu dem Zeitpunkt in die aktuelle Seite eingefügt, wenn die aktuelle Seite aufgerufen wird, wobei die rohe Wikisyntax angezeigt wird, als ob der Text vom "<nowiki>"-Tag umschlossen wäre. Im Bearbeitungsfenster ist stets nur "{{msngw:Name}}" zu sehen.
{{subst:Name}} (substitute) Der Inhalt der Vorlage "Name" wird sofort beim Speichern der aktuellen Seite in die aktuelle Seite eingefügt. Ab diesem Zeitpunkt ist im Bearbeitungsfenster nur noch der eingefügte Text zu sehen.

Auch eine Seite aus einem anderen Namensraum als "Vorlage:" kann als Vorlage verwendet werden - Ausnahmen sind nur die in "$wgNonincludableNamespaces" ausdrücklich ausgenommenen Namensräume. Um eine Seite aus dem Hauptnamensbereich als Vorlage zu verwenden, wird ein Doppelpunkt (":") vor den Seitennamen geschrieben.

Im Fall eines Namenskonflikts mit einer Variable (z. B. "Vorlage:Ns:3" und "Vorlage:PAGENAME") kann ":Vorlage:" verwendet werden, um deutlich zu machen, dass die Vorlage gemeint ist:

  • {{Ns:3}} bzw. {{PAGENAME}} zeigen den User talk bzw. die Seite "Mediawiki/Vorlage" (also die aktuelle Seite)
  • {{:Vorlage:Ns:3}} bzw. {{:Vorlage:PAGENAME}} zeigen den Inhalt der Vorlage "Ns:3" bzw. "PAGENAME".

Eine Seite von ausserhalb des Namensraums "Vorlage:" kann in folgenden Fällen nützlich sein:

  • Anzeige von Systemtexten im MediaWiki-Namensraum.
  • Vorlagen für den persönlichen Gebrauch in den Unterseiten von jemandes Benutzerseite, beispielsweise zu Testzwecken.
  • Einschluss von Seiten in anderen Seiten innerhalb desselben Namensraums, beispielsweise wird eine zusätzliche Seite (z. B. eine Arbeitsliste) mit jeder Seite durch eine einfache Namensübereinstimmung verbunden werden; sie kann mit {{{{NAMESPACE}}:{{PAGENAME}}/Arbeitsliste}} angelegt und eingeschlossen werden.

Eine Vorlage kann auch eine andere Vorlage enthalten. Für das wiederholte Einfügen von Vorlagen siehe:

Eine seitenbezogene Variable innerhalb einer Vorlage (z. B. {{PAGENAME}}) wird den Wert der die Vorlage aufrufenden Seite ergeben, nicht den Wert, den die Vorlage selbst liefern würde.

In einem Vorlagennamen wird das Zeichen "#" und alle darauffolgenden Zeichen ignoriert: "{{tc#abc}}" wird also den Inhalt der Vorlage "tc" liefern.

Ein Wikitext mit aufeinanderfolgenden doppelten öffnenden und schliessenden geschweiften Klammern (z. B. "{{{{tc}}}}") wird als Vorlage interpretiert, welche einen durch dreifache geschweifte Klammern begrenzten Vorlagenparameter-Tag (also "{ {{{tc}}} }") enthält. Um das zu vermeiden, sollte mindestens in einem der Klammernpaare ein Leerschlag eingefügt werden, am besten aber "{{ {{tc}} }}".

Die Erweiterung "ExpandTemplates" erstellt die Seite "Special:ExpandTemplates", welche den Wikitext anzeigt, der durch den Aufruf einer Vorlage erzeugt wird. Dasselbe geschieht auch bei Verwendung eines URL der Art "http://mikiwiki.org/wiki/index.php?title=Mediawiki/Vorlage&action=raw&templates=expand".

Eine Vorlage ist durch ein vorangestelltes "Vorlage:" (z. B. "Vorlage:Text") gekennzeichnet und kann wie jede andere Wikiseite erstellt werden.

Konzepte

Herausgeber Sprache Webseitentitel Anmerkungen
country US.gif meta.Wikimedia.org eng Help:Templatewbm
country US.gif Mediawiki.org eng Help:Templateswbm
country US.gif Mediawiki.org ger Help:Templates/dewbm