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

Catégories:

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.

#

Effectivement à lire l’api $delta sert à utiliser plusieurs filtres pour un seul module

Voici le lien vers l’api http://api.drupal.org/api/function/hook_filter

Regarde du coté du la fonction filter_filter : http://api.drupal.org/api/function/filter_filter

En espérant avoir pu t’aider, je ne m’en suis jamais servis :)

Julien

Ideia.fr | Blog | Twitter

#

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.

Yoran - arNuméral

#

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.

Syndiquer le contenu