Comment masquer un champ dans un formulaire drupal
J'ai un type de contenu spécifique dans drupal6. Je veux mettre en œuvre un crochet, qui se cache le corps de terrain de ce type de contenu à partir du formulaire d'ajout d', mais pas à partir du formulaire de modification. Comment puis-je le faire?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser hook_form_alter. Qui vous pouvez par programmation de modifier le contenu de la forme de l'api de construire. Cela vous donne le plein $tableau du formulaire dont vous pouvez simplement
unset($form['the_field_you_dont_want']);
.Mais la façon la plus facile de se débarrasser du corps de terrain est de modifier le type de contenu il y a un champ nommé 'Corps étiquette de champ:" juste laisser ce champ vide et le champ corps sera omis.
unset semble détruire la valeur en tant que bien, comme le fait la
#access
de la propriété.Je viens de l'utiliser pour masquer un champ (dans ce cas, une référence si elle a été préréglée à l'aide de l'URL:
#access
=0 ne faut pas la détruire. Peut-être une demande de fonctionnalité pour Drupal 8? 🙂La solution trouvée ici https://drupal.stackexchange.com/questions/11237/hide-field-in-node-add-page fonctionne très bien pour moi. Ici, je suis à la répétition de la lune.l'observateur de la solution:
L'inconvénient de l'utilisation de la fonction unset (), c'est qu'il va supprimer entièrement le terrain et vous ne pouvez pas plus loin, comme, par exemple, sur le nœud presave. Dans mon cas, je voulais juste supprimer le champ de la forme sur le premier moment, mais je tenais à le remplir plus tard, avant l'enregistrement du nœud. La solution sur le lien ci-dessus fonctionne parfaitement pour moi pour cette raison.
Avez-vous de mettre en œuvre le type de contenu dans un module (à l'aide de hook_node_info)? Si oui, définir la has_body attribut à false.