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 :-)
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

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.
http://formation.ideia.fr/formation/drupal-la-carte | http://twitter.com/nyl_auster
nyl auster
838
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.
Numerizen
1813
ah, réponse formidable, je t’aime. Je vais tester ça dès que possible !
http://formation.ideia.fr/formation/drupal-la-carte | http://twitter.com/nyl_auster
nyl auster
838