2012-01-17 13 views
0

Drupal 6.22 Fivestar 6.x-1.19 規則6.x-1.4 這些模塊是本貼子的最新版本。如何使用規則在Drupal的五星級投票後重定向到一個頁面?

我的目標是當用戶在節點上投票時將用戶重定向到頁面。應該很簡單。

我已經爲用戶在節點上投票時創建了一條規則。無條件。我已經添加了一個操作來向日志添加消息以驗證規則是否正在觸發。它是什麼。然後添加一個動作重定向到主頁(用於測試)。重定向從不發生。如果我選中「立即發佈頁面重定向」選項,ajax投票永遠不會保存,只會掛在「保存投票...」。

我不認爲我做錯了什麼,並會將此發佈到五星模塊問題。其他人遇到過這個問題嗎?

回答

1

http://drupal.org/node/252859

A 「重定向到URL ......」 肯定會導致與五星的AJAX投票機制的問題。以下是發生了什麼:

通常會發生什麼: - 用戶單擊Fivestar小部件進行評分。 - AJAX請求由當前頁面進行。 - VotingAPI保存投票。 - Fivestar生成XML並打印頁面。 - 當前頁面接收XML,然後用新值更新投票窗口小部件。

與VotingActions會發生什麼: - 用戶點擊一個五星插件率 - AJAX請求時 - VotingAPI記錄表決 - 在VotingActions掛鉤,並說:「哦,我重定向此URL」 < - 出現問題的地方 - 原始頁面不是將XML返回到調用頁面(它將更新投票),而是返回一個包含VotingActions重定向頁面的完整HTML頁面。 - Fivestar無法生成它的XML,因爲VotingActions通過使用drupal_goto()來結束執行。

所以我不認爲它是VotingActions或Fivestar中的一個錯誤,它只是一種以不兼容的方式使用兩個功能的情況。爲了使這項工作,Fivestar將不得不而不是被AJAX驅動,而是重新加載頁面來保存投票。

Fivestar提供了一個不錯的JavaScript鉤子,您可以使用它來轉到下一頁。如果您將JavaScript添加到包含如下內容的頁面:

function fivestarResult(voteResult) { 
    window.location.href = 'http://google.com'; 
} 
相關問題