Submitted by nyl auster on
Bonjour à tous
Je fais mes premier pas dans l'API des formulaires de Drupal
Je souhaite modifier un formulaire de soumission de contenu; dans mon cas l'utilisateur va pouvoir lui même créer une fiche de produit d'ubercart.
Je souhaite préremplir certains champs grâce au hook form_alter.
Mon souci : ce formulaire est déjà altéré par le module "private nodes" qui ajoute un champ permettant à l'utilisateur de décider si cette fiche doit être publique ou privée.
Je souhaite masquer ce champ à l'utilisateur et surtout lui donner par défaut la valeur "private" au lieu de "anyone".
Problème : ce champ étant lui même rajouté par une altération du formulaire; je ne comprends pas comment modifier sa propriété #value puisqu'il n'apparait même pas dans dans la variable $form.
Suis-je clair et existe-t-il une solution?
Merci d'avance aux experts de Drupal qui sauront m'aider, pas facile de comprendre tout ça quand on débute :-)
re hello Personne ne sait
Permalien Soumis par nyl auster le 10 Février, 2009 - 18:08
re hello
Personne ne sait comment altérer un champ de formulaire qui est déjà le résultat d'un hook?
Je ne sais vraiment pas comment m'y prendre, ça m'ennuie de hacker le module private nodes, je suis presque sûr que l'API de drupal permet d'éviter ça.
Hello Les modules
Permalien Soumis par Numerizen le 13 Février, 2009 - 00:15
Hello
Les modules s'exécutent dans un ordre défini par leur poids. Donc, il faut que ton module ait un poids supérieur à Private Nodes, pour que le champ que celui-ci ajoute apparaisse dans $form.
Je n'ai pas la requête sous la main, mais c'est un "UPDATE module SET weight=xxx WHERE name=ton_module" ou quelque chose d'approchant, qu'il faut exécuter dans hook_init(). La variable $form devrait alors contenir le champ ajouté par Private Nodes.
ah, réponse formidable, je
Permalien Soumis par nyl auster le 13 Février, 2009 - 11:44
ah, réponse formidable, je t'aime. Je vais tester ça dès que possible !