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

时间:2011-10-14 14:56:24

标签: php drupal views cck

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

  • 拥有其用户ID的用户(示例uid A)
  • 每个用户的配置文件节点(示例nodeid B)
  • 包含cck字段的几个reg节点,其中包含配置文件节点的nodeid(示例cck字段C)

我需要在页面内显示所有reg节点,其中包含cck字段B中的nodeid A. 对于每个用户。所以我输入一个页面usersregnodes / uidA并查看与该用户相关的所有regnodes,因为在他们的cck字段C中他们得到的节点nodeidB就是该用户的profile nodeID。

我正在努力解决关系和争论。 到目前为止,我认为我应该创建一个关系Node:Content Profile。 过滤器应该是reg节点类型。 参数应该是userid(?)。 我无法完成这项工作,因为我尝试过的所有组合和尝试与错误都会导致空白结果。

我真的很感谢你的帮助! 谢谢! Rosamunda

1 个答案:

答案 0 :(得分:1)

您可以使用视图来完成此操作。诀窍是改变参数验证。

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

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

按如下方式构建视图:

  1. 这是一个节点视图;
  2. 设置参数。选择包含参数的nid的节点引用字段;
  3. 在参数配置屏幕中,查找“验证器选项”;
  4. 选择“PHP代码”而不是“基本验证”;
  5. 使用以下代码(不要使用php开始和结束标记):

    $prev_arg = $handler->argument;
    $handler->argument = content_profile_load('content_type_name', $prev_arg)->nid;
    return $handler->argument;
    
  6. 这样你就可以将参数的值从uid更改为内容配置文件nid,并获取由nid过滤的视图的结果。