#TAG* e #TAG**

Por padrão, o SPIP aplica automaticamente, em cada #TAG encontrada nos templates, todos os tratamentos (filtros ou funções de transformação) que lhe são específicos — tratamentos definidos em #$GLOBALS['table_des_traitements']['BALISE'].

  • Apparu en : SPIP 1.9

Em alguns casos, por exemplo para executar um filtro pessoal antes da aplicação automática das funções internas do SPIP, pode ser necessário desativar esse tratamento.

O asterísco simples: *

Neste caso, usa-se a notação #TAG* à qual se aplicará o seu filtro pessoal, levando em consideração se há a necessidade de incluir seguidamente os tratamentos que tenham sido desativados.

Por exemplo:

[(#TEXTE*|meu_filtro|propre)]

começará por desativar os tratamentos automáticos aplicados a #TEXTE e definidos em #$GLOBALS['table_des_traitements']['TEXTE'];
em seguida, aplicará o filtro pessoal |meu_filtro;
por fim, aplicará o filtro |propre que havia sido desativado pelo uso de *.

Explicação:
O texto da minha matéria, tal como o inseri na área restrita e tal como está arquivado na base de dados é [1]:

<img388|left>

Faz hoje {trezentos e quarenta e oito anos, seis meses e dezenove dias} que os parisienses acordaram com o barulho de todos os sinos que dobravam no tríplice recinto da Cité, da Universidade e da Cidade.
No entanto, não é um dia do qual a história tenha guardado lembrança, esse {{6 de janeiro de 1482}}.

Faz hoje trezentos e quarenta e oito anos, seis meses e dezenove dias que os parisienses acordaram com o barulho de todos os sinos que dobravam no tríplice recinto da Cité, da Universidade e da Cidade.
No entanto, não é um dia do qual a história tenha guardado lembrança, esse 6 de janeiro de 1482.

#TEXTE exibe o código fonte a seguir (com os tratamentos padrão):

<p><span class="spip_document_388 spip_documents spip_documents_left" style="float: left; width: 150px;">
<img src="../local/cache-vignettes/L150xH150/extraits-4f9ff.jpg" alt="" style="height: 150px; width: 150px;" height="150" width="150"></span></p>
<p>Faz hoje <i>trezentos e quarenta e oito anos, seis meses e dezenove dias</i> que os parisienses acordaram com o barulho de todos os sinos que dobravam no tríplice recinto da Cité, da Universidade e da Cidade.<br class="autobr">
No entanto, não é um dia do qual a história tenha guardado lembrança, esse <strong>6 de janeiro de 1482</strong>.</p>

#TEXTE* exibirá o código fonte HTML a seguir:<img388|left> Faz hoje {trezentos e quarenta e oito anos, seis meses e dezenove dias} que os parisienses acordaram com o barulho de todos os sinos que dobravam no tríplice recinto da Cité, da Universidade e da Cidade. No entanto, não é um dia do qual a história tenha guardado lembrança, esse {{6 de janeiro de 1482}}.

A eeste código fonte puro, eu aplico o meu filtro pessoal (digamos que ele modifica a imagem associada a esta matéria e que, especificamente para este template, o que me impede de o fazer simplesmente reeditando a matéria...). Este filtro busca a sequência <imgxxx| para a substituir por <img25|; para simplificar: ele substitui as imagens da matéria por uma imagem única. Note que isto não seria possível (pelo menos, não simplesmente a partir do código fonte HTML retornado pela utilização de #TEXTE.

Agora que o meu filtro fez o seu trabalho, eu preciso chamar o tratamento automático que o SPIP aplica à tag #TEXTE para encontrar o tratamento do (novo) modelo <img25|left> e os diversos tratamentos tipográficos: negrito, itálico...

Eu chamo no meu template: [(#TEXTE*|meu_filtro|propre)], que retornará o código fonte HTML:

<p><span class='spip_document_25 spip_documents spip_documents_left'  style='float:left; width:180px;'>
<img src='IMG/png/defaut_cache.png' width="180" height="180" alt="" /></span></p>
<p>Faz hoje <i>trezentos e quarenta e oito...

O asterísco duplo: **

Além do que se acabou de ver, o SPIP aplica por padrão, a todas as tags encontradas num template, um tratamento de segurança que impede a execução de scripts (php ou javascript) passível de ser retornado pela tag. Por exemplo, um <?php echo 'toto'; ?> incluído no corpo do texto de uma matéria não será executado («toto» não será exibido).

Em alguns casos bem específicos, pode, no entanto, ser necessário recuperar o valor puro, não sanitizado (portanto potencialmente perigoso), de uma tag. Por exemplo, para tratar certos retornos de formulários, determinadas variáveis de ambiente passadas por #ENV.

Nestes casos, estando consciente dos riscos inerentes, usa-se a notação #TAG**. Mas, novamente, cuidado com esta codificação (ver, sobre esta questão o uso da tag #ENV).

Notas

[1obrigado a Victor Hugo por este extrato de O Corcunda de Notre Dame, na tradução de Eduardo Brandão para a Companhia das Letras, 2018.

Portfólio

Autor Ricardo Porto Publié le :

Traductions : català, English, Español, français, Nederlands, Português