A quoi sert $delta dans les "hook"???

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,
Je viens d'écrire mon premier module, très simple, avec un
hook_filter($op, $delta= 0, $format= -1, $text= '')

A quoi servent $delta et $format? Quelqu'un saurait-il l'expliquer clairement?

Je crois comprendre que $delta sert à implanter plusieurs filtres dans le même module et c'est précisément ce que j'aimerais faire, mais je ne trouve pas d'exemple concret dans les tutos du web.

Merci d'avance de votre aide.

Forum : 
Version de Drupal : 

Comme le dit Julien, un module peut fournir une infinité de filtres que tu peux utiliser dans tes formats d'entrées (ou format de texte). Le delta est juste "l'indexe du filtre visé pour un module donné".

Pour prendre un exemple, si ton module fournis deux filtres. Tu vas dans le cas $op=='list' indiquer à drupal la liste de ces filtres sous la forme array('nom_filtre_1'=>'description du filtre 1', 'nom_filtre_2'=>'description du filtre 2').

Et bien "nom_filtre_1" et "nom_filtre_2" sont les deltas respectifs de chacun de tes deux filtres.

Lorsque Drupal veut utiliser l'un des deux filtres, il passera dans l'argument "delta" l'un de ces deux noms. A toi dans le cas $op=='process' de vérifier $delta pour appliquer le filtre qui va bien.

Le même principe est visible sur le hook_block car là aussi, un même module peut fournir plusieurs blocs.

D'accord, mais alors comment Drupal détermine la valeur qu'il donne à $delta quand il fait appel au hook?

Mon application est très basique et classique. Il s'agit de faciliter l'écriture des contenus en utilisant des codes dans le genre des "bbcode".
Le module contient une function function monmodule_filter($op,$delta...etc...) Pour $op =='process' je traite le texte dans une preg-replace(...) qui modifie certaines parties du contenu.

Tout bien réfléchi je n'ai sans doute pas besoin de plusieurs hook_filter dans le module. Il doit suffire d'appliquer plusieurs preg-replace(...) à la suite.