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