首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Drupal Fivestar ratings对视图进行排序?

如何使用Drupal Fivestar ratings对视图进行排序?
EN

Stack Overflow用户
提问于 2009-09-13 02:52:06
回答 2查看 5.2K关注 0票数 2

我使用的是Drupal 6.13,Views 6.x-2.6,Voting API 6.x-2.3,Fivestar 6.x-1.18。

我有一个内容类型,字段类型为Fivestar。我有一个视图,我的意图是列出具有此内容类型的所有节点,并按总体平均评级降序排序。视图的作用在于它显示了正确的信息(有能力投票的用户投票和总体平均投票)。但我无论如何也不能让它正确地排序。

在视图中,我有一个关系:“节点:投票结果”,值类型=“百分比”,投票标签=“正常”,聚合函数:“平均值”。

我已经尝试了很多方法,但我期望的是添加一个带有“(投票结果)投票结果:值”和降序的“排序标准”。当我这样做时,如果我查看sql查询,我看到"ORDER BY node_title ASC“,这显然是不正确的。我期望看到"ORDER BY votingapi_cache_node_percent_vote_average_value DESC“。如有任何建议,我们将不胜感激。

查询地址:

代码语言:javascript
复制
SELECT node.nid AS nid,
   node.title AS node_title,
   profile_values_profile_full_name.value AS profile_values_profile_full_name_value,
   users.uid AS users_uid,
   votingapi_vote_node_percent_vote_curuser.value AS votingapi_vote_node_percent_vote_curuser_value,
   votingapi_cache_node_percent_vote_average.value AS votingapi_cache_node_percent_vote_average_value
 FROM node node 
 LEFT JOIN votingapi_cache votingapi_cache_node_percent_vote_average ON node.nid = votingapi_cache_node_percent_vote_average.content_id AND (votingapi_cache_node_percent_vote_average.content_type = 'node' AND votingapi_cache_node_percent_vote_average.value_type = 'percent' AND votingapi_cache_node_percent_vote_average.tag = 'vote' AND votingapi_cache_node_percent_vote_average.function = 'average')
 LEFT JOIN votingapi_vote votingapi_vote_node_percent_vote_curuser ON node.nid = votingapi_vote_node_percent_vote_curuser.content_id AND (votingapi_vote_node_percent_vote_curuser.content_type = 'node' AND votingapi_vote_node_percent_vote_curuser.value_type = 'percent' AND votingapi_vote_node_percent_vote_curuser.tag = 'vote' AND votingapi_vote_node_percent_vote_curuser.uid = '***CURRENT_USER***')
 LEFT JOIN node_revisions node_revisions ON node.vid = node_revisions.vid
 LEFT JOIN users users_node_revisions ON node_revisions.uid = users_node_revisions.uid
 INNER JOIN users users ON node.uid = users.uid
 LEFT JOIN profile_values profile_values_profile_full_name ON users.uid = profile_values_profile_full_name.uid AND profile_values_profile_full_name.fid = '5'
 WHERE (node.type in ('passion_talk')) AND (node.status <> 0)
   ORDER BY node_title ASC
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-13 04:41:38

啊,我想通了。我使用的是Table样式,在节点标题上设置了一个默认排序,导致所有排序条件都被忽略。

票数 1
EN

Stack Overflow用户

发布于 2009-09-13 03:15:50

这很奇怪;VotingAPI附带的'top_content‘视图包括一个'Fivestar’显示,它准确地设置了您所描述的关系。它能工作吗,或者它能显示你遇到的问题吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1416730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档