Drupal 检查node-type.tpl.php中的角色
有没有办法检查drupal主题文件中查看器的角色,以便编写条件语句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_会话中可用,但从主题或模块内的
谢谢…当前用户始终作为全局变量可用,因此只需执行以下操作:
// 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;
}
}