Programar con SPIP 3.0
Documentación técnica de SPIP 3.0

> > > > Tratamientos automáticos de balizas

Tratamientos automáticos de balizas

La mayoría de las balizas SPIP, en particular todas las que son leídas en la base de datos, efectúan tratamientos automáticos para bloquear códigos malintencionados que podrían estar añadidos por redactores al momento de la escritura del articulo (código PHP o scripts JavaScript).

Además de estos tratamientos, otros pueden estar definidos para cada campo SQL a fin de hacer aplicar automáticamente los tratamientos sobre este campo. Estas operaciones están definidas en el archivo ecrire/public/interfaces.php por una tabla global $table_des_traitements ("tabla de los tratamientos" en francés). La clave de la tabla es el nombre de la baliza, y el valor es una tabla asociativa: su clave «0» define un tratamiento para cualquier tabla, una clave «nombre_de_la_tabla» (sin el prefije) define un tratamiento para una baliza de una tabla especifica.

Los tratamientos están dados por una cadenas de caracteres funcion(%s) explicitando las funciones a aplicar. Adentro, «%s» sera remplazado por el contenido del campo.

  1. $table_des_traitements['BALISE'][]= 'tratamiento(%s)';
  2. $table_des_traitements['BALISE']['objets']= 'tratamiento(%s)';

Descargar

Dos usos frecuentes de filtros automáticos están definidos por unas constantes que pueden estar utilizadas:

  • _TRAITEMENT_TYPO aplica tratamientos tipográficos,
  • _TRAITEMENT_RACCOURCIS aplica los tratamientos tipográficos y las traducciones de atajos SPIP.

Ejemplo

Las balizas #TITRE ("título" en francés) y #TEXTE ("texto" en francés) reciben unos tratamientos, que se apliquen para cualquier bucle, definidos de esta manera:

  1. $table_des_traitements['TEXTE'][]= _TRAITEMENT_RACCOURCIS;
  2. $table_des_traitements['TITRE'][]= _TRAITEMENT_TYPO;

Descargar

La baliza #FICHIER ("archivo" en francés) efectúa un tratamiento solo en los bucles de documentos:

  1. $table_des_traitements['FICHIER']['documents']= 'get_spip_doc(%s)';