Question sur le hook formConfirm

Bonjour,

Je cherche à faire un nouveau module pour permettre de désactiver les widgets de confirmation (cf : www.dolibarr.fr/forum/t/desactiver-les-popup-de-confirmation/22654/1

Du coup je me suis penché sur la gestion de ces widgets et ils sont affichés par le code suivant :

[code]
if (! $formconfirm)
{
$parameters = array(‹ lineid › => $lineid);
$reshook = $hookmanager->executeHooks(‹ formConfirm ›, $parameters, $object, $action); // Note that $action and $object may have been modified by hook
if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;
elseif ($reshook > 0) $formconfirm=$hookmanager->resPrint;
}

// Print form confirm
print $formconfirm;[/code]

Donc si le $formconfirm n’est pas vide, on execute jamais le hook.
Du coup je ne comprends pas à quoi sert le hook.
C’était vraiment la volonté des développeurs ou alors il y a une erreur dans le if ?

Merci pour vos avis.

Bonjour,

J’ai crée une PR, on verra si elle est acceptée ou pas : https://github.com/Dolibarr/dolibarr/pull/9298

Bonjour
Si tu change la condition, un module externe ne pourra plus ajouter un formulaire de confirmation.
Je pense qu’il faudrait agir à la source

Fred

Bonjour Frederic,

Je ne vois pas le cas ou l’on voudrait rajouter des formconfirm dans card.php et de plus le code propose d’ajouter du texte à une formconfirm, ce qui dans l’état est inutile car formconfirm est vide.

if (empty($reshook)) $formconfirm.=$hookmanager->resPrint;

Pour moi il faut changer la condition.

Aprés j’ai fait la PR pour avoir une réponse de Eldy

Bonjour
Je conviens que le code est étrange, ajouter quelque chose à un truc forcément vide…
Mais un module peut créer un bouton avec une action, et donc ajouter un formconfirm pour valider cette action s’il il n’existe pas de formconfirm

Peut-être pour mettre tout le monde d’accord, le mieux serait de supprimer le test…

Fred

Frédéric,

Effectivement très bonne remarque, supprimer le test serrait le plus simple :woohoo:

Du coup je vais faire une autre PR!

Merci

Bonjour
Et peut-être coller plus haut un $formconfirm=’’;

Fred

Bonjour,

Je ne vois pas trop pourquoi rajouter un $formconfirm=’’;
Vous voulez le rajouter ou ?

Bonjour et désolé pour le déterrage de post,

Je suis justement en train de travailler sur un module qui va interagir avec ce hook.
Le module interviendra sur les commandes fournisseurs au niveau de la suppression de la commande et de la suppression de lignes.
Lors de la confirmation, des infos seront stockées en base (date, liens client/commande/produit/fournisseur) et c’est à ce moment que mon module demandera la raison de cette suppression.
Un peu comme lorsqu’on classe une facture client abandonnée, on nous demande la raison.
Le module permettra de garder une trace concernant les commande fournisseurs, avec une vue sur la fiche du fournisseurs et un graphique calendaire général.

Bruce