Existe-t-il un moyen de vérifier le rôle du visualiseur dans un fichier de thème drupal, afin d'écrire une instruction conditionnelle?Vérifier le rôle dans node-type.tpl.php
Merci ...
Existe-t-il un moyen de vérifier le rôle du visualiseur dans un fichier de thème drupal, afin d'écrire une instruction conditionnelle?Vérifier le rôle dans node-type.tpl.php
Merci ...
L'utilisateur actuel est toujours disponible en tant que variable globale, donc il suffit de faire:
// Make the user object available
global $user;
// Grab the user roles
$roles = $user->roles;
$ user-> rôles sera un tableau de noms de rôle, les clés sont rôle id (débarrassé).
Edit: Pour être précis, l'objet global de l'utilisateur est mis à disposition au début de bootstrapping, en phase DRUPAL_BOOTSTRAP_SESSION
, mais du point de codage personnalisé dans les thèmes ou modules, vous pouvez traiter que global comme toujours disponible.
Juste une annexe à la réponse de Henrik Opel: si vous l'utilisez dans un fichier tpl.php, puis créer une première variable en fonction de preprocess_node:
<?php
function YOURTEMPLATE_preprocess_node(&$variables) {
global $user;
$variables['current_user_roles'] = $user->roles;
}
?>
Maintenant, vous pouvez imprimer vos rôles dans votre tpl .php:
<?php
if ($current_user_roles) {
?>
<ul class="roles">
<?php
foreach ($current_user_roles as $role) {
?><li class="roles-item"><?php print $role; ?></li><?php
}
?>
</ul>
Cela fera
global $user;
$num_roles = db_fetch_object(pager_query(db_rewrite_sql('SELECT rid from {role} ORDER BY rid Desc')))->rid; // Find how many roles are there
for($i=0; $i < $num_roles; $i++){
if(strlen($user->roles[$i]) >0){
echo $user->roles[$i];
$i = $num_roles;
}
}
merci Henrik, semble bon. –