2011-03-12 68 views
0

我最近使用phpBB的3作爲後端的Drupal 7轉移a Flash/Perl card game和它一直運作良好,但我猶豫(重新)啓用論壇 - 因爲我舊址的一些用戶一直在嚇跑我。增加對他的登錄/刪除用戶角色 - 基於非Drupal的表

我想再次提供我的網站的論壇,但只給用戶,誰在玩足夠長的時間,在我的網站,並有足夠好的口碑。這兩個信息(有多少遊戲+聲望)由我的Perl遊戲維護,並保存在非Drupal表(但與Drupal表相同)中。我已經創建了受信任的Drupal用戶角色的用戶

# select * from drupal_role; 
rid |  name  | weight 
-----+--------------------+-------- 
    1 | anonymous user  |  0 
    2 | authenticated user |  1 
    3 | trusted user  |  2 
(3 rows) 

我可以修改2點在我的遊戲 - 在遊戲進行計數並在那裏的聲譽正在被改變 - 然後調用「插入/刪除其中users_roles where uid =?',但也許在Drupal有更好的地方,我可以更改用戶角色登錄

I.e.一個用戶(重新)訪問我的網站,他的信譽遊戲數量通過對我的非Drupal表的2個快速選擇查詢進行檢查,然後將其添加(或刪除 - 如果他的聲望降低)到受信任用戶的作用,並可以在論壇上寫。

謝謝! 亞歷

回答

0

根據用戶的數量,這可能是一個更好的主意性能明智的,實際上給他們必要的角色時,他們做什麼,而不是在每一個頁面加載執行兩個查詢。

如果你想這樣做,你可以使用hook_init()將角色添加到全局的$用戶對象。

0

用戶Rules控制點和不斷變化的用戶角色。還啓用PHP過濾器模塊在規則中執行自定義PHP代碼以運行自定義查詢。

0

你檢查hook_user_login?您需要將其放入自定義模塊中,但是應該可以在通過該掛鉤登錄後將角色添加到用戶。

+0

你好jdwfly,我試過hook_user_login,但它似乎只有當用戶提交他的密碼時纔會調用。我希望有一些其他的鉤子可用,例如,當用戶重新訪問Drupal 7網站,但不必輸入密碼,因爲餅乾仍然有效... –

+0

這是真的,鉤只火當他們真正登錄時。您可以使用像Nikit建議的規則,並在查看頁面時觸發規則,然後您可以觸發您的自定義php。這顯然會在每個頁面視圖上運行,因此您需要確保優化它,以便在不需要時不進行查詢。 – jdwfly

+0

您可以使用像hook_init()那樣早調用的任何鉤子,然後更改全局$用戶。 – Berdir