Spécifier une valeur d'un champ cck selon le role lors de l'ajout de contenu

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,

Après avoir regardé différents modules dont "fields permissions" qui permet d'indiquer selon le rôle si un champ cck est visible ou non ou si on peut ajouter des valeurs, je n'ai pas trouvé de solution à mon problème.

Pour éviter d'avoir à créer plein de type de contenu, j'aimerai que selon le rôle, la valeur d'un champ cck de type soit automatiquement choisie.

Un exemple:

J'ai un administrateur global et différents administrateur par région.
Tous peuvent ajouter des actus mais l'administrateur Auvergne ne peut ajouter des actus que pour la région Auvergne.

Aussi, un champ de taxonomie contenant les régions en menu déroulant est ajouté au contenu "actualité".
Si je suis administrateur Auvergne j'aimerai qu'il affiche Auvergne mais sans possibilité de le changer.

L'administrateur global peut lui ajouter une actu pour la région qu'il souhaite.

En fait selon le rôle, la valeur d'un fields à partir d'une taxonomy doit pouvoir être spécifié...

Si vous avez des pistes, je vous en serai reconnaissant :)

Merci !

Nicolas.

Version de Drupal : 

Vous voulez modifier un formulaire d'edition/creation d'un node, vous devez donc utiliser hook_form_alter(&$form, &$form_state, $form_id).

Ensuite vous voulez uniquement modifier les formulaires "actualite", donc vous devez tester $form_id contre le nom de votre formulaire actualité

function mymodule_form_alter(&$form, $form_state, $form_id) {
  if ($form_id == 'actualite_node_form') { // exemple d'identifiant, a vous de remplacer
    ...

Le reste c'est de la logique a intégrer en utilisant global $user et Drupal Form API.

bonjour, hook_form_alter pour mettre le champ en type #hidden (sauf pour admin global, voir la globale $user pour tester le role) puis remplissage de la valeur dans un hook_node_presave sauf pour admin global.
cdlt

http://api.drupal.org/api/drupal/modules%21system%21system.api.php/funct...
http://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/...