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 100% complete.

Other languages:
العربية • ‎Deutsch • ‎Zazaki • ‎English • ‎español • ‎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 Páginas de ajuda de domínio público para mais informações.
PD

Ao aplicar as ParserFunctions nos parâmetros das templates, a barra vertical ("|") pode ser utilizada para fornecer a string vazia como valor padrão, a fim de indicar a forma de lidar com as coisas, se um parâmetro é ou não passado.

  • {{{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
Comparação
Exemplo de uso em uma predefinição
primeiro parâmetro sem nome (1=)
parâmetro com nome (param=)
Condição de parâmetros Exemplo A:
{{#if: {{{1}}}| true| false}}
{{#if: {{{param}}}| true| false}}
Exemplo B:
{{#if: {{{1|}}}| true| false}}
{{#if: {{{param|}}}| true| false}}

{{template}}
não definido:
parâmetro não utilizado,
importante para parâmetros com nome
TRUE FALSE

{{template|}} .. {{template|1=}} .. {{template|param=}}
definido, mas nulo/vazio FALSE FALSE

{{template|value}} .. {{template|1=value}} .. {{template|param=value}}
definido
e
NÃO nulo nem vazio
TRUE TRUE

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.

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

{{#ifeq:{{{v|}}}|{{{v|-}}}| v foi especificado (e pode estar vazio) | v não foi especificado }}

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):

<!-- wrapper template code -->
{{wrapped_template|
normal_parameter={{{normal_parameter|}}}|
sensitive_parameter{{#if:{{{sensitive_parameter|}}}||NULL}}={{{sensitive_parameter}}}|
...
}}

Note que o wrapped_template recebe um normal_parameter especificado, mas vazio em dois casos: quando normal_parameter é especificado e vazio, e quando normal_parameter não é especificado (porque o valor padrão vazio é então especificado pela predefinição envoltório).

Por outro lado, o wrapped_template recebe um sensitive_parameter especificado apenas quando é de fato determinado, porque o #if altera o nome do parâmetro do wrapped_template para «sensitive_parameterNULL» quando o sensitive_parameter é indefinido.

Note também que o wrapped_template recebe um sensitive_parameter determinado e vazio apenas quando a predefinição envoltório recebe um sensitive_parameter determinado e vazio. Naturalmente, é preciso certificar-se o nome do parâmetro com sufixo wrapped_template não tenha sentido para o wrapped_template para que isso funcione corretamente.

Ver também[edit | edit source]