Le contenu des <textarea> est modifié à l'affichage par un ou une suite de filtres. Les buts de ces filtres sont variés:
L'exemple de filtre qui suit est un filtre de la seconde catégorie. Il va chercher les images insérées au moyen de FCKeditor et prendre la valeur de l'attribut title pour l'utiliser comme légende en dessous de cette même image.
Pour créer un filtre, il faut créer un module. Le nom de ce module sera dans cet exemple magoofiltre. Au minimum 2 fichiers sont nécessaires à la naissance d'un module. Les deux seront rangés dans un répertoire du nom du module:
modules
|- magoofiltre
|- magoofiltre.info
|- magoofiltre.module
magoofiltre.info contiendra:
name = magoofiltre description = various modifications that need a module to Drupal and its modules package = magooweb dependencies =
magoofiltre.module est le module qu'il faudra activer pour qu'il soit pris en compte. Il se compose de 2 fonctions. La première, ... permet l'affichage d'aide pour l'utilisateur pour qu'il sache que le filtre est en fonction et à quel position (à configurer par l'administrateur). La seconde ... fait le travail de modification du filtre.
<?php
function magoofiltre_filter_process($text) {
/* structure of an image inserted with FCKeditor
* <img width="X" height="Y" src="/path/to/pics" alt="replacement text" title="image title" />
*/
$find = "(<img.*) alt=\"(.*)\" title=\"(.*)\"(.*/>)";
$change = "<table><tr class=\"image\"><td>\\1 alt=\"\\2\" title=\"\\3\" \\4</td></tr><tr><td class=\"legend\">\\3</td></tr></table>";
$output = ereg_replace($find, $change, $text);
return $output;
}
?>Le résultat: l'image, à laquelle on a ajouté l'attribut title est affiché avec le contenu de l'attribut en dessous,
