试图按术语/语言计算分类法,包括0计数

时间:2014-05-28 15:40:27

标签: drupal drupal-7 views taxonomy

在多语言Drupal网站上,我正在尝试创建一个列出特定分类法的所有术语的视图,并包括与该术语关联的节点数,按语言细分。在大多数情况下,它是有效的,除了我有一种语言的内容而不是另一种语言的内容,它没有用该语言正确显示。

样本数据:
分类:教育,食品,旅游
语言:英语,韩语

节点:

Name | Taxonomy | language
Education Test E | Education | en
Education Test E2 | Education | en
Education Test K | Education | ko
Food Test E | Food | en

期望的结果:

Taxonomy | Language | Count
Education | en | 2
Education | ko | 1
Food | en | 0
Food | ko | 1
Travel | en | 0
Travel | ko | 0

我得到了什么:

Taxonomy | Language | Count
Education | en | 2
Education | ko | 1
Food | ko | 1
Travel | en | 0
Travel | ko | 0

在SQL中,我已经找到了我需要的查询:

SELECT l.language, td.name, COUNT(n.nid) AS Questions
FROM languages l
CROSS JOIN taxonomy_term_data td
LEFT OUTER JOIN field_data_field_qa_topic qat ON td.tid=qat.field_qa_topic_tid AND qat.deleted= '0'
LEFT JOIN node n ON qat.entity_id = n.nid AND n.language=l.language
WHERE td.vid=9
GROUP BY l.language, td.name
ORDER BY td.weight, td.name, l.language;

但我无法弄清楚如何让它在Views中运行。 (是的,我安装了Views Cross Join模块。)

另一种选择 - 我已经在MySQL中创建了这个查询视图,但是无法弄清楚如何在Drupal Views中公开SQL视图。

这两种方法(创建Drupal View或将SQL视图暴露给Drupal)在这一点上都没问题 - 我只想让它运行起来。谢谢!

编辑:为了澄清我想要实现的目标,我想要一个包含此特定分类的所有术语的列表(以便用户获得指向相应页面的链接)以及每个术语的现有内容页数(包括有0的那些)。我希望只对当前用户的语言进行过滤,但我也可以将其与所有语言一起使用并过滤掉代码。

1 个答案:

答案 0 :(得分:0)

很抱歉,如果我误解了您,但是如果您要实现的目的是获取当前用户正在使用的语言的计数或网站使用的当前语言,则必须添加过滤条件 - 内容:语言并选择用户或网站语言。

或者您想获得所有语言/内容列表的数据表?