在Drupal 7块中,我试图列出无序列表中特定词汇表的分类术语,并且还有任何已发布的节点分类术语作为儿童。Drupal 7:手动列表分类术语和具有这些术语的节点
例子:
说我有一个叫做产品的词汇,它具有分类术语啤酒,葡萄酒,威士忌&。说啤酒有2个内容节点连接到它(吉尼斯&百威)等。
它应该结束这样看:
- 啤酒(2)
- 吉尼斯
- 百威
- 酒(2)
- 黑比诺
- 白色金芬黛
- 威士忌(3)
- 杰克丹尼
- 庄家马克
- 冠冕
我已经想通了如何显示 “公正” 与分类术语计数,但无法弄清楚如何打印与每个术语相关的所有已发布节点。下面是我的了:
<?php
$vid = 1; //vocabulary id
$query = "SELECT tid, name, count
FROM (
SELECT td.tid AS tid, name, COUNT(td.tid) AS count
FROM taxonomy_term_data AS td
JOIN taxonomy_index AS tn
ON td.tid = tn.tid
JOIN node AS n
ON n.nid = tn.nid
WHERE td.vid = ". $vid ."
AND n.status = 1
GROUP BY td.tid
ORDER BY count DESC
) AS t
ORDER BY name ASC";
$result = db_query($query);
print '<ul>';
foreach($result as $term) {
if ($term->count > 0) {
print '<li>';
echo l($term->name, "taxonomy/term/$term->tid").' ('.$term->count.')';
print '</li>';
}
}
print '</ul>';
?>
这将产生以下输出:
- 啤酒(2)
- 酒(2)
- 威士忌(3)
但我如何让这些分类术语的孩子显示作为该分类术语组成部分的已发布节点?
任何想法?
谢谢
你为什么不使用视图来做到这一点? – mmiles
我不确定我是否可以使用Views来做到这一点。你能解释一下更多的细节来帮助我吗? – WebMW