...或者,换句话说,如何像在 SQL 中那样创建一个简单的连接?
假设我想要以下信息:
举个例子:
- 一个人的全名
- 一个人的爱好。
他的全名在(内容配置文件)节点类型“name_and_address”中,他的爱好在“hobbies”中。
在 SQL 中,我会通过 node.uid 将它们链接在一起。我已经看到了一些关于使用关系的内容,但这与用户节点引用有关。我只想要一种内容类型和另一种内容类型的同一个用户。
现在我怎样才能在 1 个视图中获得他的名字和他的爱好?
这里有一个如何做到这一点?
如果不...
视图可以通过自定义连接、过滤器等进行扩展。如果幸运的话,已经有一个模块用于此。一些模块甚至提供自己的视图插件。
您可以编写自己的视图插件,尽管文档有些零散。
应该注意的另一件事是视图并不总是答案。有时编写自定义查询和显示处理程序会以更少的麻烦做你想做的事。
查看视图的关系部分。这允许您关联(即连接)不同类型的内容(即表格)。对于习惯使用 SQL 的人来说,这并不是特别直观,但这个视频解释了其中的大部分内容。http://www.drupalove.com/drupal-video/demonstration-how-use-views-2s-relationships
您可以views_embed_view()
在模板文件中使用手动指定它们出现的位置(并通过扩展在另一个视图下方呈现一个视图)。您可以在自定义模块中覆盖此功能(modulename_embed_view($name, $display_id)
),以便有选择地编辑允许进入页面的数据。
前任):
function modulename_embed_view($name, $display_id) {
if (strcmp($_GET['q'], 'node/123') === 0) {
$view = views_get_view($name);
$view2 = views_get_view('second view');
$output = $view['some element'] . $view2['element'];
}
return $output;
}
我知道这在很大程度上是一种 hack——我只是想展示如何使用 php 手动呈现和修改模板文件中的视图。