Довідка:Функції парсера в шаблонах

This page is a translated version of the page Help:Parser functions in templates and the translation is 60% complete.
PD Зверніть увагу! Коли Ви редагуєте цю сторінку, то погоджуєтесь робити свій внесок під ліцензією CC0. Детальніше про умови ліцензії можна дізнатися на сторінці довідки. PD

Застосовуючи ParserFunctions до параметрів шаблону, символ вертикальної лінії («|») може використовуватися для надання значення за замовчуванням, яке використовується, коли параметр не визначено. Використовуваний у функції синтаксичного аналізу #if, нерозгорнутий текст з параметра undefined оцінюватиметься як істина, що може бути неочікуваним результатом.

Тестування параметрів зі значеннями за замовчуванням і без них
Параметр {{{1}}}, {{{param}}} {{{1|}}}, {{{param|}}} {{#if:<параметр>|True|False}}
Опис Example, unnamed and named {{{1}}}, {{{param}}} {{{1|}}}, {{{param|}}}
Невизначено. Більше підходить для використання в іменованих параметрах. {{template}} {{{1}}} True False
визначено, але як нульовий/порожній {{template|}}, {{template|1=}}, {{template|param=}} False False
визначено, ненульовий і не порожній {{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 невизначений, або визначений і нульовий: містить лише порожні рядки та пробіли.

Саме другий спосіб використання ({{{1|}}}, приклад B) із заданим за замовчуванням порожнім значенням параметру найчастіше є очікуваним для ситуацій, коли параметр задано, але у вигляді порожньої рядка/нульового.

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 }}

Окремі шаблони можуть поводитися по-іншому у випадках, коли якийсь параметр не визначено чи коли його визначено як порожню строку. Якщо такий шаблон використано всередині іншого шаблону (який має той самий набір названих параметрів), один із способів гарантувати, що невизначені параметри залишаться невизначеними в батьківському шаблоні, такий (придатний також і для нумерованих параметрів):

{{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.

See also