Справка:Функции парсера в шаблонах

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Help:Parser functions in templates and the translation is 50% complete.
Other languages:
Deutsch • ‎English • ‎Nederlands • ‎Türkçe • ‎Zazaki • ‎dansk • ‎español • ‎français • ‎português • ‎português do Brasil • ‎русский • ‎українська • ‎العربية • ‎中文 • ‎日本語
PD Внимание: Когда вы редактируете эту страницу, вы соглашаетесь на передачу своего вклада по лицензии CC0. Узнать об этом подробнее можно на странице справки.
PD

При применении ParserFunctions к параметрам template можно использовать символ («|») для установки значения по умолчанию, которое будет используется, когда параметр не определен. Используемый в функции #if, нерасширенный текст из неопределенного параметра будет оцениваться как true, что может быть неожиданным результатом.

Параметры тестирования со значениями по умолчанию и без них
Параметр {{{1}}}, {{{param}}} {{{1|}}}, {{{param|}}} {{#if:<параметр>|True|False}}
Описание Например, неименованые и именованные {{{1}}}, {{{param}}} {{{1|}}}, {{{param|}}}
Не определен. Больше подходит для использования в именованных параметрах. {{template}} {{{1}}} True False
Определен, но пустой либо null {{template|}}, {{template|1=}}, {{template|param=}} False False
Определен, не пустой, и не null. {{template|value}}, {{template|1=value}}, {{template|param=value}} value value True True
  • {{{1}}}
Пример A
{{#if: {{{1}}} | Параметр 1 не объявлен, либо объявлен и не равен нулю/непустой. | Параметр 1 равен нулю. Он содержит только пустые(ую) строки(у) или пробел(ы) и т.д.}}
Результат
Параметр 1 не объявлен, либо объявлен и не равен нулю/непустой.
  • {{{1|}}}
Пример B
{{#if: {{{1|}}} | Параметр 1 объявлен и не равен нулю/непустой. | Параметр 1 не объявлен, либо объявлен, но равен нулю. Содержит только пустые(ую) строки(у) или пробелы, и т.д.}}
Результат
Параметр 1 не объявлен, либо объявлен, но равен нулю. Содержит только пустые(ую) строки(у) или пробелы, и т.д.

The second usage ({{{1|}}}, sample B) with present empty default is often the desired way to handle situations where a parameter exists, but is comprised only of empty space.

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. The following all work equivalently:

{{#ifeq:{{{v|+}}}|{{{v|-}}}| v was defined (and may be empty) | v was not defined }}
{{#ifeq:{{{v|}}}|{{{v|-}}}| v was defined (and may be empty) | v was not defined }}
{{#ifeq:{{{v|}}}|{{{v}}}| v was defined (and may be empty) | v was not defined }}

In rare cases, a template behaves differently when a parameter is unspecified compared to when it is specified but empty. When this template is used by a wrapper template (which uses the same set of named parameters), one way to ensure undefined parameters remain undefined is as follows (the technique also works with numbered parameters):

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

wrapped_template receives a defined normal_parameter in all cases. When normal_parameter is defined but empty and when it is undefined, wrapped_template receives an empty normal_parameter.

By contrast, the wrapped_template receives a defined sensitive_parameter only when it is indeed defined; when sensitive_parameter is undefined, the #if changes the parameter name to sensitive_parameterNULL. The suffixed parameter name must be meaningless to the wrapped_template for this to work properly.

Смотрите также