首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用模式窗口注册后才保存匿名用户的投票?

如何在使用模式窗口注册后才保存匿名用户的投票?
EN

Drupal用户
提问于 2013-12-12 09:32:16
回答 2查看 738关注 0票数 2

这是我的用法:

  1. 只有经过身份验证的用户才能投票。
  2. 如果匿名用户尝试投票,则在投票完成后,用户将被表示为登录/注册的模式窗口。
  3. 如果用户注册或登录,投票将被保存。

选票计算使用cron或其他模块完成。我没有绑定到任何特定模块(编写基本模块也没有问题)。我目前正在尝试我的运气规则,投票规则,五维斯特,显然,投票API。对于登录/注册角色和fbauth是使用,所以没有电子邮件验证是需要的。

允许用户匿名创建内容的模块,如果用户注册,则将内容分配给他们。中也讨论了一个类似的问题,但是我的用例涉及投票和电子邮件免费注册。投票使事情变得更加复杂,而电子邮件注册(希望如此)更容易。

PS:我希望对具有plus1 (或类似)模块的不同节点遵循相同的工作流程,因此需要一种通用方法。

EN

回答 2

Drupal用户

回答已采纳

发布于 2013-12-17 17:57:20

您可以将匿名选票存储在cookie中,然后在登录/注册时,检查该cookie是否存在,并相应地进行投票。

  1. 当anon用户尝试投票时,使用user_cookie_save()保存用户试图在cookie中投票的实体的实体类型和实体ID。把它命名为pending_votes。同时,您可以触发您的模式登录窗口。用户当时可能不会登录/注册,也有可能在最终登录之前尝试对其他实体进行投票。因此,您可能希望将实体类型和ID存储为序列化数组。
  2. 然后,您可以使用hook_user_login()连接用户登录,并检查是否存在pending_votes cookie。如果它在那里,使用它的内容和votingapi_set_votes()一起来投票。(之后删除pending_votes cookie,这样他们每次登录时就不会投更多的票)
票数 2
EN

Drupal用户

发布于 2013-12-21 02:36:27

懒惰注册是出于类似的原因而设计的,但我不确定它有多稳定。无论哪种方式,它都将为你提供一个良好的起点。

Lazy注册模块捕获匿名用户所做的操作,并将它们存储在临时用户帐户上,直到他们准备注册为止。

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

https://drupal.stackexchange.com/questions/97001

复制
相关文章

相似问题

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