Help:Extension:ParserFunctions/pt

= Funções adicionais do analisador sintáctico = Se a extensão foi instalada na sua wiki, ela fornece dez 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:
 *  

#expr

 *  

Esta função calcula a expressão matemática e retorna o resultado. Portanto:


 *   &rarr; 

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.

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 lógica Booleana, o número zero assume o valor lógico «falso» (0) e qualquer outro número, positivo ou negativo, assume o valor lógico «verdadeiro» (1):


 *   &rarr; 
 *   &rarr; 
 *   &rarr; 
 *  </tt> &rarr; 

Uma expressão de entrada vazia retorna uma expressão de saída vazia:


 *  </tt> &rarr;  

Expressões inválidas retornam uma ou várias mensagens de erro, que podem ser apanhadas usando a função #iferror</tt>:


 *  </tt> &rarr; 
 *  </tt> &rarr; 

Algumas expressões podem resultar em erros de vírgula flutuante (floating-point) quando são usados números muito grandes ou muito pequenos:


 *  </tt> &rarr; 

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

#if

 *  </tt>

Esta função determina se a expressão tem conteúdo ou está vazia. Se tem conteúdo, retorna o valor se verdadeiro</tt>. Se está vazia, ou só contém caracteres em branco (espaços, nova linhas, etc.), retorna o valor se falso</tt>.


 *  </tt> &rarr; 
 *  </tt> &rarr; 
 *  </tt> &rarr; 
 *  </tt> &rarr; 

A expressão é sempre interpretada como texto puro, portanto expressões matemáticas não são calculadas:


 *  </tt> &rarr; 

Qualquer um dos valores a retornar, ou ambos, podem ser omitidos:


 *  </tt> &rarr;  
 *  </tt> &rarr;  
 * <tt> </tt> &rarr;  

Para mais exemplos do uso desta função, consulte funções do analisador sintáctico nas predefinições.

#ifeq

 * <tt> </tt>

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:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

Caso contrário, são comparadas como texto:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

A comparação de texto é sensível a maiúsculas e minúsculas:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 


 * <tt> </tt> &rarr;  
 * <tt> </tt> &rarr;  

Se uma expressão resulta em texto e a outra num número, é sempre retornado o <tt>valor se falso</tt>:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

O uso de elementos sintácticos nas expressões, (como <tt>  </tt>), resulta em erro:


 * <tt> </tt> &rarr;  
 * <tt> </tt> &rarr;  

#iferror

 * <tt> </tt>

Esta função determina se ocorre um erro no cálculo da expressão. Se ocorrer um erro, retorna o <tt>valor se verdadeiro</tt>. Se não, retorna o <tt>valor se falso</tt>.


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 
 * porque <tt> </tt> &rarr; 

Um erro ocorre quando o resultado do cálculo contém um objecto HTML com <tt>class="error"</tt>. Este objecto pode ser gerado por outras funções do analisador sintáctico, como <tt>#expr</tt>, <tt>#time</tt> e <tt>#rel2abs</tt>, 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 <tt>valor se falso</tt> e não ocorrer um erro, é retornado o resultado da <tt>expressão</tt>.


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

Se também for omitido o <tt>valor se verdadeiro</tt> e ocorrer um erro, é retornada uma expressão vazia:


 * <tt> </tt> &rarr;  
 * <tt> </tt> &rarr;  

#ifexpr

 * <tt> </tt>

Esta função determina se a expressão matemática é diferente de zero. Primeiro, calcula a expressão da mesma forma que <tt>#expr</tt> 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 <tt>valor se verdadeiro</tt>. Se for zero, retorna <tt>valor se falso</tt>.


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

O inverso desta função pode ser obtido com <tt>#ifeq</tt>, comparando <tt>#expr</tt> com zero:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

Uma expressão de entrada vazia retorna o <tt>valor se falso</tt>:


 * <tt> </tt> &rarr; 

Qualquer um dos valores de retorno, ou ambos, podem ser omitidos. Se o valor de retorno for omitido, é retornada uma expressão vazia:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr;  


 * <tt> </tt> &rarr;  
 * <tt> </tt> &rarr;  


 * <tt> </tt> &rarr;  
 * <tt> </tt> &rarr;  

#ifexist

 * <tt> </tt>

Esta função determina se a página especificada existe na wiki.

A função retorna o <tt>valor se verdadeiro</tt> se a página existir, quer tenha conteúdo, esteja visivelmente vazia (isto é, contenha metadados como ligações 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 cuja ligação estaria a vermelho é retornado o <tt>valor se falso</tt>, incluíndo páginas qua já existiram mas tenham sido eliminadas.


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

A função retorna o <tt>valor se verdadeiro</tt> para mensagens de sistema que tenham sido alteradas na wiki e para páginas especiais que existam.


 * <tt> </tt> &rarr;
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr;

A função <tt>#ifexist</tt> é 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:, e quaisquer funções <tt>#ifexist:</tt> que ainda restem executar, retornam automaticamente o <tt>valor se falso</tt> quer a sua página alvo exista ou não.

Se uma página verifica a existência de outra página alvo usando <tt>#ifexist:</tt>, então a página que verifica aparece na lista    : da página alvo. Portanto, se o código <tt> </tt> existir ao vivo nesta página, então     :/Xpto listará «».

Nas wikis que usam um repositório partilhado de ficheiros multimédia, <tt>#ifexist</tt> pode ser usado para verificar se um ficheiro foi carregado no repositório, mas não na própria wiki:


 * <tt> </tt>  &rarr; 
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

Se tiver sido criada uma página de descrição do ficheiro, é retornado o <tt>valor se verdadeiro</tt> para todas as entradas acima.

#rel2abs

 * <tt> </tt>
 * <tt> </tt>

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 <tt>deslocamento relativo</tt>, os seguintes são válidos:
 * <tt>.</tt> - o nível actual
 * <tt>..</tt> - subir um nível
 * <tt>/xpto</tt> - descer um nível para o sub-directório <tt>/xpto</tt>

Assim:


 * <tt> </tt> &rarr; '''
 * <tt> </tt> &rarr; '''
 * <tt> </tt> &rarr; '''
 * <tt> </tt> &rarr; '''

Se o parâmetro <tt>endereço base</tt> não for especificado, será usado o nome completo da página:


 * <tt> </tt> &rarr; '''

Sintaxe inválida, como <tt>/.</tt> ou <tt>/./</tt>, é ignorada.


 * <tt> </tt> &rarr; '''
 * <tt> </tt> &rarr; '''
 * <tt> </tt> &rarr; '''
 * <tt> </tt> &rarr; '''

#switch

 * <tt> </tt>

Esta função faz uma comparação entre <tt>texto</tt> e cada um dos casos de teste, e retorna o <tt>valor</tt> associado ao <tt>caso</tt> que seja igual ao <tt>texto</tt>:


 * <tt> </tt> &rarr; 

Se não for encontrada nenhuma correspondência, é retornado o <tt>valor por omissão</tt>:


 * <tt> </tt> &rarr; 

Nesta forma, o <tt>valor por omissão</tt> tem de ser o último parâmetro e não pode conter um sinal de igual (<tt>=</tt>):


 * <tt> </tt> &rarr;   

Em alternativa, o <tt>valor por omissão</tt> pode ser declarado explicitamente usando <tt>#default</tt> como caso; desta forma, pode ser colocado em qualquer posição:


 * <tt> </tt> &rarr; 

Se o <tt>valor por omissão</tt> for omitido e não for encontrada nenhuma correspondência, não é retornado nenhum valor:


 * <tt> </tt> &rarr;   

Quando vários casos têm o mesmo <tt>valor</tt>, em vez de repetir esse valor para todos eles, é possível agrupá-los, da seguinte forma:


 * <tt> </tt>

Aqui, os casos 2 e 3 retornam o <tt>valor2</tt>; os casos 4, 9 e 6 retornam o <tt>valor3</tt>.

Tal como <tt>#ifeq</tt>, a comparação é feita numericamente se tanto o <tt>texto</tt> como o <tt>caso</tt> forem números. Se não, são comparados como texto, sensível a maiúsculas e minúsculas:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

Um <tt>caso</tt> pode ser o vazio:


 * <tt> </tt> &rarr; 

Se dois ou mais casos forem iguais, só o primeiro será retornado:


 * <tt> </tt> &rarr; 

Os casos não podem conter sinais de igual (<tt>=</tt>). É possível inserir sinais de igual se criar uma predefinição = que contenha unicamente um sinal de igual: <tt>=</tt>. Depois, pode transcluir a predefinição desta forma:


 * <tt> </tt> &rarr; 

#time

 * <tt> </tt>
 * <tt> </tt>

Esta função formata uma data e/ou hora de acordo com a sintaxe fornecida. Por omissão, será usada a palavra mágica <tt> </tt>, isto é, a hora da última vez em que a página foi apresentada em HTML.


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

Pode ser especificado um objecto <tt>data/hora</tt>:


 * <tt> </tt> &rarr; 

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 (<tt>\</tt>) seguida de um carácter de formatação são interpretados como o carácter literal, sem formatação.


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 


 * Caracteres envolvidos em aspas duplas (<tt>"</tt>) são considerados caracteres literais e não de formatação, e as aspas são removidas no resultado. Adicionalmente, o dígrafo (dois caracteres interpretados como um só) <tt>xx</tt> é intrepretado como o carácter literal <tt>x</tt>.


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 


 * <tt> </tt> &rarr; 

O objecto <tt>data/hora</tt> pode ter qualquer formato aceite pela função strtotime do PHP. São aceites objectos absolutos (<tt>20 December 2000</tt>) e relativos (<tt>+20 hours</tt>).

A gama de datas aceites é desde 1 de Janeiro de 0100 até 31 de Dezembro de 9999. Valores fora desta gama serão interpretados incorrectamente:


 * <tt> </tt> &rarr; '''


 * <tt> </tt> &rarr; '''

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:


 * <tt> </tt> &rarr; '''

Um número de quatro algarismos é interpretado como horas e minutos, se possível, e como um ano, se não:


 * <tt> </tt> &rarr; '''
 * (1959 é considerado uma hora e não um ano)
 * <tt> </tt> &rarr; '''
 * (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):


 * <tt> </tt> &rarr; '''
 * (195909 é considerado uma hora e não ano + mês)
 * <tt> </tt> &rarr; '''
 * (embora 19:60:09 não seja uma hora válida, 196009 não é interpretado como Setembro de 1960)

A funcionalidade de preenchimento de datas parciais não é consistente; algumas partes são preenchidas usando valores actuais, outras não:


 * <tt> </tt> &rarr; '''
 * <tt> </tt> &rarr; '''
 * (vai para o início do mês, não para o dia actual)

A função faz alguns cálculos matemáticos:


 * <tt> </tt> &rarr; '''
 * <tt> </tt> &rarr; '''
 * <tt> </tt> &rarr; '''
 * <tt> </tt> &rarr; '''

#timel
Esta função é idêntica a <tt> </tt>, excepto por usar, como valor por omissão, a hora local do servidor da wiki (tal como definido em ) quando não é fornecida uma data:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

#titleparts

 * <tt> </tt>

Esta função separa um título de página em segmentos com base nas barras (<tt>/</tt>, e retorna alguns desses segmentos. Se o parâmetro <tt>nº segmentos</tt> for omitido, por omissão será zero e são retornados todos os segmentos. Se o parâmetro <tt>1º segmento</tt> for omitido ou for zero, por omissão, toma o valor 1:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

Ambos os parãmetros aceitam valores negativos. Valores negativos no parâmetro <tt>nº segmentos</tt> efectivamente «retira» segmentos do fim do título:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr;   

Valores negativos no parâmetro <tt>1º segmento</tt> efectivamente deixam no título só esse número de elementos, contados a partir da direita:


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

O título é dividido um máximo de 25 vezes; quaisquer mais barras (<tt>/</tt>) são ignoradas. O primeiro parâmetro também está limitado a 255 caracteres, porque é tratado como um título de página:


 * <tt> </tt> &rarr; 

Pode usar <tt>#titleparts:</tt> como um pequeno «analisador e conversor sintáctico», mas considere que, quando a função retorna o primeiro segmento, retorna-o com a primeira letra em maiúsculas. Se esta característica for indesejada, use a palavra mágica <tt>lc:</tt> para controlar o resultado.


 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 
 * <tt> </tt> &rarr; 

Substitution
Parser functions can be substituted by prefixing the hash character with <tt>subst:</tt>:


 * <tt> </tt> &rarr; the code <tt>    </tt> will be inserted in the wikitext since the page  exists.

Tables
Parser functions will mangle wikitable syntax, treating all the raw pipe characters as parameter divisors. To avoid this, most wikis create the template    :! with its contents only a raw pipe character. This 'hides' the pipe from the MediaWiki parser, ensuring that it is not considered until after all the templates and variables on a page have been expanded. Alternatively, raw HTML table syntax can be used, although this is less intuitive and more error-prone.

Stripping whitespace
Whitespace, including newlines, tabs, and spaces, is stripped from the beginning and end of all the parameters of these parser functions. If this is not desirable, adding any non-whitespace characters (including the HTML encoding for a whitespace character, invisible Unicode characters such as the zero-width space or direction marks, or sequences recognised and stripped by the MediaWiki parser such as <tt>  </tt>) will prevent further stripping:


 * &rarr; 


 * &rarr; 


 * &rarr; 

Ver também

 * :Palavras mágicas
 * :Funções do analisador sintáctico em predefinições