Довідка:Функції парсера в шаблонах
Зверніть увагу! Коли Ви редагуєте цю сторінку, то погоджуєтесь робити свій внесок під ліцензією CC0. Детальніше про умови ліцензії можна дізнатися на сторінці довідки. |
Застосовуючи 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.