Supprimer le bouton "Supprimer" des fields collection pour un rôle

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,

J'ai un problème avec les fields collections et la suppression des boutons "Supprimer" et "Ajouter un autre élément" en édition de contenu. En fait j'ai des nodes qui se clone avec un contenu dont plusieurs field collections avec des lignes déjà remplit. L'objectif sera que les utilisateurs puissent modifier ces field collection sans pouvoir supprimer ou ajouter de nouvelles lignes, seulement modifier le contenu des lignes. Seul l'admin pourra toucher aux boutons.

J'essaye d'utiliser le HOOK_preprocess_HTML pour faire ceci afin d'ajouter des classes css sur mes boutons et enfin les cacher en css. Voici le code que j'ai déjà créer dans mon fichier "Template.php" de mon thème :

function montheme_preprocess_html(&$variables) {
  global $user;

  $pxvar = explode(' ', $variables['head_title_array']['title']);
  if((in_array('Modifier', $pxvar) && in_array('P1', $pxvar)) || (in_array('Modifier', $pxvar) && in_array('P2', $pxvar))) {
    $account = user_load($user->uid);
    if(in_array("administrator", $account->roles)) {
      kpr($variables);
      //$variables['classes_array'][] = 'test_user';
    }
  }
}

Dans le tableau "$variables['classes_array']" j'obtiens toutes les classes du body.

Pour vérifier déjà que je sois sur la bonne page je suis obliger de faire la vérification sur les titres car les nodes sont cloner et du coup il y aura toujours des id supplémentaires et pas fixe. Après je me suis poser la question est ce que l'on peut pas faire ceci sur les nodes que je clone donc qui se clonerai sans boutons... Enfin je ne sais pas...

Si vous avez des idées pour que je puisse finir ceci ?

EDIT : je viens de voir à l'instant que j'ai accès au contenu de toutes la page avec : $variables['page']..

Merci

Forum : 

personne n'a une idée ? j'arrive à supprimer le bouton ajouter en faisant ceci :

  • $variables['page']['content']['system_main']['mon_field']['und']['add_more']['#attributes']['class'][] = 'button_px_dn';
    puis donner un style à cette classe.

Mais pas moyen d'ajouter un #attributes et class au remove_button :
- $variables['page']['content']['system_main']['mon_field']['und']['$key']['remove_button']['#attributes']['class'][] = 'testeeeeeeee';
Ceci ne fonctionne pas #attributes reste toujours un tableau vide...

Merci

Bonjour, merci de ton conseil, finalement je suis arrivé à les cacher en utilisant un hook form alter et en ajoutant une classe que je mets en display none pour les boutons d'ajouts et pour les boutons de suppression j'ai dû placer des prefix et suffix. Malheureusement, les colonnes où il y avait le bouton supprimer restent vides dans le tableau... Il faut que je trouve un moyen de les enlever