Message d'avertissement

The subscription service is currently unavailable. Please try again later.

droits d'accés sur formulaire

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 doit développer un module qui permettra la gestion des données.
Ce module comportera un formulaire avec des champs accessible aux utilisateurs selon leurs profils.

Comment afficher ou non des champs dans un hook_form selon les profils?

Je cherche un exemple.

Merci d'avance

Laurentf

Forum : 
Version de Drupal : 

Bonsoir,
Qu'entendez-vous par profil ?
Est-ce par rapport à leur droits d'accès ou bien par rapport à leur rôles (Administrateur, modérateur) ?
Si c'est par rapport à leur droit d'accès il vous suffit de rajouter un attribut #access au champs tel quel:

$form['test'] = array(
'#type'     => 'textfield',
'#title'  => t('Test'),
'#access' => user_access('Utilise ce champs')
);

Dans le cas ou un le champs est visible seulement selon leur rang ou profil on peut le faire tel quel dans hook_form pour plusieur champs :

global $user;
if (in_array('administrateur', $user->roles))
{
   $form['test'] = array(
   '#type'     => 'textfield',
'#title'  => t('Test')
  );
}

et pour un seul champs :

global $user;
$form['test'] = array(
   '#type'     => 'textfield',
'#title'  => t('Test'),
'#access' => in_array('administrateur', $user->roles) ? true : false
);