Help:Parserfunktionen in Vorlagen

This page is a translated version of the page Help:Parser functions in templates and the translation is 82% complete.
PD Hinweis: Wenn Du diese Seite bearbeitest, stimmst Du zu, dass Deine Bearbeitungen unter CC0 veröffentlicht werden. Siehe Public Domain Help Pages für genauere Informationen.
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. Used in an #if parser function, the unexpanded text from the undefined parameter will evaluate as true, which may be an unexpected result.

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 is not defined, or is defined but null. It contains only empty string(s) or breaking space(s) etc.}}
Ergebnis
Parameter 1 is not defined, or is defined but null. It contains only empty string(s) or breaking space(s) etc.

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

Testing and passing undefined parameters

To distinguish a possibly empty parameter from an unspecified one, compare it to itself using {{#ifeq:}} and different defaults. What the defaults are does not matter as long as they are different, so they are typically chosen to be short. 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