使用Drupal 6.x我创建了两种内容类型:Person和Event。事件有一个名为Attendees的自定义字段(类型:节点参考;对人的值不受限制)。在查看特定的人时,如何展示他们的所有活动?
我创建了一个视图(个人事件)并添加了一个块显示。我启用了块以显示内容类型Person。如何定义视图?或者有更好的方法吗?
安装的模块:CCK;节点关系;观点
答案 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)[已选择]
字段...只需选择节点标题和日期(现在)
过滤器:节点类型=事件
任何人都有更好的方法吗?