Salut,
Je viens de commit le petit plugin "doubleclick".
Il réalise tout ce dont on a parlé dans le thread :
"[spip-dev] Fwd: Couche d'abstraction SQL / Formidable".
Rapidement, il utilise 3 pipelines :
* formulaire_charger : où il donne une valeur à une variable globale et crée le fichier lock
* affichage_final : où il traque les balises <form> pour y ajouter le champ caché
* formulaire_verifier : où on récupère la valeur du hidden, vérifie l'existence du fichier lock, puis l'efface ou renvoie une erreur.
Lors de la création du lock, on supprime les fichiers lock plus vieux que 4 heures et il supprime tous les fichiers lock, en commençant par les plus anciens, pour arriver à la valeur "taille_spool" ou bien 500 (valeur par défaut).
Le lien entre le nom du fichier .lck et l'alea (qui est la valeur du champ hidden transmis à traiter()) se fait via un md5 avec un mot de passe que l'on retrouve dans le formulaire de config du plugin.
Les fichiers .lck sont rangés dans tmp/spool/
Pas grand chose d'autre à dire sauf une remarque quand même :
le pipeline "affichage_final" reçoit tout le flux HTML. La fonction qui insère le hidden dans le formulaire utilise preg_replace. Ce qui fait que le hidden est dans tous les formulaires CVT présents sur la page. J'ai l'impression que ça ne pose pas de problème, mais je n'ai pas assez testé.
Pas trop la peine de se jeter pour tester ce plugin, je pars en vacances 3 semaines. Par contre, si vous trouvez la base bonne, n'hésitez pas à contribuer ou critiquer.
Merci la Fabrique, vraiment pratique ce plugin.