Un field cck qui ne s'affiche pas avec drupal_render() ??

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Je travail sur un formulaire depuis quelques semaines et je rencontre un problème avec des champs CCK qui ne s'affichent pas dans mon formulaire en utilisant drupal_render.

Le truc c'est que, dans un module j'utilise un hook_form_alter dans lequel je modifie la structure de mon formulaire de base en fonction que l'utilisateur soit loger ou pas. Et dans cette même fonction 'hook_form_alter' je fais des drupal_render pour afficher des champs CCK existant.

Par contre quand je souhaite afficher un nouveau champ CCK que j'ai crée, il ne s'affiche pas.

Ce qui est bizarre, c'est que les anciens champs CCK que j'ai crée avant le développement du module s'affichent bien.

Je vois pas comment régler ce problème, someone can help me ?

Sophie.

Forum : 
Version de Drupal : 
Tags : 

Bonjour,

personnellement je n'ai jamais utilisé drupal_render() dans un hook_form_alter().

Normalement il te suffit de rajouter des $form['nomChamp'] pour que ton module rajoute ton champ automatiquement.

Cela se fait automatiquement car dans les paramètres de la fonction hook_form_alter la variable form est définit comme cela : &$form

Le & signifie que la variable form va hériter de tous les changements dont elle fera l'objet dans ta fonction.

Peut-être faut-il vérifier le poids des différents modules altérant le formulaire. Il faut a priori que le module concerné s'exécute après tous les autres, pour avoir la version complète.

Aussi, je ne suis pas sûr que drupal_render dans un form_alter soit une bonne idée : le theming est censé intervenir après la constitution du tableau décrivant le formulaire, alors ça ne m'étonnerait pas outre mesure que les résultats soient imprévisibles en procédant comme ça.

S'il y a de la customisation à faire, il vaudrait mieux qu'elle ait lieu dans les fonctions de theming.

Le problème venait du field CCK qu'on ne pouvait pas voir car il ne disposait pas des droits suffisant.

J'ai mis les droits pour tout le monde et tout a bien fonctionné après.

Merci beaucoup de m'avoir répondu.

;)