Tyl*_*ter 15
您有两种选择,最有可能将它们组合在一起:
您可以拥有一个每X分钟运行一次的cron-job,并在数据库上运行,查看每个用户并检查它们是否值得拥有新徽章.
例如,StackOverflow为Nice Answer徽章实现了这一点.每次运行时,它都会检查您拥有+10个投票的答案数量,并查看是否需要获得另一个徽章.(它看到5个帖子有10个upvotes和4个Nice Answer Badges,你会得到一个徽章).杰夫已经表示,这意味着如果你得到一个得到10票,然后投票,然后另一个帖子获得10票的答案,你就不会获得徽章.
第二个选项是基于事件的触发器.这真的很简单:
$badgeSystem->giveBadge("Some Badge Name", $User_ID);
Run Code Online (Sandbox Code Playgroud)
这可用于您知道正在发生的事件.就像Autobiographer徽章一样.除非按下提交按钮,否则用户将无法填写他的个人资料,因此网站可以检查用户是否填写了整个内容,如果他们有,并且他们仍然需要徽章,他们就会得到它.
cron-job应该用于经常检查的操作.像量化目标,如访问网站150天,或编辑500次.
只有当用户执行特定操作(例如提交表单)时,才会发生基于事件的触发器.
(你几乎可以在任何情况下使用它.基于事件的触发器可以提供更快的反馈..)
| 归档时间: |
|
| 查看次数: |
3612 次 |
| 最近记录: |