Aktionen

Hilfe

Parser functions in templates/de

Aus Kubbwiki

Bei der Anwendung von Help:Extension:ParserFunctions/de|Parserfunktionen auf Help:Templates/de|Vorlagen-Parametern, kann ein senkrechter Strich ("|") verwendet werden, der immer erscheint, wenn der Parameter bei der Einbindung der Vorlage nicht definiert wird, um einen leeren String als Standardwert bereitzustellen und um anzuzeigen wie die Dinge zu handhaben sind, wenn ein Parameter ist oder nicht übergeben ist. Beispielsweise kann man schreiben: {{{1|Du hast den Parameter vergessen!}}}. Dem Vorlagennutzer wird dann bei der Vorschau oder nach dem Speichern klar, dass er den Parameter noch definieren muss.

Dieser Standardwert kann aber auch weggelassen werden: {{{1|}}}. In diesem Fall können Extension:ParserFunctions/de|Parserfunktionen eingesetzt werden, um festzustellen ob bei der Einbindung einer Vorlage ein Parameter weggelassen wird oder nicht. Dann kann man in vielfältiger Weise darauf reagieren, nicht nur mit einem Warnhinweis.

  • {{{1}}}
Beispiel A
{{#if: {{{1}}} | Parameter 1 ist nicht definiert, oder er ist definiert und nicht leer. | Parameter 1 ist als leer definiert, enthält höchstens Leerzeichen oder Zeilenumbrüche. }}
Ergebnis
Parameter 1 ist nicht definiert, oder er ist definiert und nicht leer.
  • {{{1|}}}
Beispiel B
{{#if: {{{1|}}} | Parameter 1 ist definiert und nicht leer. | Parameter 1 ist nicht definiert, oder definiert, aber leer. }}
Ergebnis
Parameter 1 ist nicht definiert, oder definiert aber leer.
Vergleich
Beispiel für die Verwendung in einer Vorlage
Unbenannter erster Parameter (1=)
Benannter Parameter (param=)
Zustand des Parameters Beispiel A:
{{#if: {{{1}}}| wahr| falsch}}
{{#if: {{{param}}}| wahr| falsch}}
Beispiel B:
{{#if: {{{1|}}}| wahr| falsch}}
{{#if: {{{param|}}}| wahr| falsch}}

{{Vorlage}}
nicht definiert:
Parameter ungenutzt,
wichtig für benannte Parameter
WAHR FALSCH

{{Vorlage|}} .. {{Vorlage|1=}} .. {{Vorlage|param=}}
definiert, aber leer FALSCH FALSCH

{{Vorlage|wert}} .. {{Vorlage|1=wert}} .. {{Vorlage|param=wert}}
definiert
und
NICHT ungültig keiner leer
WAHR WAHR

Die zweite Art ({{{1|}}}, Beispiel B) mit leerem default-Wert, wird oft dann verwendet, wenn zwar ein Parameter exisitiert, er aber leer ist.

Ein Beispiel für einen Test, ob ein Parameter in einer Vorlage festgelegt wird: {{#ifeq:{{{v|}}}|{{{v|-}}}| v ist festgelegt (kann auch leer sein) | v ist nicht festgelegt }}

In seltenen Fällen kann es sein, dass sich eine Vorlage mit einem nicht festgelegten Parameter anders verhält wie wenn sie festgelegt aber leer ist. Wenn die Vorlage von einer Wrappervorlage verwendet wird, gibt es einen Weg um sicher zugehen, dass nichtdefinierte Parameter auch so bleiben (auch mit nummerierten Parametern):

<!-- wrapper template code -->
{{wrapped_template|
normal_parameter={{{normal_parameter|}}}|
sensitive_parameter{{#ifeq:{{{sensitive_parameter|}}}|{{{sensitive_parameter|-}}}||x}}={{{sensitive_parameter|}}}|
...
}}

Das wrapped_template empfängt einen definierten aber leeren normal_parameter in genau zwei Fällen:

  • Wenn der normal_parameter definiert und leer
  • Wenn der normal_parameter nicht definiert ist (da der Wert durch das wrapper template definiert wird).

Im Vergleich, das wrapped_template einen definierten sensitive_parameter empfängt, jedoch nur wenn er definiert ist, da #ifeq den Wert des wrapped_template Parameter-Namen zu « sensitive_parameterx » setzt, auch wenn sensitive_parameter nicht definiert ist.

Beachten Sie auch, dass wrapped_vorlage einen bestimmten und leeren sensitive_parameter nur erhält, wenn die Wrapper-Vorlage einen festgelegten und leeren sensitive_parameter erhält. Natürlich muss man sicherstellen, dass der angehängte wrapped_vorlage Parameter-Name in der wrapped_vorlage inhaltsleer dafür ist, um ordnungsgemäß zu funktionieren.

Siehe auch[Bearbeiten]

  • Help:Extension:ParserFunctions/de|Hilfe zu Parserfunktionen
  • Help:Templates/de|Hilfe zu Vorlagen
  • Extension:Loops/de#forargs (in der Testphase)|Erweiterung:Loops (Schleifen) (forargs)

Vorlage:Languages

/de|Parser functions in templates