【问题标题】:Drupal: retrieve data from multiple node types in views 2?Drupal:从视图 2 中的多个节点类型检索数据?
【发布时间】:2009-10-06 06:44:52
【问题描述】:

...或者,换句话说,如何像在 SQL 中那样创建一个简单的连接?

假设我想要以下信息:

举个例子:

  • 一个人的全名
  • 一个人的爱好。

他的全名在(内容配置文件)节点类型“name_and_address”中,他的爱好在“hobbies”中。

在 SQL 中,我会通过 node.uid 将它们链接在一起。 我已经看到了一些关于使用关系的内容,但这与用户节点引用有关。 我只想要一种内容类型和另一种内容类型的同一个用户。

现在我怎样才能在 1 个视图中获得他的名字和他的爱好?

【问题讨论】:

    标签: drupal views2


    【解决方案1】:

    有一个here 的方法可以完成这项工作吗?

    如果不是……

    视图可以通过自定义连接、过滤器等进行扩展。如果你幸运的话,已经有一个模块可以做到这一点。有些模块甚至提供自己的视图插件。

    您可以编写自己的视图插件,尽管文档有些零散。

    应该注意的另一件事是视图并不总是答案。有时编写自定义查询和显示处理程序会更轻松地完成您想要的工作。

    【讨论】:

      【解决方案2】:

      查看视图的关系部分。这允许您关联(即连接)不同类型的内容(即表格)。对于习惯使用 SQL 的人来说,这并不是特别直观,但是这个视频解释了其中的大部分内容。 http://www.drupalove.com/drupal-video/demonstration-how-use-views-2s-relationships

      【讨论】:

      • 是的,但它处理的是公司 - 部门的样本,其中链接由用户参考创建。在这种情况下我没有,因为我只想拥有创建节点的同一用户的节点。
      【解决方案3】:

      您可以在模板文件中使用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 手动呈现和修改模板文件中的视图。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-06
        • 1970-01-01
        相关资源
        最近更新 更多