如何根据帖子数量将用户更改为其他角色?


7

有没有技巧可以使用户扮演特定角色后,发表X条帖子(核心论坛主题或/和回复)后自动将其变为其他角色?

我想实现一种功能,即当用户首次向我的网站注册时,他们将获得特权有限的角色,但是在论坛中发表了一定数量的帖子(新主题或对现有主题的回复)后,他们被置于不同的角色不需要验证码的角色,他们可以发布链接等。使用核心Forum高级论坛模块来仅供参考。

Answers:


9

我找到了一个模块User Stats,该模块与Rules集成,并提供可用于数值比较的令牌,如[user:post-count]。希望这对其他人有帮助。


2

用户统计模块只对D7一个开发版本(我假设这个问题是关于D7)。但是,您的问题似乎是Goals模块的完美用例(公开说明:我是该模块的维护者)。以下是使用目标的特定情况的可能配置。

配置目标

导航到相对路径,admin/config/goals/manage然后使用链接“添加目标”仅定义1个目标,并附带说明(例如):

发表X篇文章(核心论坛主题或/和回复)

配置任务

为实现目标 “的帖子(核心论坛主题和/或回复)的化妆X号”,定义一个或多个任务完成。

  • 发布一定数量的核心论坛主题。
  • 发表一定数量的回复。

使用(配置)Goal的一种更高级的方法是配置任务,如下所示:

  • 有些任务可能必须重复多次。
  • 有些任务可能需要一定的时间才能在任意两个相似任务之间到期(例如:如果某项任务一天执行多次,则只有第一个任务才重要)。
  • ...(还有其他人...)。

在执行任务时跟踪进度

要跟踪单个用户完成某项任务的进度,您只需使用“ 规则”模块编写适当的规则,即可记录您的站点中发生的与各种任务的完成相关的事件。

对于上述作为示例的目标/任务,您只需要2条(极其基本的)规则,就可以像这样触发:

  • 发表核心论坛主题之后。
  • 发表回复后。

请注意,这两个规则可以重复使用,以衡量多个目标的进度(例如,如果您的目标具有“发布1条回复后”的任务,而第二个目标具有“发布10条回复后”的任务)。

此外,上述挑战作为挑战的示例非常简单(基本)。但实际上,您可以对可以想到通过“规则”模块进行跟踪的任何实体进行此操作。

使用规则来处理已完成的目标

用户完成特定于目标的所有任务后,该目标会自动标记为已完成。但是,还有更多:您还可以创建其他规则,当用户完成目标时,这些规则将被触发(规则事件)。这样,您的问题的答案就非常容易:执行“规则操作”以“ ...将用户更改为其他角色 ” ...这正是您的问题所在,不是吗?

更多相同

代替上面的(无聊)目标描述,您可以使用目标描述,例如(例如)“ Participing User ”。哪个BTW可以很好地描述要授予的角色。

然后,如果您定义(说)另外3个(相似)目标,并且每个目标都有一组适当的任务要完成,则可以对目标(和/或角色)使用完全相同的技术,标记为类似(如果听起来很合理)熟悉Drupal.SE上的内容,这完全是偶然的):

  • 忠实用户。
  • 已建立的用户。
  • 受信任的用户。
  • 主持人

更多信息

有关“ 目标”模块的更多详细信息,请参阅我对“ 如何在Drupal网站中实施游戏化和奖励奖励? ”的回答。

注意:使用目标仅需要典型的管理任务(配置),尽管它确实带有各种钩子(用于自定义模块开发)(如果需要)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.