Drupal:当这些节点的 cck 字段具有该用户的配置文件 nodeid 时,显示与配置文件相关的节点

Posted

技术标签:

【中文标题】Drupal:当这些节点的 cck 字段具有该用户的配置文件 nodeid 时,显示与配置文件相关的节点【英文标题】:Drupal: Showing nodes related to a profile when a cck field of those nodes have the profile nodeid of that user 【发布时间】:2011-10-14 14:56:24 【问题描述】:

我需要在某个页面内显示与每个用户的配置文件节点相关的特定节点类型的所有节点。 这就是我所拥有的:

具有用户 ID 的用户(例如 uid A) 每个用户的配置文件节点(例如 nodeid B) 多个 reg 节点的 cck 字段包含配置文件节点的 nodeid(例如 cck 字段 C)

我需要在页面内显示在该 cck 字段 B 内具有 nodeid A 的所有 reg 节点。 对于每个用户。所以我进入一个页面 usersregnodes/uidA 并查看与该用户相关的所有 regnodes,因为在他们的 cck 字段 C 中,他们有节点 nodeidB 是该用户的配置文件 nodeid。

我在人际关系和争论中挣扎。 到目前为止,我认为我应该创建一个关系节点:内容配置文件。 过滤器应该是 reg 节点类型。 参数应该是用户标识(?)。 我无法完成这项工作,因为我尝试过的所有组合以及尝试和错误都会导致空白结果。

非常感谢您的帮助! 谢谢! 蔷薇

【问题讨论】:

我仍在为此苦苦挣扎,并尝试了视图内所有可能的组合,包括关系和参数。但还是拿不到。对此有什么想法吗?至少有指针吗?谢谢!! 【参考方案1】:

您可以使用视图来完成这项工作。诀窍是更改参数验证。

如果我猜对了,您需要将 uid 作为参数传递给视图,但获取引用该特定内容配置文件 nid 的节点 nid强>uid。

要实现这一点,您需要构建一个视图并使用自定义验证器设置参数。

如下构建视图:

    这是一个节点视图; 设置参数。为您的参数选择包含 nid 的节点引用字段; 在参数配置屏幕中,查找“验证器选项”; 选择“php 代码”而不是“基本验证”;

    使用以下代码(不要使用php的开始和结束标签):

    $prev_arg = $handler->argument;
    $handler->argument = content_profile_load('content_type_name', $prev_arg)->nid;
    return $handler->argument;
    

这样您应该能够将参数的值从 uid 更改为内容配置文件 nid 并获得由 nid 过滤的视图的结果。

【讨论】:

以上是关于Drupal:当这些节点的 cck 字段具有该用户的配置文件 nodeid 时,显示与配置文件相关的节点的主要内容,如果未能解决你的问题,请参考以下文章

Drupal:具有深度过滤的 cck 分类字段

如何在没有节点引用字段的情况下加入两个 Drupal CCK 内容类型?

如何根据 Drupal 中的 cck 归档数据计算节点数

使用 CCK / 视图 / facelet 在 Drupal 中搜索日期(大于、小于)?

如何使用 CCK API 创建节点引用字段?

在 Drupal 中按字段搜索自定义节点?