Drupal:视图:阻止列表中的分组关系

时间:2009-08-03 14:10:51

标签: drupal

我对视图有疑问,特别是关于分组关系的问题。我有一个“伙伴”节点,有许多“文档”,我想列出“伙伴”的名称及其下面的相应“文档”。我正确设置了关系(我认为),但无法弄清楚如何或在何处正确分组。

我明白了:

partner name 1
- doc name 1
partner name 1
- doc name 2
partner name 1
- doc name 3
partner name 2
- doc name 4
partner name 2
- doc name 5
partner name 3
- doc name 6

但希望如此:

partner name 1
- doc name 1
- doc name 2
- doc name 3

partner name 2
- doc name 4
- doc name 5
- doc name 6

4 个答案:

答案 0 :(得分:7)

听起来你走在正确的轨道上。为了使分组按上述方法工作,您需要将显示样式设置为“html list”,然后在样式选项下,将分组字段设置为伙伴名称。完成此操作后,您可以编辑合作伙伴名称字段,然后选择“从显示中排除”,然后应该为您提供所需的格式。

答案 1 :(得分:2)

我今天遇到了同样的问题。为了排除故障,我做了一个新的Drupal空安装,只添加了我的内容类型和关系。当我创建视图时,我没有看到问题。一旦我开始添加模块,我发现开发模块中的主题开发人员导致了问题。尝试取消选中并重新加载视图。您也可以通过选中项目,打开另一个浏览器并将视图作为无法看到主题开发人员的视图来查看此内容。

答案 2 :(得分:0)

我使用views_field_view模块取得了一些成功,该模块允许您将视图指定为字段。

首先,我创建了一个视图,其中包含我想要分组的单个字段,然后使用以下代码覆盖查询。

function hook_views_pre_execute(&$view) {
    if ($view->name == 'phone_search') {
        $query = 'SELECT DISTINCT node_data_field_status.field_status_value AS node_data_field_status_field_status_value
            FROM content_type_phone node_data_field_status';
        $view->query->query = $query;
        $view->query->final_query = $query;
        $view->query->count_query = $query;
    }
}

原因是当您将其设置为选择不同时,视图会自动包含nidvid字段,因此您实际上并未获得不同的值。通过像这样破解查询,我解决了这个问题。

views_field_view模块允许我创建第二个视图,其中包含我希望在组中显示的字段。将view_field添加到主视图(查询被覆盖的视图)时,您可以指定要作为参数传入的字段。然后必须在子视图中指定此参数。

这一切都有点复杂,但我希望这很清楚!

答案 3 :(得分:0)

这是观点不足的地方。

我经常编写一个模块来产生这些结果,因为我发现编写sql比使用视图进行更快速,更易于维护。

也就是说,有许多视图插件提供这种类型的功能。我没有对它们进行测试,因为我发现通常使用少量自定义代码可以更容易地处理它们,但是这里有一些项目试图为这类视图提供解决方案。

https://drupal.org/project/views_complex_grouping

https://drupal.org/project/views_grouped_table

还有很多其他人,但我只能发布两个链接,因为我不经常在这个网站上回答问题:)

欢呼声