我想根据用户角色显示/隐藏Drupal视图中的某些字段。
如果我只能使用此视图,我该如何以编程方式实现此功能,或者在Drupal中我不知道某些设置。
P / S:我知道View中基本设置下的访问设置,但会限制访问整个视图,而不是字段级别。
答案 0 :(得分:6)
您可以创建两个相同的显示器(在同一视图中)并覆盖每个显示器中的字段设置和访问设置。例如,在第一个显示中显示您只希望某个角色看到的字段,并将访问控制设置设置为该角色。在第二个显示中,删除不需要的字段并将访问控制设置为相应的角色。
首先创建限制性最强的显示,然后创建限制性最小的显示。
答案 1 :(得分:2)
我喜欢这个答案,但在我的情况下,字段依赖于参数,我需要为每个参数创建一个新的显示(这是不切实际的)。
我安装了Views Custom Field模块并将此代码用于字段:
<?php
if(user_access("some permission string here"))
{
print "Your field value here";
}
?>
答案 2 :(得分:2)
点击高级,然后找到该字段并为其创建 _ .tpl.php文件,然后在文件中显示:
print $output;
将其更改为:
if (user_access('administer nodes')) {
print $output;
}
或者您正在检查的许可是什么。
答案 3 :(得分:1)
我认为你必须尝试模块Field Permissions
答案 4 :(得分:0)
如果您想要排除的字段是1)使用CCK创建,2)应该在网站的任何地方(不仅仅是在这个特定视图中)隐藏该角色的用户,那么您只需在字段上设置权限这样用户特定的角色就无法查看它们。如果当前用户无权查看属于视图的字段,则该字段将不会显示给用户。