Edition des liens - bizarrerie

Eric Lupinacci <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <CAM6W4baTN-NvgFBHdODAiHsD1VN+FqF7GJ8tfsa67SFvvS40hQ@mail.gmail.com>
Hello,

En reproduisant la gestion des liens pour l'affectation des types de plugin
aux plugins je suis tombé sur un truc que je trouve bizarre.
Dans le formulaire editer_liens on affiche la liste des objets liés (par
exemple les mots) avec le bouton "retirer ...". Ce bouton est une balise
<button> dont :
- le name vaut : "supprimer_lien[mot-#ID_MOT-#OBJET-#ID_OBJET]", où
supprimer_lien indique l'action à exécuter et le contenu entre crochets la
liste des arguments de l'action.
- la value vaut étrangement "X".

Dans le PHP, pour le "traiter", on trouve le code d'exécution du bouton qui
:
- soit appelle une action dont le nom est bien compliquée,
- soit déroule un code générique sans faire appel à une action. J'avoue ne
pas trop comprendre pourquoi d'ailleurs on ne passe pas par une action pour
sécuriser tout ça et pourquoi une telle différence de traitement.

Si l'action existe, on lui passe le _request(bouton) du fameux bouton qui
par magie contient un tableau associatif dont l'index correspond aux
arguments entre crochet et la valeur "X" soit par exemple
"mot-#ID_MOT-#OBJET-#ID_OBJET" = "X".
L'action qui s'exécute récupère donc un argument $arg qui contient
exactement le tableau associatif précédent.
De fait, si on fait bêtement un explode() pour récupérer les arguments on
récupère null pour tous car on fait l'explode sur "X" et pas sur l'index.
On a donc un comportement totalement différent de celui de la plupart des
actions.

Je ne sais pas si c'est voulu ou si c'est un cas qui n'a jamais vraiment
été testé mais je trouve ce fonctionnement pas très heureux. Ne faudrait-il
pas :
- soit passer la clé du tableau à l'action (en utilisant un key() par
exemple)
- soit changer le name et la value du button si c'est possible (j'avoue que
je ne comprends pas bien pourquoi le bouton a un tel name et une telle
value.

Si quelqu'un peut m'expliquer.
Merci d'avance

++
Eric
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.