我想使用视图来选择内容类型字段中的节点。此视图必须接收作为内容类型的另一个字段的参数。有人可以解释一下如何将参数从字段传递到视图吗?
原谅我糟糕的英语
您也许可以使用Views Arguments Extras模块。它将允许视图的参数来自 cck 字段。有关此模块的更多详细信息(来自其项目页面):
该模块包含一组视图处理程序和插件,它们添加了以下选项:
参数 默认当前节点 CCK
允许将当前节点的 cck 字段值作为默认参数加载
参数默认请求参数
允许获取和发布参数作为默认值
参数顺序排序
一个排序处理程序,它允许项目的顺序基于它们在多值参数中的顺序
我相信您可以使用参数验证来验证参数,此时您可以自由更改 $handler->argument 值,然后再将其传递给 Views。
如果您只想根据 CCK 字段的值更改视图显示的内容,我发现最简单的方法是使用views_embed_view()
. 我认为你的模板文件中这样的东西会起作用:
//Use the dsm function to print out your $node object
//to get the name of the field you want to pass as an arg
//like this: dsm($node);
//Assuming that the value of that field is in $node->cck_field['0']:
print views_embed_view('name_of_view', 'name_of_display', $node->cck_field['0'];
views_embed_view()
只需要第一个参数,视图的名称,就可以工作。它将返回命名视图的默认显示的 HTML。我们将特定的显示作为第二个参数传递给它。第二个参数之后的任何内容都作为参数传递给视图,因此我们将字段的值作为参数传递给视图。有关该功能如何工作的一些文档,请参阅此链接。