Drupal Views - 在不同的词汇页面上排序分类术语权重的顺序?

时间:2011-04-08 08:52:51

标签: drupal drupal-views

我的节点按2个分类词汇表分类。两个词汇表都有分类页面,列出所有标记的节点。每个节点都有一个来自每个词汇表的标签。

我使用视图覆盖来控制分类页面。对于我的主词汇表的分类页面,我使用CCK整数字段来控制顺序。这很简单,工作正常。

对于我的辅助词汇表的分类页面,我希望顺序是主词汇表的术语权重,然后是CCK整数字段顺序。

我想我可以用2个排序顺序做到这一点,第一个是第1个词汇表中的术语权重,第2个是CCK字段顺序。然而,我所拥有的问题是,如果我将术语或术语权重作为排序标准添加到我的视图中,我无法指定主要词汇表,因此它使用页面所在的分类术语。这意味着在主要分类页面上它可以正常工作,但它不适用于第二个分类页面。

我不知道它是否会有所帮助,但下面是一个示例顺序:

1st Vocab
-TERM1
--NodeA
--NodeB
-TERM2
--NodeC
--NodeD

2nd Vocab
-TERM3
--NodeA
--NodeC
-TERM4
--NodeB
--NodeD

我该如何解决这个问题? 感谢

1 个答案:

答案 0 :(得分:1)

如果你正在处理一个术语视图并没有简单的方法,我建议你在这样的自定义模块中使用hook_views_query_alter:

function YOURMODULE_views_query_alter(&$view, &$query) {
  if ('YOUR VIEW NAME' == $view->name) {
    $query->add_orderby(<TABLE ALIAS>, <TABLE FIELD>, 'ASC');
  }
}  

如果你能负担过滤空术语,我的建议是使用content taxonomy module并改为创建节点视图。