#BALIZA* y #BALIZA**

Por defecto, SPIP aplica automáticamente sobre cada #BALIZA encontrada en los esqueletos todos los tratamientos (filtros o funciones de transformación) que le son específicos, tratamientos definidos en #$GLOBALS['table_des_traitements']['BALIZA'].

En ciertos casos, por ejemplo para ejecutar un filtro personal antes de la aplicación automática de las funciones internas de SPIP, puede ser necesario desactivar este tratamiento.

El asterisco simple:   *

Se utilizará en este caso la notación #BALIZA* a la cual se aplicará su filtro personal, teniendo cuidado de verificar si es necesario añadir después los tratamientos internos que se acaban de desactivar.

Por ejemplo:

[(#TEXTE*|mi_filtro|propre)]

empezará por desactivar los tratamientos automáticos aplicados a #TEXTE y definidos en #$GLOBALS['table_des_traitements']['TEXTE'] ;
a continuación aplicará el filtro personal |mi_filtro ;
finalmente aplicará el filtro |propre que acababa de ser desactivado por la utilización de *.

Ilustración:
El texto de mi artículo, tal como yo lo he escrito en la interfaz privada y tal como está archivado en la base de datos es [1] :

<img388|left>

Hoy hace {trescientos cuarenta y ocho años, seis meses y diecinueve días}, despertó a los parisienses el vuelo general de todas las campanas en el triple recinto de la Cité, de la Universidad y de la Ciudad.
_ De aquel {{6 de enero de 1482}} la historia no ha guardado ningún recuerdo.

#TEXTE visualiza el código HTML siguiente (por tanto con los tratamientos por defecto):

<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>Hoy hace <i>trescientos cuarenta y ocho años, seis meses y diecinueve días</i>, despertó a los parisienses el vuelo general de todas las campanas en el triple recinto de la Cité, de la Universidad y de la Ciudad.
<br>De aquel <strong>6 de enero de 1482</strong> la historia no ha guardado ningún recuerdo.</p>

#TEXTE* visualizará el código HTML siguiente:

<img388|left>

Hoy hace {trescientos cuarenta y ocho años, seis meses y diecinueve días}, despertó a los parisienses el vuelo general de todas las campanas en el triple recinto de la Cité, de la Universidad y de la Ciudad.
_ De aquel {{6 de enero de 1482}} la historia no ha guardado ningún recuerdo.

Sobre este código en bruto, yo aplico mi filtro personal (digamos que modifica la imagen asociada a este artículo y para este esqueleto específico, por lo cual no puedo hacerlo reeditando el artículo...). Este filtro, por tanto, busca la secuencia <imgxxx| para reemplazarla por <img25|; para simplificar: reemplaza las imágenes del artículo por una imagen única. Notemos que esto no habría sido posible (al menos, no de forma simple) a partir del código HTML devuelto por la utilización de #TEXTE.

Ahora que mi filtro ha hecho su trabajo, me hace falta llamar el tratamiento automático que SPIP aplica a la baliza #TEXTE para reencontrar el tratamiento del (nuevo) modelo <img25|left> y los diversos tratamientos tipográficos: negrita, cursiva...

Yo llamo por tanto en mi esqueleto: [(#TEXTE*|mi_filtro|propre)] el cual me devolverá el código 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>Hoy hace <i>trescientos cuarenta y ocho...

El asterisco doble:   **

Además de lo que acabamos de ver, SPIP aplica por defecto a todas las balizas encontradas en un esqueleto un tratamiento de seguridad que impide la ejecución de scripts (PHP o Javascript) susceptible de ser devuelto por la baliza. Por ejemplo, un <?php echo 'toto'; ?>, incluido en el cuerpo de texto de un artículo, no se ejecutará («toto» no se mostrará).

En algunos casos, muy específicos, es posible, no obstante, que sea necesario recuperar el valor bruto, no desinfectado (y por tanto potencialmente peligroso) de una baliza. Por ejemplo para tratar ciertos retornos de formularios, ciertas variables de entorno pasadas en #ENV.

En estos casos, y siendo conscientes de los riesgos que se corren, se utilizará la notación #BALISE**. Pero una vez más, atención con esta notación (ver a este propósito el uso de la baliza #ENV).

   
   
   
   

Notas

[1gracias a Victor Hugo por este extracto de Nuestra Señora de París.

Autor o autora David Sánchez Crespillo Publicado el: Actualizado: 26/10/12

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