Cela me dérange depuis un certain temps. Lorsque j'essaie de masquer des champs comme le champ d'audience de groupe ou le paramètre de publication d'un formulaire, lors de la validation, le formulaire définit ces deux champs sur une valeur nulle, même si la valeur par défaut est été correctement déclaré.
J'ai essayé d'utiliser Invisible, #access, unset cache rien de travail! C'est très problématique car pour mon projet actuel, les utilisateurs ne peuvent modifier que de petits morceaux de leur profil à la fois, par exemple juste l'adresse ou l'image, donc si je cache l'audience du groupe, l'utilisateur finit par être expulsé des groupes auxquels il appartient à chaque fois. Éditer.
J'ai fini par utiliser le code ci-dessous pour masquer ces champs tout en gardant l'utilisateur dans son groupe.
$variables['user_edit_about']['group_audience']= $temp['group_audience'];
$variables['user_edit_about']['group_audience']['#prefix'] = '<div style="display:none;">';
$variables['user_edit_about']['group_audience']['#suffix'] = '</div>';
Quelqu'un pourrait-il penser à une meilleure façon d'y parvenir?
Merci
la source
Réponses:
Éditer:
Ok je l'ai compris. Mettez ceci dans votre module personnalisé:
Cela définira le titre du nœud de l'histoire sur «hot stuff» et il ne sera PAS affiché sur la page car #access = FALSE;
Vous pouvez ajouter plus de contrôle de granularité dans hook_form_alter () comme
Cela fonctionne pour Drupal 6 & 7.
Ancienne réponse (ignorer):
Cela fait un moment que je n'ai pas fait quelque chose comme ça, donc je peux me tromper. Si vous définissez l'
[#value]
élément d'un formulaire, il ne sera pas visible sur le formulaire.Je l'ai fait dans Drupal 6,
hook_form_alter()
dans un module personnalisé. Je ne sais pas si cela fonctionnera dans Drupal 7 et je ne sais pas si vous pouvez le faire dans une fonction de prétraitementla source
Vous pouvez également simplement ajouter la classe CSS «élément caché» à l'élément de formulaire
Comme iStryker l'a mentionné précédemment, il serait toujours possible de modifier la valeur via la manipulation DOM. Cependant, c'est un moyen simple et agréable de masquer un champ de formulaire (ou tout autre élément de rendu). La
element-hidden
classe est définie danssystem.base.css
.la source