block uniquement pour certains rôles

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,

tous d'abord, il semblerait qu'un membre payant, a 2 rôles (un avant d'avoir payé et le nouveau rôle accordé suite au paiement) mais qu'avec les poids un des deux prenait le dessus.

J'aimerai affiché un block uniquement pour un des deux rôles, une idée ?

Merci

Je pense qu'il faut tester l'existence du rôle dans le tableau des rôles comme par exemple :

<?php
global $user;
if ((!
in_array('menbreQuiPaye', $user->roles)) {
  
//dans ce cas je n'affiche pas le bloc faire un return;
}
//le membre a payé alors j'affiche le bloc

?>

Merci !

Oui, justement, c'est ce que j'ai fait en premier lieu. Mais cela ne marche pas.

J'ai 2 rôles : abonné + non-abonné (+admin évidement)

J'ai coché le bloc visible que pour les non-abonnés, mais il apparait toujours et pour tout le monde.

Dans la gestion des personnes, je remarques que tous ceux ayant passé d'un rôle à l'autre conserve leur précédent rôles. Avec ubercart, ok, car j'ai joué avec les poids.

Mais peut-on faire pareil avec les blocs ?