【发布时间】:2013-01-14 04:45:37
【问题描述】:
我有一个 Drupal 7 站点,我想根据配置文件用户(不是登录用户)的角色在配置文件页面内打印出一些字段内容。 我需要仅当个人资料所有者没有角色时才显示特定字段作者:
<?php
if (!in_array('autor', array_values($user->roles))) {
print drupal_render(field_view_field('profile2', $profile['main'], 'field_nombrecompleto1', 'value'));
}
else {print "yada yada";}
注意:有问题的配置文件字段是 rofile2 字段,而不是核心配置文件字段。
该代码有什么问题?因为它会在任何情况下打印出相关字段,无论配置文件所有者的角色如何。
我已经尝试过其他代码,在这种情况下,该字段无论如何都不会打印出来:
<?php
if (is_array($user->roles) &&
in_array('authenticated user', $user->roles) &&
!in_array('autor', $user->roles)) {
print drupal_render(field_view_field('profile2', $profile['main'], 'field_nombrecompleto1', 'value'));
}
?>
【问题讨论】:
-
您是否尝试过 print_r($user->roles),它是否包含目标用户角色?
-
但是我不想打印用户角色,而是根据配置文件的用户角色显示信息。
-
这是一个调试命令。