如何为内容关系设置drupal?

时间:2010-08-16 22:54:04

标签: drupal drupal-views

使用Drupal 6.x我创建了两种内容类型:Person和Event。事件有一个名为Attendees的自定义字段(类型:节点参考;对人的值不受限制)。在查看特定的人时,如何展示他们的所有活动?

我创建了一个视图(个人事件)并添加了一个块显示。我启用了块以显示内容类型Person。如何定义视图?或者有更好的方法吗?

安装的模块:CCK;节点关系;观点

2 个答案:

答案 0 :(得分:1)

我认为其中一个模块对您有所帮助:

答案 1 :(得分:0)

我对自己的问题有一个答案。但是,可能有更好的答案......我只能希望。

创建内容块(个人事件)

将此代码添加到块的主体。此代码将node id参数传递给视图

<?php
if ( arg(0) == 'node' && is_numeric(arg(1)) && ! arg(2) ) {
  $node = node_load(arg(1));
  $args = array($node->nid );
  $view = views_get_view('PersonalEvents');
  print $view->preview('default', $args);
}
?>

将此代码添加到块的页面中[通过选择:显示以下PHP代码是否返回TRUE(PHP模式,仅限专家)] ...这会使块仅显示为人员内容。

<?php
//Read URL
$path=$_GET['q'];
//If URL is node page
if ( strpos($path,'node')===0){
//Parse URL to get nid
$links=explode("/",$_GET['q']);
$nid=$links[1];
//Load node
$node=node_load($nid);
//Display block only if node is of certain content type
if($node->type=='person'){
return TRUE;
}
}
return FALSE;
?>

然后创建视图:

样式:表

关系内容:与会者(field_attendees);需要这种关系(检查);和Delta设置为ALL。

参数:节点:Nid;关系:与会者;隐藏视图/页面未找到(404)[已选择]

字段...只需选择节点标题和日期(现在)

过滤器:节点类型=事件

任何人都有更好的方法吗?

相关问题