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 - 如果单击浏览器按钮,如何在服务器端显示消息

c# - 使用 C# 在 Drupal 中创建节点

drupal - 自定义 page-xxxx.tpl.php 不起作用

jquery - Drupal 6/jQuery Ajax 更新字段

drupal - 如何在 Drupal 中导入 View ?

drupal - View 正在从输出中剥离标签

CSS 宽度百分比在 IE7 中显示不正确

php - 您对如何配置开发/登台/生产实例的奇怪想法有何看法?

php - jquery切换功能的问题

PHP if语句错误