首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于当前用户角色的Drupal7过滤器视图?

基于当前用户角色的Drupal7过滤器视图?
EN

Stack Overflow用户
提问于 2013-12-30 13:26:00
回答 2查看 4.7K关注 0票数 0

使用Drupal7、Views3和Node引用模块,我使用一个视图来填充自定义内容类型上的节点引用字段。(因此它是"Reference“显示类型的视图。)

我只希望过滤此视图以显示(并允许用户选择):

  1. 已发表的内容(OK)
  2. 某一类型的内容(确定)
  3. 只有当前用户创建的节点(确定)
  4. 或者,如果当前用户是管理员或其他角色,则绕过前面的筛选器(3),显示所有节点(但仍然尊重过滤器1和2) (不确定)

过滤器1和2始终是强制性的;那么过滤器3或4也必须是强制的。我知道我可以将过滤器重新排列成过滤器组来完成这项工作。问题是我无法找到构建过滤器4的方法。

对于过滤器3,我必须引入一个类型为"Content: Author“的关系,这使得出现了许多新的过滤器,包括我为过滤器3(节点作者==当前用户)使用的”用户:当前“。

对于过滤器4,我需要根据当前用户(而不是作者)的角色进行筛选,而我无法找到如何进行筛选。

在过滤器列表中有一个新的“用户:角色”过滤器可用,但它只引用“内容:作者”关系,因此它只检查节点作者的角色。这不是我需要的。

我猜我必须添加一个新的关系来导入当前的用户数据(类似于" user : current"),然后对该数据进行筛选,但是我在屏幕中找不到这一点。

知道怎么做吗?

提前谢谢。

更新:

注意:在编辑节点引用字段(在我的自定义内容类型中)时,我看到有一个“视图参数”字段,允许将参数传递给视图。还不清楚这个字段是否接受令牌,但如果是,也许我可以使用该字段将当前的用户ID传递给View。但我不知道如何在视野中使用它..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-31 22:01:32

在发布same question on drupal.stackexchange之后,我被建议使用视图中的一些PHP代码(上下文过滤器)解决方案。这是我找到的最好的解决方案,所以除非有人能提出更好的解决方案,否则我会坚持这个方案。

以下是解决方案:https://drupal.stackexchange.com/questions/38205/alter-field-settings-using-hook/38922#38922

这就是它的要点:

在视图中,在Author: Uid上添加上下文过滤器,并使用以下设置:

当筛选值不可用时,

  • 提供默认值
  • 类型: PHP代码

使用以下代码:

代码语言:javascript
复制
global $user;

if (in_array('administrator', $user->roles))
{return -1;}
else
{return $user->uid;}

当筛选值可用或提供默认值时,

  • 指定验证标准
  • 验证器: PHP代码

使用以下代码:

代码语言:javascript
复制
if ($argument == -1) 
{return FALSE;}
else
{return TRUE;}
  • 如果筛选器值不验证要执行的操作:显示指定字段的所有结果(这将使管理员访问所有结果)

就这样!

备注:

与我最初的设置相比,关系(内容:作者)不再需要了;“作者”过滤器也不再需要了(反正它是由关系带来的)。

对于Drupal 6,第一个PHP片段中的条件应该是if (in_array('super user', array_values($user->roles)))

您也可以允许其他角色,只需编辑上面的条件。例如:

代码语言:javascript
复制
if (
    in_array('administrator', $user->roles) || 
    in_array('editor', $user->roles)
)
票数 1
EN

Stack Overflow用户

发布于 2013-12-30 13:35:39

添加作者关系后,应该有一个新的筛选标准User: Roles

在视图筛选条件中,需要将2筛选组组合起来;第一组包含过滤器1、2和3,另一组应包含过滤器1、2和4。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20840490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档