Help:Parserfunktionen in Vorlagen

This page is a translated version of the page Help:Parser functions in templates and the translation is 97% complete.
PD Hinweis: Wenn Du diese Seite bearbeitest, stimmst Du zu, dass Dein Beitrag unter der [CC0] veröffentlicht wird. Mehr Informationen findest du auf der Public Domain Hilfeseite. PD

Wenn Sie ParserFunctions auf Template-Parameter anwenden, kann ein Pipe-Symbol ("|") verwendet werden, um einen Standardwert bereitzustellen, der verwendet wird, wenn kein Parameter definiert ist. Bei Verwendung in einer #if-Funktion wird der nicht erweiterte Text des undefinierten Parameters als wahr gewertet werden, was ein unerwartetes Ergebnis bedeuten kann.

Test der Parameter mit und ohne Standardwerte
Parameter {{{1}}}, {{{param}}} {{{1|}}}, {{{param|}}} {{#if:<Parameter:>|True|False}}
Beschreibung Beispiel, unbestimmt und bestimmt {{{1}}}, {{{param}}} {{{1|}}}, {{{param|}}}
Undefiniert. Angemessener für Benutzung in benannte Parameter. {{template}} {{{1}}} True False
definiert, aber leer {{template|}}, {{template|1=}}, {{template|param=}} False False
Definiert, nicht leer und nicht null. {{template|value}}, {{template|1=value}}, {{template|param=value}} value value True True
  • {{{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 aber definiert und leer. Er enthält nur leere Zeichenfolgen (Leerzeichen) oder Zeilenumbrüche etc.}}
Ergebnis
Parameter 1 ist nicht definiert oder aber definiert und leer. Er enthält nur leere Zeichenfolgen (Leerzeichen) oder Zeilenumbrüche etc.

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

Testen und umgehen undefinierter Parameter

Um einen möglicherweise leeren Parameter von einem undefinierten zu unterscheiden, vergleiche ihn mit sich selbst mittels {{#ifeq:}} und unterschiedlichen Standardwerten (defaults). Was die Standardwerte sind spielt keine Rolle, so lange sie unterschiedlich sind. Daher werden sie üblicherweise kurz gewählt. Nachfolgendes funktioniert immer gleich:

{{#ifeq:{{{v|+}}}|{{{v|-}}}| v wurde definiert (und wird leer sein) | v wurde nicht definiert }}
{{#ifeq:{{{v|}}}|{{{v|-}}}| v wurde definiert (und wird leer sein) | v wurde nicht definiert }}
{{#ifeq:{{{v|}}}|{{{v}}}| v wurde definiert (und wird leer sein) | v wurde nicht definiert }}

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):

{{wrapped_template|
normal_parameter={{{normal_parameter|}}}|
sensitive_parameter{{#if:{{{sensitive_parameter|}}}||NULL}}={{{sensitive_parameter}}}
}}

wrap_template erhält in allen Fällen einen definierten normalen Parameter. Wenn normal_parameter definiert, aber leer ist und wenn er nicht definiert ist, erhält wrapped_template einen leeren normal_parameter.

Im Gegensatz dazu erhält die wrapped_template nur dann einen definierten sensitiven Parameter, wenn er tatsächlich definiert ist. Wenn sensitive_parameter undefiniert ist, ändert #if den Parameternamen in sensitive_parameterNULL. The suffixed parameter name must be meaningless to the wrapped_template for this to work properly.

Siehe auch