0

Drupal 6.22 Fivestar 6.x-1.19 规则 6.x-1.4 这些模块是本文发布时的最新模块。

我的目标是在用户对节点进行投票时将其重定向到页面。应该足够简单。

我为用户何时对节点投票创建了规则。没有条件。我添加了一个操作来向日志中添加一条消息,以验证规则是否被触发。它是什么。然后添加一个动作以重定向到主页(用于测试)。重定向永远不会发生。如果我选中“立即发出页面重定向”选项,则 ajax 投票永远不会保存,只会挂在“保存投票......”。

我不认为我做错了什么,并将其发布到五星级模块问题。其他人遇到过这个问题吗?

4

1 回答 1

1

http://drupal.org/node/252859

“重定向到 url ...”肯定会导致 Fivestar 的 AJAX 投票机制出现问题。这是正在发生的事情:

通常会发生什么: - 用户点击 Fivestar 小部件进行评分。- AJAX 请求由当前页面发出。- VotingAPI 保存投票。- Fivestar 生成 XML 并打印页面。- 当前页面接收 XML,然后使用新值更新投票小部件。

VotingActions 会发生什么: - 用户点击 Fivestar 小部件进行评分 - 发出 AJAX 请求 - VotingAPI 记录投票 - VotingActions 挂断并说“哦,我正在重定向这个 URL” <-- 哪里出错了 - 而不是返回XML 到调用页面(这将更新投票),原始页面返回一个完整的 HTML 页面,其中包含 VotingActions 重定向页面的任何位置。- Fivestar 无法生成它的 XML,因为 VotingActions 已经使用 drupal_goto() 结束了执行。

所以我认为这不是 VotingActions 或 Fivestar 中的错误,这只是以不兼容的方式使用两个功能的情况。为了使这项工作顺利进行,Fivestar 必须使用 AJAX 驱动,而是重新加载页面以保存投票。

Fivestar 提供了一个不错的 JavaScript 钩子,您可以使用它转到下一页。如果您将 JavaScript 添加到包含以下内容的页面:

function fivestarResult(voteResult) {
    window.location.href = 'http://google.com';
}
于 2012-01-17T05:00:24.430 回答