php - 我怎样才能得出这个观点?

标签 php drupal drupal-views

  • List -> l_user 我有一个 List 节点,它有一个用户引用字段 (l_user)。
  • Story -> s-user 然后我有 Story 节点,它们也有一个用户引用字段 (s_user)。
  • ListStory 之间没有直接联系。

我想向 List 添加一个 View ,列出引用 list 引用的同一用户的所有故事。基本上类似于 SELECT stories WHERE story.s_user = this list.l_userl_user 是此 View 所在列表中引用的用户。

到目前为止, View 正在被 node:type story 过滤,但我不确定使用什么(参数/过滤器等)来链接 story s_userlist l_user

这对 View 可行吗?

最佳答案

您可以使用 Views 参数来做到这一点。您要做的是按用户过滤该列表,然后让用户从您当前所在的节点(或更具体地说,该节点的用户引用字段)进行过滤。因此,您需要做的是为 View 提供一个等于节点的用户引用字段的参数。

要做到这一点,请将您的 View 设置为正常,就像您正在显示每个用户的节点一样。所以你可能有这样的观点:

  • 第 1 页(用户 1)
  • 第 2 页(用户 1)
  • 第 3 页(用户 2)
  • 第 4 页(用户 2)
  • 第 5 页(用户 1)

用户是每个页面上的用户引用字段,称为故事用户引用

现在,在Arguments 下为Content: Story user reference 添加一个参数。现在,该 View 将仅显示参数中指定的用户发布的节点。问题是,在一个 block 中,没有要指定的参数:您需要提供一个默认参数。

仍在Content: Story user reference 的参数配置 Pane 中,选择提供默认参数 Action to take if argument is not present .您将获得多种选择,但它们都不是您要找的:当前节点的用户引用字段。

因此您需要使用 PHP 代码 操作并使用以下代码:

$node = node_load(arg(1));
return $node->field_list_user[0]['uid'];

这会根据从当前页面路径中检索到的节点 ID 加载一个节点,并返回该节点的用户引用字段(将 field_list_user 更改为列表节点上的用户引用字段的名称)。

因此,如果我在节点 17 上,其用户引用字段为用户 4,则将传递给 View 的参数为 4。然后, View 将仅显示 View 中具有同样为 4 的用户引用的节点.

保存您的 View ,创建 block 显示,然后将其放置在您想要的任何位置。当您访问带有用户引用字段的节点页面时,该 block 将填充引用用户的节点。

关于php - 我怎样才能得出这个观点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3474114/

相关文章:

php - 提取邮件内容

php - MySQL PHP插入两个表事务

Drupal:如何覆盖某个 block 的CSS?

javascript - Drupal Theming js 错误 - 无法读取未定义的属性 'top'

drupal - 如何在 View 中指定重音字符的字母顺序?

Drupal 7 : Adding a 'Add New Listing' (Create Content) Link on Local Tasks Menu

drupal - 将drupal View 设置为随机页码

php - 从一个php脚本获取变量到另一个php脚本

php - 将自定义实体存储库与 FOSUserBundle 结合使用

php - 当有人在页面加载完成之前点击离开时,如何防止 memcache 存储不完整的页面?