自drupal 4.7起,引入了新的tagging的方式,也即是freetags。从根本上讲,这仍然是drupal分类系统(taxonomy)的一部分,所以在页面上显示的时候,freetags与一般的分类是混在一起的,有时候会带来不方便,所以我们希望用一种方法把两者分离,就像awtags与分类的显示那样。这部分的显示控制有主题文件中的node.tpl.php来完成,具体的说,在一般的主题的node.tpl.php中,分类的显示是由以下代码来完成的:
print terms;
?>
这里的term包括分类系统中所有的分类(term),而我们现在就要把categories和reetags分开,分开的原理是利用他们所从属的不同的vocabulary。首先我们要查知blog分类的vid与freetags的vid,在phpMyAdmin中,浏览vocabulary表,就能查到相关的信息。我这里分类的vid是11,freetags的vid是12,在显示
print terms;
?>
的地方,我们加入第一段代码来显示分类:
$vid = 11;
//分类的vid
$result = db_query("SELECT t.tid, t.name FROM {term_data} t, {term_node} r WHERE r.tid = t.tid AND r.nid = %d AND t.vid = %d ORDER BY weight, name", array($node->nid, $vid));
while ($term = db_fetch_object($result)) {
$cats[] = l($term->name, 'taxonomy/term/' . $term->tid);
}
if ($cats) {
print t("Category: ") . implode('| ', $cats);
}
//定义新的变量$cats,我们仍然使用'|'来分隔分类,你可以按照喜好更改
?>
然后在 content 的div结束的地方,也就是内容的下面,新建一个显示tags的div:
这样改造工作就完成了:)