Drupal 检查node-type.tpl.php中的角色

Drupal 检查node-type.tpl.php中的角色,drupal,Drupal,有没有办法检查drupal主题文件中查看器的角色,以便编写条件语句 谢谢…当前用户始终作为全局变量可用,因此只需执行以下操作: // Make the user object available global $user; // Grab the user roles $roles = $user->roles; $user->roles将是一个角色名称数组,由角色id rid键入 编辑:准确地说,全局用户对象在早期引导阶段DRUPAL_BOOTSTRAP_会话中可用,但从主题或模块内的

有没有办法检查drupal主题文件中查看器的角色,以便编写条件语句


谢谢…

当前用户始终作为全局变量可用,因此只需执行以下操作:

// Make the user object available
global $user;
// Grab the user roles
$roles = $user->roles;
$user->roles将是一个角色名称数组,由角色id rid键入


编辑:准确地说,全局用户对象在早期引导阶段DRUPAL_BOOTSTRAP_会话中可用,但从主题或模块内的自定义编码的角度来看,您可以将该全局对象视为始终可用。

当前用户始终作为全局变量可用,因此只需执行以下操作:

// Make the user object available
global $user;
// Grab the user roles
$roles = $user->roles;
$user->roles将是一个角色名称数组,由角色id rid键入


编辑:准确地说,全局用户对象在早期引导、同相DRUPAL_引导_会话期间可用,但从主题或模块内自定义编码的角度来看,您可以将该全局对象视为始终可用。

只是Henrik Opel答案的附录: 如果在tpl.php文件中使用它,则首先在preprocess_节点函数中创建一个变量:

<?php
function YOURTEMPLATE_preprocess_node(&$variables) {
  global $user;
  $variables['current_user_roles'] = $user->roles;
}
?>
现在,您可以在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>

只是亨里克·欧宝答案的附录: 如果在tpl.php文件中使用它,则首先在preprocess_节点函数中创建一个变量:

<?php
function YOURTEMPLATE_preprocess_node(&$variables) {
  global $user;
  $variables['current_user_roles'] = $user->roles;
}
?>
现在,您可以在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>
这就行了


  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;
      }
  }
  
这就行了


  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;
      }
  }