Help:Funções sintáticas em predefinições

From MediaWiki.org
Jump to: navigation, search
This page is a translated version of the page Help:Parser functions in templates and the translation is 42% complete.

Other languages:
العربية • ‎català • ‎Deutsch • ‎Zazaki • ‎English • ‎español • ‎suomi • ‎français • ‎italiano • ‎日本語 • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎Türkçe • ‎українська
PD Nota: Ao editar esta página, você concorda em publicar a sua contribuição no âmbito da licença CC0. Veja as páginas de ajuda do domínio público para mais informações.
PD

When applying ParserFunctions to template parameters, a pipe symbol ("|") may be used to provide a default value, which is used when a parameter is not defined. Used in an #if parser function, the unexpanded text from the undefined parameter will evaluate as true, which may be an unexpected result.

Testing parameters with and without default values
Parameter {{{1}}}, {{{param}}} {{{1|}}}, {{{param|}}} {{#if:<parameter>|True|False}}
Description Example, unnamed and named {{{1}}}, {{{param}}} {{{1|}}}, {{{param|}}}
Undefined. More appropriate for use in named parameters. {{template}} {{{1}}} True False
definido, mas nulo/vazio {{template|}}, {{template|1=}}, {{template|param=}} False False
Defined, non-empty, and non-null. {{template|value}}, {{template|1=value}}, {{template|param=value}} value value True True
  • {{{1}}}
Exemplo A
{{#if: {{{1}}} | Parâmetro 1 não está definido, ou é definido e não nulo/não vazio. | Parâmetro 1 é nulo. Ele contém só seqüência(s) de caracteres vazia(s) ou quebra(s) de espaço, etc}}
Resultado
Parâmetro 1 não está definido, ou é definido e não nulo/não vazio.
  • {{{1|}}}
Exemplo B
{{#if: {{{1|}}} | Parâmetro 1 está definido e é não nulo/não vazio. | Parâmetro 1 não está definido, ou é definido mas nulo. Ele contém apenas seqüência(s) de caracteres vazia(s) ou quebra(s) de espaço, etc}}
Resultado
Parâmetro 1 não está definido, ou é definido mas nulo. Ele contém só seqüência(s) de caracteres vazia(s) ou quebra(s) de espaço, etc

O segundo uso ({{{1|}}}, exemplo B) com padrão vazio presente é muitas vezes a forma desejada para lidar com situações em que existe um parâmetro, mas é composto apenas de espaços vazios.

Testing and passing undefined parameters[edit]

Uma maneira de testar se um parâmetro foi especificado em uma chamada de predefinição é a seguinte:

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

Em casos raros, uma predefinição se comporta de maneira diferente quando um parâmetro não é especificado em relação a quando é especificado, mas vazio. Quando esta predefinição é usada por uma predefinição de envoltório (que usa o mesmo conjunto de parâmetros com nome), uma forma de assegurar que parâmetros indefinidos permaneçam indefinidos é a seguinte (a técnica também funciona com parâmetros numerados):

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

Ver também[edit]