Ajuda:Extension:ParserFunctions/pt
| PD | Nota importante: Ao gravar esta página, concorda em publicar a sua contribuição no domínio público. Caso não queira ou não possa fazê-lo, devido a restrições de licenças, por favor, não a edite. Esta é uma das {{ #ifeq: OdontoPédia | MediaWiki | páginas de ajuda no domínio público | páginas de ajuda no domínio público
}}, que podem ser livremente copiadas para qualquer wiki ou distribuídas com o MediaWiki; consulte Ajuda para ver as restantes e {{ #ifeq: OdontoPédia |
MediaWiki | Copiar | Copiar
}} para saber como copiá-las para a sua wiki. |
PD |
Tabela de conteúdo |
[editar] Extensão:ParserFunctions
Se a extensão {{ #ifeq: OdontoPédia | MediaWiki | ParserFunctions | ParserFunctions }} foi instalada na sua wiki, ela fornece onze funções adicionais ao analisador sintáctico, que suplementam as palavras mágicas já presentes no MediaWiki. Todas as funções fornecidas pela extensão têm a forma:
{{#função: argumento 1 | argumento 2 | argumento 3 ...}}
[editar] #expr
| Tipo | Operadores |
|---|---|
| Agrupamento (parênteses) | ( ) |
| Números | 1234.5 2.4E5 e (2.718) pi (3.142) |
| Lógicos | or |
| and | |
| = != <> > < <= >= | |
| Arredondamento | round |
| Binários | + - mod |
| * / div | |
| ^ | |
| Unários | not ceil trunc floor abs ln sin cos tan acos asin atan |
| e + - |
{{#expr: expressão matemática}}
Esta função calcula a expressão matemática e retorna o resultado. Portanto:
- {{#expr: 1 + 1 }} → {{#expr: 1 + 1 }}
Os operadores matemáticos disponíveis estão listados na tabela da direita, por ordem crescente de precedência. Para mais detalhes sobre cada operador, consulte {{ #ifeq: OdontoPédia | MediaWiki | MetaWiki: Help:Calculation | MetaWiki: Help:Calculation }}{{#if:| |}}.
A precisão e formato do resultado variam de acordo com o sistema operativo do servidor que está a executar o MediaWiki e com o formato numérico da língua do site.
Nos operadores de {{ #ifeq:
OdontoPédia
| MediaWiki | álgebra booleana | álgebra booleana }}, o número zero assume o valor lógico «falso» (0). Qualquer outro número, positivo ou negativo, assume o valor lógico «verdadeiro» (1).
Assim, os seguintes exemplos demonstram uma tabela de verdade para o operador booleano E (AND):
- {{#expr: 0 and 0 }} → {{#expr: 0 and 0 }} (falso e falso = falso)
- {{#expr: 0 and 1 }} → {{#expr: 0 and 1 }} (falso e verdadeiro = falso)
- {{#expr: -1 and 0 }} → {{#expr: -1 and 0 }} (verdadeiro e falso = falso)
- {{#expr: 2 and -2 }} → {{#expr: 2 and -2 }} (verdadeiro e verdadeiro = verdadeiro)
Uma expressão de entrada vazia retorna uma expressão de saída vazia:
- {{#expr: }} → {{#expr: }}
Expressões inválidas retornam uma ou várias mensagens de erro, que podem ser apanhadas usando a função #iferror:
- {{#expr: 1+ }} → {{#expr: 1+ }}
- {{#expr: 1 xpto 2 }} → {{#expr: 1 xpto 2 }}
| }}Aviso Aviso: {{#if: | |
- {{#expr: 20060618093259 mod 10000}} → {{#expr: 20060618093259 mod 10000}}
retorna 3259 na maioria das vezes, mas ocasionalmente retorna -6357. Isto varia com as especificações e a configuração do servidor que executa a wiki (ver {{#switch:{{{2}}} |RESO= |}}bug 6356{{#if:| [{{{2}}}]}}).
[editar] #if
{{#if: expressão | valor se verdadeiro | valor se falso}}
Esta função determina se a expressão tem conteúdo ou está vazia. Se tem conteúdo, retorna o valor se verdadeiro. Se está vazia, ou só contém caracteres em branco (espaços, linhas novas, etc.), retorna o valor se falso.
- {{#if: texto | verdadeiro | falso}} → {{#if: texto | verdadeiro | falso}}
- {{#if: | verdadeiro | falso}} → {{#if: | verdadeiro | falso}}
- {{#if: | verdadeiro | falso}} → {{#if: | verdadeiro | falso}}
- {{#if:
| verdadeiro | falso}} → {{#if:
| verdadeiro | falso}}
A expressão é sempre interpretada como texto puro, portanto expressões matemáticas não são calculadas:
- {{#if: 1 = 2 | verdadeiro | falso}} → {{#if: 1 = 2 | verdadeiro | falso}}
Qualquer um dos valores a retornar, ou ambos, podem ser omitidos:
- {{#if: texto | verdadeiro}} → {{#if: texto | verdadeiro}}
- {{#if: texto | | falso}} → {{#if: texto | | falso}}
- {{#if: | verdadeiro}} → {{#if: | verdadeiro}}
Também é possível intercalar funções #if, ou seja, testar uma dentro da outra. Pode ser feito mais ou menos desta forma:
- {{#if: texto1 | {{#if: texto2 | verdadeiro | falso1}} | falso2}}
Para mais exemplos do uso desta função, consulte funções do analisador sintáctico nas predefinições.
[editar] #ifeq
{{#ifeq: expressão 1 | expressão 2 | valor se verdadeiro | valor se falso}}
Esta função determina se as duas expressões são idênticas.
Se ambas resultarem em valores numéricos válidos, são comparadas numericamente:
- {{#ifeq: 01 | 1 | verdadeiro | falso}} → {{#ifeq: 01 | 1 | verdadeiro | falso}}
- {{#ifeq: 0 | -0 | verdadeiro | falso}} → {{#ifeq: 0 | -0 | verdadeiro | falso}}
- {{#ifeq: 1e3 | 1000 | verdadeiro | falso}} → {{#ifeq: 1e3 | 1000 | verdadeiro | falso}}
- {{#ifeq: {{#expr:10^3}} | 1000 | verdadeiro | falso}} → {{#ifeq: {{#expr:10^3}} | 1000 | verdadeiro | falso}}
Caso contrário, são comparadas como texto:
- {{#ifeq: "01" | "1" | verdadeiro | falso}} → {{#ifeq: "01" | "1" | verdadeiro | falso}}
- {{#ifeq: "0" | "-0" | verdadeiro | falso}} → {{#ifeq: "0" | "-0" | verdadeiro | falso}}
- {{#ifeq: 10^3 | 1000 | verdadeiro | falso}} → {{#ifeq: 10^3 | 1000 | verdadeiro | falso}}
A comparação de texto é sensível a maiúsculas e minúsculas:
- {{#ifeq: a | a | verdadeiro | falso}} → {{#ifeq: a | a | verdadeiro | falso}}
- {{#ifeq: a | A | verdadeiro | falso}} → {{#ifeq: a | A | verdadeiro | falso}}
- {{#ifeq: [[link]] | [[link]] | verdadeiro | falso}} → {{#ifeq: link | link | verdadeiro | falso}}
- {{#ifeq: [[link]] | [[Link]] | verdadeiro | falso}} → {{#ifeq: link | Link | verdadeiro | falso}}
Se uma expressão resulta em texto e a outra num número, é sempre retornado o valor se falso:
- {{#ifeq: 1 | "1" | verdadeiro | falso}} → {{#ifeq: 1 | "1" | verdadeiro | falso}}
- {{#ifeq: {{#expr: 1}} | "1" | verdadeiro | falso}} → {{#ifeq: {{#expr: 1}} | "1" | verdadeiro | falso}}
{{#if: O conteúdo no interior de cada elemento sintáctico, (como <nowiki>), é temporariamente substituído por um código único. Isto afecta as comparações:
- {{#ifeq: <nowiki>texto</nowiki> | <nowiki>texto</nowiki> | verdadeiro | falso}} → {{#ifeq: texto | texto | verdadeiro | falso}}
- {{#ifeq: <math>texto</math> | <math>texto</math> | verdadeiro | falso}} → {{#ifeq: <math>texto</math> | <math>texto</math> | verdadeiro | falso}}
- {{#ifeq: {{#tag:math|texto}} | {{#tag:math|texto}} | verdadeiro | falso}} → {{#ifeq: "math" é uma tag de extensão desconhecida | "math" é uma tag de extensão desconhecida | verdadeiro | falso}}
- {{#ifeq: [[link]] | [[link]] | verdadeiro | falso}} → {{#ifeq: link | link | verdadeiro | falso}}
Se os dois textos que são comparados forem chamadas idênticas para uma mesma predefinição que contenha elementos sintácticos, então o resultado é verdadeiro. Se forem chamadas para duas predefinições distintas o resultado é falso, mesmo que o conteúdo destas seja idêntico.
|}}Aviso Aviso: {{#if: O conteúdo no interior de cada elemento sintáctico, (como <nowiki>), é temporariamente substituído por um código único. Isto afecta as comparações:
Se os dois textos que são comparados forem chamadas idênticas para uma mesma predefinição que contenha elementos sintácticos, então o resultado é verdadeiro. Se forem chamadas para duas predefinições distintas o resultado é falso, mesmo que o conteúdo destas seja idêntico. | | O conteúdo no interior de cada elemento sintáctico, (como <nowiki>), é temporariamente substituído por um código único. Isto afecta as comparações:
Se os dois textos que são comparados forem chamadas idênticas para uma mesma predefinição que contenha elementos sintácticos, então o resultado é verdadeiro. Se forem chamadas para duas predefinições distintas o resultado é falso, mesmo que o conteúdo destas seja idêntico. |
[editar] #iferror
{{#iferror: expressão | valor se verdadeiro | valor se falso}}
Esta função determina se ocorre um erro no cálculo da expressão. Se ocorrer um erro, retorna o valor se verdadeiro. Se não, retorna o valor se falso.
- {{#iferror: {{#expr: 1 + 2 }} | verdadeiro | falso}} → {{#iferror: {{#expr: 1 + 2 }} | verdadeiro | falso}}
- {{#iferror: {{#expr: 1 + X }} | verdadeiro | falso}} → {{#iferror: {{#expr: 1 + X }} | verdadeiro | falso}}
- porque {{#expr: 1 + X }} → {{#expr: 1 + X }}
Um erro ocorre quando o resultado do cálculo contém um objecto HTML com class="error". Este objecto pode ser gerado por outras funções do analisador sintáctico, como #expr, #time e #rel2abs, por erros em predefinições como ciclos e recursão, ou por outros erros failsoft detectados pelo analisador sintáctico.
Qualquer um dos valores a retornar, ou ambos, podem ser omitidos. Se for omitido o valor se falso e não ocorrer um erro, é retornado o resultado da expressão.
- {{#iferror: {{#expr: 1 + 2 }} | verdadeiro}} → {{#iferror: {{#expr: 1 + 2 }} | verdadeiro}}
- {{#iferror: {{#expr: 1 + X }} | verdadeiro}} → {{#iferror: {{#expr: 1 + X }} | verdadeiro}}
- {{#iferror: <strong class="error">a</strong> | verdadeiro}} → {{#iferror: a | verdadeiro}}
Se também for omitido o valor se verdadeiro e ocorrer um erro, é retornada uma expressão vazia:
- {{#iferror: {{#expr: 1 + 2 }} }} → {{#iferror: {{#expr: 1 + 2 }} }}
- {{#iferror: {{#expr: 1 + X }} }} → {{#iferror: {{#expr: 1 + X }} }}
- {{#iferror: <strong class="error">a</strong> }} → {{#iferror: a }}
[editar] #ifexpr
{{#ifexpr: expressão matemática | valor se verdadeiro | valor se falso}}
Esta função determina se a expressão matemática é diferente de zero. Primeiro, calcula a expressão da mesma forma que #expr acima, com os mesmos operadores. O resultado numérico do cálculo é então avaliado com lógica Booleana. Portanto, se for diferente de zero, retorna valor se verdadeiro. Se for zero, retorna valor se falso.
- {{#ifexpr: 0 - 1 | verdadeiro | falso}} → {{#ifexpr: 0 - 1 | verdadeiro | falso}}
- {{#ifexpr: 0 + 0 | verdadeiro | falso}} → {{#ifexpr: 0 + 0 | verdadeiro | falso}}
- {{#ifexpr: 0 + 1 | verdadeiro | falso}} → {{#ifexpr: 0 + 1 | verdadeiro | falso}}
Uma expressão de entrada vazia retorna o valor se falso:
- {{#ifexpr: | verdadeiro | falso}} → {{#ifexpr: | verdadeiro | falso}}
O inverso desta função pode ser obtido com #ifeq, comparando #expr com zero:
- {{#ifeq: {{#expr: 0 - 1}} | 0 | verdadeiro | falso}} → {{#ifeq: {{#expr: 0 - 1}} | 0 | verdadeiro | falso}}
- {{#ifeq: {{#expr: 0 + 0}} | 0 | verdadeiro | falso}} → {{#ifeq: {{#expr: 0 + 0}} | 0 | verdadeiro | falso}}
- {{#ifeq: {{#expr: 0 + 1}} | 0 | verdadeiro | falso}} → {{#ifeq: {{#expr: 0 + 1}} | 0 | verdadeiro | falso}}
excepto nos casos em que a expressão de entrada esteja vazia ou seja incorrecta (uma mensagem de erro é tratada como um trecho de texto normal; não é igual a zero, portanto resulta em valor se verdadeiro).
Qualquer um dos valores de retorno, ou ambos, podem ser omitidos. Se o valor de retorno for omitido, é retornada uma expressão vazia:
- {{#ifexpr: 1 > 0 | verdadeiro }} → {{#ifexpr: 1 > 0 | verdadeiro }}
- {{#ifexpr: 1 < 0 | verdadeiro }} → {{#ifexpr: 1 < 0 | verdadeiro }}
- {{#ifexpr: 1 > 0 | | falso}} → {{#ifexpr: 1 > 0 | | falso}}
- {{#ifexpr: 1 < 0 | | falso}} → {{#ifexpr: 1 < 0 | | falso}}
- {{#ifexpr: 1 > 0 }} → {{#ifexpr: 1 > 0 }}
- {{#ifexpr: 1 < 0 }} → {{#ifexpr: 1 < 0 }}
Alguns resultados inesperados:
- {{#ifexpr: -0 | verdadeiro | falso}} → {{#ifexpr: -0 | verdadeiro | falso}}
- {{#ifexpr: 1 * 0 | verdadeiro | falso}} → {{#ifexpr: 1 * 0 | verdadeiro | falso}}
- {{#ifexpr: -1 * 0 | verdadeiro | falso}} → {{#ifexpr: -1 * 0 | verdadeiro | falso}}
[editar] #ifexist
{{#ifexist: página | valor se verdadeiro | valor se falso}}
Esta função determina se a página especificada existe na wiki.
A função retorna o valor se verdadeiro se a página existir, quer esta tenha conteúdo, esteja aparentemente vazia (isto é, contenha metadados como links de categorias ou palavras mágicas, mas nenhum conteúdo visível), esteja efectivamente vazia, ou seja uma página de redireccionamento. Só para páginas cujo link estaria a vermelho é retornado o valor se falso, incluindo páginas que já existiram mas tenham sido eliminadas.
- {{#ifexist: Ajuda:Extension:ParserFunctions/pt | verdadeiro | falso}} → {{#ifexist: Ajuda:Extension:ParserFunctions/pt | verdadeiro | falso}}
- {{#ifexist: XXXAjuda:Extension:ParserFunctions/ptXXX | verdadeiro | falso}} → {{#ifexist: XXXAjuda:Extension:ParserFunctions/ptXXX | verdadeiro | falso}}
A função retorna o valor se verdadeiro para mensagens de sistema que tenham sido alteradas na wiki e para páginas especiais que existam.
- {{#ifexist: MediaWiki:Copyright | verdadeiro | falso}} → {{#ifexist: MediaWiki:Copyright | verdadeiro (porque MediaWiki:Copyright foi alterada) | falso (porque MediaWiki:Copyright não foi alterada)}}
- {{#ifexist: Special:Watchlist | verdadeiro | falso}} → {{#ifexist: Special:Watchlist | verdadeiro | falso}}
- {{#ifexist: Special:CheckUser | verdadeiro | falso}} → {{#ifexist: Special:CheckUser | verdadeiro (porque a {{ #ifeq: OdontoPédia
| MediaWiki | extensão CheckUser | extensão CheckUser }} foi instalada na wiki) | falso (porque a {{ #ifeq: OdontoPédia | MediaWiki | extensão CheckUser | extensão CheckUser }} não foi instalada na wiki)}}
A função #ifexist é considerada «exigente» e só um número limitado destas funções pode ser colocado numa página (incluindo funções dentro de páginas transcluídas nessa página). Quando este número é excedido, a página é colocada na categoria Category:Páginas com demasiadas chamadas a funções exigentes, e quaisquer funções #ifexist: que ainda restem executar, retornam automaticamente o valor se falso quer a sua página alvo exista ou não.
| 20px | Dica para administradores: Configure o número máximo de funções exigentes permitidas por página, na variável {{ #ifeq: OdontoPédia | MediaWiki | $wgExpensiveParserFunctionLimit | $wgExpensiveParserFunctionLimit
}}. |
Se uma página verifica a existência de outra página alvo usando #ifexist:, então a página que verifica aparece na lista Especial:Páginas afluentes da página alvo. Portanto, se o código {{#ifexist:Xpto}} existir ao vivo nesta página (que se chama «Ajuda:Extension:ParserFunctions/pt»), então Especial:Páginas afluentes/Xpto listará «Ajuda:Extension:ParserFunctions/pt».
Nas wikis que usam um repositório partilhado de ficheiros multimédia, #ifexist pode ser usado para verificar se um ficheiro foi carregado no repositório, mas não na própria wiki:
- {{#ifexist: Arquivo:Example-pt.png | verdadeiro | falso}} → {{#ifexist: Arquivo:Example-pt.png | verdadeiro | falso}}
- {{#ifexist: Image:Example-pt.png | verdadeiro | falso}} → {{#ifexist: Image:Example-pt.png | verdadeiro | falso}}
- {{#ifexist: Mídia:Example-pt.png | verdadeiro | falso}} → {{#ifexist: Mídia:Example-pt.png | verdadeiro | falso}}
Se tiver sido criada uma página de descrição do ficheiro, é retornado o valor se verdadeiro para todas as entradas acima.
[editar] #rel2abs
{{#rel2abs: deslocamento relativo}}
{{#rel2abs: deslocamento relativo | endereço base}}
Esta função cria um endereço completo, para uma página ou para um ficheiro, com base num deslocamento relativo a partir de um endereço base. No parâmetro de entrada deslocamento relativo, os seguintes são válidos:
- . - o nível actual
- .. - subir um nível
- /xpto - descer um nível para o sub-directório /xpto
Assim:
- {{#rel2abs: /quatro | Ajuda:Um/dois/três}} → {{#rel2abs: /quatro | Ajuda:Um/dois/três}}
- {{#rel2abs: ./quatro | Ajuda:Um/dois/três}} → {{#rel2abs: ./quatro | Ajuda:Um/dois/três}}
- {{#rel2abs: ../quatro | Ajuda:Um/dois/três}} → {{#rel2abs: ../quatro | Ajuda:Um/dois/três }}
- {{#rel2abs: ../. | Ajuda:Um/dois/três}} → {{#rel2abs: ../. | Ajuda:Um/dois/três}}
Se o parâmetro endereço base não for especificado, será usado o nome completo da página:
- {{#rel2abs: /quatro}} → {{#rel2abs: /quatro}}
Sintaxe inválida, como /. ou /./, é ignorada.
- {{#rel2abs: ../quatro/. | Ajuda:Um/dois/três}} → {{#rel2abs: ../quatro/. | Ajuda:Um/dois/três}}
- {{#rel2abs: ../.././quatro | Ajuda:Um/dois/três}} → {{#rel2abs: ../.././quatro | Ajuda:Um/dois/três}}
- {{#rel2abs: ../../../quatro | Ajuda:Um/dois/três}} → {{#rel2abs: ../../../quatro | Ajuda:Um/dois/três}}
- {{#rel2abs: ../../../../quatro | Ajuda:Um/dois/três}} → {{#rel2abs: ../../../../quatro | Ajuda:Um/dois/três}}
[editar] #switch
{{#switch: texto
| caso = valor
| caso = valor
...
| valor por omissão
}}
Esta função faz uma comparação entre texto e cada um dos casos de teste, e retorna o valor associado ao caso que seja igual ao texto:
- {{#switch: 1 | 1 = um | 2 = dois | outro}} → {{#switch: 1 | 1 = um | 2 = dois | outro}}
[editar] Valor por omissão
Se não for encontrada nenhuma correspondência, é retornado o valor por omissão:
- {{#switch: 3 | 1 = um | 2 = dois | outro}} → {{#switch: 3 | 1 = um | 2 = dois | outro}}
Nesta forma, o valor por omissão não pode conter um sinal de igual (=) e tem de ser o último parâmetro:
- {{#switch: 3 | 1 = um | 2 = dois | ou=tro}} → {{#switch: 3 | 1 = um | 2 = dois | ou=tro }}
- {{#switch: 3 | outro | 1 = um | 2 = dois}} → {{#switch: 3 | outro | 1 = um | 2 = dois}}
Em alternativa, o valor por omissão pode ser declarado explicitamente usando #default como caso.
{{#switch: texto
| caso = valor
| caso = valor
...
| #default = valor por omissão
}}
Desta forma, pode ser colocado em qualquer posição:
- {{#switch: 3 | #default = outro | 1 = um | 2 = dois}} → {{#switch: 3 | #default = outro | 1 = um | 2 = dois}}
Se o valor por omissão for omitido e não for encontrada nenhuma correspondência, não é retornado nenhum valor:
- {{#switch: 3 | 1 = um | 2 = dois}} → {{#switch: 3 | 1 = um | 2 = dois}}
[editar] Agrupamento dos valores
Quando vários casos têm o mesmo valor, em vez de repetir esse valor para todos eles, é possível agrupá-los, da seguinte forma:
{{#switch: texto
| caso1 = valor1
| caso2
| caso3 = valor2
| caso4
| caso9
| caso6 = valor3
| valor por omissão
}}
Aqui, os casos 2 e 3 retornam o valor2; os casos 4, 9 e 6 retornam o valor3. Por exemplo:
- {{#switch: 9 | 1 = um | 2 | 3 = dois | 4 | 9 | 6 = três | valor por omissão}} → {{#switch: 9 | 1 = um | 2 | 3 = dois | 4 | 9 | 6 = três | valor por omissão}}
[editar] Características da comparação
Tal como #ifeq, a comparação é feita numericamente se tanto o texto como o caso forem números. Se não, são comparados como texto, sensível a maiúsculas e minúsculas:
- {{#switch: a | a = A | b = B | C}} → {{#switch: a | a = A | b = B | C}}
- {{#switch: A | a = A | b = B | C}} → {{#switch: A | a = A | b = B | C}}
- {{#switch: 0 + 1 | 1 = um | 2 = dois | outro}} → {{#switch: 0 + 1 | 1 = um | 2 = dois | outro}}
- {{#switch: {{#expr: 0 + 1}} | 1 = um | 2 = dois | outro}} → {{#switch: {{#expr: 0 + 1}} | 1 = um | 2 = dois | outro}}
Um caso pode ser o vazio:
- {{#switch: | = vazio | 1 = um | dois}} → {{#switch: | = vazio | 1 = um | dois}}
Se dois ou mais casos forem iguais, só o primeiro será retornado:
- {{#switch: a | a = A | a = B | C}} → {{#switch: a | a = A | a = B | C}}
[editar] Uso de sinais de igual no caso
Os casos não podem conter sinais de igual (=). No entanto, é possível inserir sinais de igual usando uma predefinição {{={{#if:| |{{{2}}} }}{{#if:| |{{{3}}} }}{{#if:| |{{{4}}} }}{{#if:| |{{{5}}} }}{{#if:| |... }}}} que contenha unicamente um sinal de igual:
- {{#switch: 1=2
- | 1=2 = simples
- | 1<nowiki>=</nowiki>2 = nowiki
- | 1=2 = html
- | 1{{=}}2 = predefinição
- | outro
- }} → {{#switch: 1=2 | 1=2 = simples | 1<nowiki>=</nowiki>2 = nowiki | 1=2 = html | 1=2 = predefinição | outro }}
| MediaWiki | Template:NBA color | Template:NBA color }}. Um exemplo complexo pode ser encontrado em {{ #ifeq: OdontoPédia | MediaWiki | Template:Extension | Template:Extension }}.
[editar] #time
| Código | Descrição | Resultado actual |
|---|---|---|
| Ano | ||
| Y | Ano com 4 algarismos. | {{#time:Y}} |
| y | Ano com 2 algarismos. | {{#time:y}} |
| L | 1 se o ano é bissexto (Leap), 0 se não. | {{#time:L}} |
| o ¹ | Ano no ISO-8601. ² | {{#time:o}} ³ |
|
¹ Requer o PHP 5.1.0 ou posterior e a rev:45208 do MediaWiki. | ||
| Mês | ||
| n | Mês, sem zeros à esquerda. | {{#time:n}} |
| m | Mês, com zeros à esquerda. | {{#time:m}} |
| M | Nome abreviado do mês, na língua do site. | {{#time:M}} |
| F | Nome completo do mês, na língua do site. | {{#time:F}} |
| xg | Antes de uma formatação para o mês (n, m, M, F), produzir o nome completo do mês na forma genitiva se a língua do site fizer distinção entre as formas genitiva e nominativa. | Em polaco:
(nominativa) {{#time:d F Y|20 June 2010}} → 20 czerwiec 2010 (genitiva) {{#time:d xg Y|20 June 2010}} → 20 czerwca 2010 |
| Semana | ||
| W | Número da semana no ISO-8601, com zeros à esquerda. | {{#time:W}} |
| Dia | ||
| j | Dia do mês, sem zeros à esquerda. | {{#time:j}} |
| d | Dia do mês, com zeros à esquerda. | {{#time:d}} |
| z | |Nota}} Nota: {{#if: |{{{1}}} }} Para obter o dia do ano no padrão ISO, adicionar 1.
|
{{#time:z}} |
| D | Nome abreviado do dia. Raramente internacionalizado. | {{#time:D}} |
| l | Nome completo do dia. Raramente internacionalizado. | {{#time:l}} |
| N | Dia da semana no ISO-8601 (Seg.-Feira = 1, Domingo = 7). | {{#time:N}} |
| w | Número do dia da semana (Domingo = 0, Sábado = 6). | {{#time:w}} |
| Hour | ||
| a | "am" durante a manhã (00:00:00 → 11:59:59), "pm" à tarde e noite (12:00:00 → 23:59:59) | {{#time:a}} |
| A | Versão em maiúsculas de a acima. | {{#time:A}} |
| g | Hora no formato 12 horas, sem zeros à esquerda. | {{#time:g}} |
| h | Hora no formato 12 horas, com zeros à esquerda. | {{#time:h}} |
| G | Hora no formato 24 horas, sem zeros à esquerda. | {{#time:G}} |
| H | Hora no formato 24 horas, com zeros à esquerda. | {{#time:H}} |
| Minutos e segundos | ||
| i | Minutos após a hora, com zeros à esquerda. | {{#time:i}} |
| s | Segundos após o minuto, com zeros à esquerda. | {{#time:s}} |
| U | Segundos desde 1 de Janeiro de 1970 00:00:00 GMT. | {{#time:U}} |
| Miscellaneous | ||
| L | 1 se este ano é bissexto no calendário Gregoriano, 0 se não. | {{#time:L}} |
| t | Número de dias no mês presente. | {{#time:t}} |
| c | Data no formato ISO-8601, equivalente a Y-m-dTH:i:s+00:00. | {{#time:c}} |
| r | Data no formato RFC 2822, equivalente a D, j M Y H:i:s +0000, com o nome do dia e o nome do mês não internacionalizados. | {{#time:r}} |
| Calendários não Gregorianos | ||
| Iraniano | ||
| xij | Dia do mês. | {{#time:xij}} |
| xiF | Nome completo do mês. | {{#time:xiF}} |
| xin | Número do mês. | {{#time:xin}} |
| xiY | Ano completo. | {{#time:xiY}} |
| Hebraico | ||
| xjj | Dia do mês. | {{#time:xjj}} |
| xjF | Nome completo do mês. | {{#time:xjF}} |
| xjx | Forma genitiva do nome do mês. | {{#time:xjx}} |
| xjn | Número do mês. | {{#time:xjn}} |
| xjY | Ano completo. | {{#time:xjY}} |
| Solar Tailandês | ||
| xkY | Ano completo. | {{#time:xkY}} |
| Formatação | ||
| xn | Formatar o próximo código numérico como um número ASCII. | Em Hindú, {{#time:H, xnH}} produz ०६, 06 |
| xN | Como xn, mas activa e desactiva conforme é repetido, e dura até ao fim do texto ou até que seja encontrado xN no texto. | |
| xr | Formatar o próximo número como um número romano. Só funciona para números até 3000. | {{#time:xrY}} → {{#time:xrY}} |
{{#time: formato}}
{{#time: formato | data/hora}}
Esta função formata uma data e/ou hora de acordo com a sintaxe fornecida. Por omissão, será usada a palavra mágica {{CURRENTTIMESTAMP}}, isto é, a hora da última vez em que a página foi apresentada em HTML.
- {{#time: d-m-Y }} → {{#time: d-m-Y }}
- {{#time: d M [[Y]] }} → {{#time: d M Y }}
Pode ser especificado um objecto data/hora:
- {{#time: d-m-Y | 2001-01-01}} → {{#time: d-m-Y | 2001-01-01}}
A lista de códigos de formatação válidos é apresentada na tabela da direita. Qualquer carácter no texto de formatação que não seja reconhecido, é passado inalterado para o resultado. Existem duas formas de escapar caracteres no texto de formatação, impedindo que sejam interpretados:
- Uma barra invertida (\) seguida de um carácter de formatação são interpretados como o carácter literal, sem formatação.
- {{#time: j de F de Y}} → {{#time: j de F de Y}}
- {{#time: j \de F \de Y}} → {{#time: j \de F \de Y}}
- Caracteres envoltos em aspas duplas (") são considerados caracteres literais e não caracteres de formatação e as aspas são removidas no resultado. Adicionalmente, o dígrafo (dois caracteres interpretados como um só) xx é interpretado como o carácter literal x.
- {{#time: i's" }} → {{#time: i's" }}
O objecto data/hora pode ter qualquer formato aceite pela função strtotime() do PHP. São aceites objectos absolutos (20 December 2000) e relativos (+20 hours).
- {{#time: r | now}} → {{#time: r|now}}
- {{#time: r | +2 hours}} → {{#time: r|+2 hours}}
- {{#time: r | now + 2 hours}} → {{#time: r|now + 2 hours}}
Se calculou uma timestamp de Unix, pode usá-la em cálculos de datas precedendo-a com uma arroba @.
- {{#time: U | now }} → {{#time: U | now}}
- {{#time: r | @{{#time: U}}}} → {{#time: r| @{{#time:U}} }}
| }}Aviso Aviso: {{#if: | |
- {{#time: d F Y | 15 April 0099 }} → {{#time: d F Y | 15 April 0099 }}
- {{#time: d F Y | 15 April 10000 }} → {{#time: d F Y | 15 April 10000 }}
Datas absolutas podem ser especificadas de forma completa ou parcial; a função preenche as partes que não tenham sido especificadas usando os valores actuais:
- {{#time: Y | January 1 }} → {{#time: Y | January 1 }}
Um número de quatro algarismos é interpretado como horas e minutos, se possível, e como um ano, se não:
- {{#time: Y m d H:i:s | 1959 }} → {{#time: Y m d H:i:s | 1959 }}
- (1959 é considerado uma hora e não um ano)
- {{#time: Y m d H:i:s | 1960 }} → {{#time: Y m d H:i:s | 1960 }}
- (como 19:60 não é uma hora válida, 1960 é considerado um ano)
Um número de seis algarismos é interpretado como horas, minutos e segundos, se possível, e como um erro, se não (não é nunca tratado, por exemplo, como ano e mês):
- {{#time: Y m d H:i:s | 195909 }} → {{#time: Y m d H:i:s | 195909 }}
- (195909 é considerado uma hora e não ano + mês)
- {{#time: Y m d H:i:s | 196009 }} → {{#time: Y m d H:i:s | 196009 }}
- (embora 19:60:09 não seja uma hora válida, 196009 não é interpretado como Setembro de 1960)
| }}Aviso Aviso: {{#if: | |
- {{#time: Y m d H:i:s | January 1 }} → {{#time: Y m d H:i:s | January 1 }}
- {{#time: Y m d H:i:s | February 2007 }} → {{#time: Y m d H:i:s | February 2007 }}
- (vai para o início do mês, não para o dia actual)
A função faz alguns cálculos matemáticos:
- {{#time: d F Y | January 0 2008 }} → {{#time: d F Y | January 0 2008 }}
- {{#time: d F | January 32 }} → {{#time: d F | January 32 }}
- {{#time: d F | February 29 2008 }} → {{#time: d F | February 29 2008 }}
- {{#time: d F | February 29 2007 }} → {{#time: d F | February 29 2007 }}
[editar] #timel
Esta função é idêntica a {{#time: ... }}, excepto por usar, como valor por omissão, a hora local do servidor da wiki (tal como definido em {{ #ifeq: OdontoPédia | MediaWiki | $wgLocaltimezone | $wgLocaltimezone }}) quando não é fornecida uma data:
- {{#time: Y-m-d }} → {{#time: Y-m-d }}
- {{#timel: Y-m-d }} → {{#timel: Y-m-d }}
- {{#time: Y F d h:i:s}} → {{#time: Y F d h:i:s}}
- {{#timel: Y F d h:i:s}} → {{#timel: Y F d h:i:s}}
[editar] #titleparts
{{#titleparts: página | nº segmentos | nº primeiro segmento}}
Esta função separa um título de página em segmentos com base nas barras (/, e retorna alguns desses segmentos. Se o parâmetro nº segmentos for omitido, por omissão será zero e são retornados todos os segmentos. Se o parâmetro 1º segmento for omitido ou for zero, por omissão, toma o valor 1:
- {{#titleparts: Discussão:Um/dois/três }} → {{#titleparts: Discussão:Um/dois/três }}
- {{#titleparts: Discussão:Um/dois/três | 1 }} → {{#titleparts: Discussão:Um/dois/três | 1 }}
- {{#titleparts: Discussão:Um/dois/três | 2 }} → {{#titleparts: Discussão:Um/dois/três | 2 }}
- {{#titleparts: Discussão:Um/dois/três | 2 | 2 }} → {{#titleparts: Discussão:Um/dois/três | 2 | 2 }}
Ambos os parâmetros aceitam valores negativos. Valores negativos no parâmetro nº segmentos efectivamente «retira» segmentos do fim do título:
- {{#titleparts: Discussão:Um/dois/três | -1 }} → {{#titleparts: Discussão:Um/dois/três | -1 }}
- {{#titleparts: Discussão:Um/dois/três | -1 | 1 }} → {{#titleparts: Discussão:Um/dois/três | -1 | 1 }}
- {{#titleparts: Discussão:Um/dois/três | -1 | 2 }} → {{#titleparts: Discussão:Um/dois/três | -1 | 2 }}
- {{#titleparts: Discussão:Um/dois/três | -1 | 3 }} → {{#titleparts: Discussão:Um/dois/três | -1 | 3 }}
Valores negativos no parâmetro 1º segmento efectivamente deixam no título só esse número de elementos, contados a partir da direita:
- {{#titleparts: Discussão:Um/dois/três | | -2 }} → {{#titleparts: Discussão:Um/dois/três | | -2 }}
- {{#titleparts: Discussão:Um/dois/três | 1 | -2 }} → {{#titleparts: Discussão:Um/dois/três | 1 | -2 }}
- {{#titleparts: Discussão:Um/dois/três | 2 | -2 }} → {{#titleparts: Discussão:Um/dois/três | 2 | -2 }}
- {{#titleparts: Discussão:Um/dois/três | 3 | -2 }} → {{#titleparts: Discussão:Um/dois/três | 3 | -2 }}
O título é dividido um máximo de 25 vezes; quaisquer mais barras (/) são ignoradas. O primeiro parâmetro também está limitado a 255 caracteres, porque é tratado como um título de página:
- {{#titleparts: 1/2/3/4/5/6/7/8/9/10/11/12/
13/14/15/16/17/18/19/20/21/22/23/24/25/26/
27/28/29/30/31 | 1 | 25 }} → {{#titleparts: 1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31 | 1 | 25 }}
| }}Aviso Aviso: {{#if: | |
- {{#titleparts: um/dois/três/quatro | 1 | 1 }} → {{#titleparts: um/dois/três/quatro | 1 | 1 }}
- {{#titleparts: um/dois/três/quatro | 1 | 2 }} → {{#titleparts: um/dois/três/quatro | 1 | 2 }}
- {{lc: {{#titleparts: um/dois/três/quatro | 1 | 1 }} }} → {{#titleparts: um/dois/três/quatro | 1 | 1 }}
[editar] Notas gerais
[editar] Substituição
As funções do analisador sintáctico podem ser substituídas. Isto significa que, quando a página é gravada, a chamada para a função é substituída pelo resultado dessa função. Para substituir uma função, coloque subst: antes do cardinal (#). Por exemplo, o código:
- {{#ifexist: Help:Contents/pt | sim | não}} → {{#ifexist: Help:Contents/pt | sim | não}}
demonstra se a página Help:Contents/pt existe ou não. Quando o código é colocado numa página, sempre que a página é apresentada ao utilizador o código é executado e resultará em sim se a página existir e, mais tarde, em não se entretanto ela tiver sido apagada. Se a função for substituída:
- {{subst:#ifexist: Help:Contents/pt | sim | não}} → sim
quando a página for gravada o código será executado e substituído pelo resultado da função (o código desaparece no conteúdo da página, sendo substituído pelo resultado). A partir daí, a função deixa de ser executada porque o código já não existe.
{{#if: || }}Aviso Aviso: {{#if: | |
- {{#ifexist: {{BASEPAGENAME}} | sim | não}} → {{#ifexist: Extension:ParserFunctions/pt | sim | não}}
- {{subst:#ifexist: {{BASEPAGENAME}} | sim | não}} → não
- {{subst:#ifexist: {{subst:BASEPAGENAME}} | sim | não}} → sim
Para mais detalhes consulte Help:Substitution.
[editar] Tabelas
As funções do analisador sintáctico frequentemente corrompem a sintaxe das tabelas, devido a ambas usarem a barra vertical (|) para separar elementos da sua sintaxe. Por exemplo, quando se pretende criar uma célula de uma tabela com características que podem variar, e é necessário passar a barra vertical no valor retornado por uma função, o analisador sintáctico não consegue distinguir que barras pertencem à função e que barras pertencem à tabela:
{| border=1
{{#ifexist: Help:Contents/pt
| | style="color:green" | '''sim'''
| | style="color:red" | '''não'''
}}
|}
resulta em:
| style="color:green" | sim | style="color:red" | não
}} |
Para tornear este problema, muitas wikis criam a predefinição {{!{{#if:|
|{{{2}}}
}}{{#if:|
|{{{3}}}
}}{{#if:|
|{{{4}}}
}}{{#if:|
|{{{5}}}
}}{{#if:|
|...
}}}} cujo conteúdo é unicamente uma barra vertical (|). Isto permite "esconder" as barras indesejadas do analisador sintáctico, de forma a que não sejam consideradas até que todas as predefinições e variáveis da página tenham sido expandidas:
{| border=1
{{#ifexist: Help:Contents/pt
| {{!}} style="color:green" {{!}} '''sim'''
| {{!}} style="color:red" {{!}} '''não'''
}}
|}
resulta em:
| style="color:green" | sim | style="color:red" | não
}} |
Outra forma de tornear o problema é construir a tabela usando sintaxe HTML, embora esta solução resulte em código muito menos intuitivo e propenso a erros.
| 20px | Dica para administradores: Pode melhorar a legibilidade do código de tabelas HMTL (e do restante código HTML) usando «HTML tidy». Para mais detalhes, consulte {{ #ifeq: OdontoPédia | MediaWiki | Manual:Build Tidy from source | Manual:Build Tidy from source
}} e {{ #ifeq: OdontoPédia |
MediaWiki | Manual:$wgUseTidy | Manual:$wgUseTidy
}}. |
| 20px | Dica para administradores: Também pode usar a extensão {{ #ifeq: OdontoPédia | MediaWiki | Pipe Escape | Pipe Escape
}} para melhorar o tratamento das barras verticais (pipes). |
[editar] Remoção de espaço vazio
O espaço vazio, incluindo quebras de linha, tabulações e espaços, é removido do início e fim de todos os parâmetros das funções do analisador sintáctico. Se este comportamento não for desejado, a inclusão de quaisquer caracteres que não correspondem a espaço vazio impede a remoção. Incluem-se nestes caracteres a codificação HTML para um carácter vazio ( ), os caracteres Unicode invisíveis (como o espaço de largura zero e as marcas de direcção), ou os elementos que são reconhecidos e removidos pelo analisador sintáctico do MediaWiki (como <nowiki/>):
- {{#ifeq: xpto | xpto | igual | diferente}} → {{#ifeq: xpto | xpto | igual | diferente}}
- {{#ifeq:  xpto   |   xpto  | igual | diferente}} → {{#ifeq: xpto | xpto | igual | diferente}}
- {{#ifeq: <nowiki/>xpto <nowiki/> | <nowiki/> xpto<nowiki/> | igual | diferente}} → {{#ifeq: xpto | xpto | igual | diferente}}
- {{#ifeq: <nowiki/>xpto<nowiki/> | <nowiki/>xpto<nowiki/> | igual | diferente}} → {{#ifeq: xpto | xpto | igual | diferente}}
[editar] Ver também
- Ajuda:Palavras mágicas
- Ajuda:Parâmetros de funções nas predefinições
- {{ #ifeq: OdontoPédia
| MediaWiki | MetaWiki: Help:Comparison between ParserFunctions syntax and TeX syntax | MetaWiki: Help:Comparison between ParserFunctions syntax and TeX syntax }}{{#if:| |}}
- {{ #ifeq: OdontoPédia
| MediaWiki | MetaWiki: Help:Newlines and spaces | MetaWiki: Help:Newlines and spaces }}{{#if:| |}}
- {{ #ifeq: OdontoPédia
| MediaWiki | Extension:StringFunctions | Extension:StringFunctions }}