[Résolu] Mon script pour récuperer le rôle de l'user fonctionne mais signale un problème.

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,

En cherchant sur internet, j'ai trouvé un script PHP qui permet de récupérer le rôle de l'utilisateur.
J'ai modifié le script pour permettre à certains utilisateurs d'afficher un message et à d'autres non:
exemple: Si l'utilisateur a le rôle adhérent il aura le message Vous êtes adhérents.
Sinon il aura le message Vous nêtes pas adhérents.

Voici mon script:

<?php
function _mymodule_get_user_roles() {
 
// récupérer les infos sur l'utilisateur courant
 
global $user;

 
// récupérer un array avec les rôles de l'utilisateur
 
$roles = $user->roles;

  return
$roles;
}

// Afficher l'array de roles à l'écran
$_user_roles = _mymodule_get_user_roles();
if(
$_user_roles[4]=="utilisateur adhérent"){
echo
'Vous êtes bien un utilisateur adhérent de Abia.';
} else {
echo
"Vous n'êtes pas un utilisateur adhérent";
}
echo
'<br><br>';
?>

Quand je suis connecté en tant que utilisateur adhérent, il affiche bien le résultat souhaité:
captureadhérent

Quand je suis connecté en tant que visiteur, le résultat souhaité est le bon mais il m'affiche un message d'érreur:
capturenonadhérent

Que faire pour enlever ce message d'erreur et d’où vient-il ?

Merci de votre aidre ;)

Cordialement Fasco

Forum : 

Salut,

Tu devrais plutôt remplacer cette partie :

$_user_roles = _mymodule_get_user_roles();
if($_user_roles[4]=="utilisateur adhérent"){
echo 'Vous êtes bien un utilisateur adhérent de Abia.';
} else {
echo "Vous n'êtes pas un utilisateur adhérent";
}
echo '<br><br>';

Par celle-ci :

$_user_roles = _mymodule_get_user_roles();
if(in_array('utilisateur adhérent', array_values($_user_roles)){
echo 'Vous êtes bien un utilisateur adhérent de Abia.';
} else {
echo "Vous n'êtes pas un utilisateur adhérent";
}
echo '<br><br>';

Et ca devrait marcher :)

@ bientôt

Merci beaucoup!

C'était exactement le résultat que je recherchais :)
Il manque juste une parenthèse ici :
if(in_array('utilisateur adhérent', array_values($_user_roles)))

Encore merci

Cordialement Fasco