我最近使用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个快速选择查询进行检查,然后将其添加(或删除 - 如果他的声望降低)到受信任用户的作用,并可以在论坛上写。
谢谢! 亚历
你好jdwfly,我试过hook_user_login,但它似乎只有当用户提交他的密码时才会调用。我希望有一些其他的钩子可用,例如,当用户重新访问Drupal 7网站,但不必输入密码,因为饼干仍然有效... –
这是真的,钩只火当他们真正登录时。您可以使用像Nikit建议的规则,并在查看页面时触发规则,然后您可以触发您的自定义php。这显然会在每个页面视图上运行,因此您需要确保优化它,以便在不需要时不进行查询。 – jdwfly
您可以使用像hook_init()那样早调用的任何钩子,然后更改全局$用户。 – Berdir