如何在Drupal中实现类似于StackExchange网站的带有徽章的基于信誉的系统?


15

在StackExchange上获得徽章很有趣。但是除此之外,它还可以促进用户之间的高质量互动,并有助于清除垃圾邮件(我从未在该网站上看到垃圾邮件)。

我有一个大约有500位活跃用户的社区网站,但是垃圾邮件发送者开始变得越来越多。

我希望有一种方法可以使网站更具吸引力,同时促进相同质量的交互性。

您将如何建议建立良好的声誉系统以及目标达成系统?


关于原始问题中提到的垃圾邮件发送者:它们仍将存在。因此,可以按照Free Radical在drupal.stackexchange.com/questions/121382/…上给出的答案中的建议来处理这些垃圾邮件发送者。
gpruim

Answers:


17

尽管有7.x版本的User Badges(用户徽章)尚不适合生产(从2012年6月4日开始),但有User Points模块和User Badges模块。

幸运的是,用户积分与“ 规则”模块集成在一起,它使您可以极大地定制用户获得(或可能失去)积分的方式。

还提供了一些集合的模块,用于不同稳定性的用户点。您当然可以使用这些模块设置一些令人惊奇的东西,但是请务必仔细测试您的实现-尽管这些模块编写良好且相当稳定,但仍有很多地方可能出问题,因此请确保验证所有功能正常。


11

对于徽章,有成就模块。

成就模块提供了创建成就和徽章的功能,类似于Xbox 360,Playstation 3,Foursquare,Gowalla,GetGlue等上看到的系统。对于Drupal网站,这可能意味着要进行一定次数的评论,启动论坛主题,一周中的每一天访问该网站或进行其他任何可跟踪和编码的事情。


1

您的问题实际上包括两部分,即有关如何实现的部分:

  • 一个信誉系统,这是由像关于特定用户的多个用户的评价。
  • 一个目标成就系统,这就像在完成各项任务后奖励用户,挑战,等等。

继续阅读有关如何实现这两个系统的更多详细信息。

目标达成系统

对于这类系统,通常可以选择2个模块,即:

  1. 成果模块,作为另一个答案建议了。该模块严重依赖于自定义编码来处理许多功能。

  2. 目标模块(披露:我是它的维护者),可用于在您的网站激励任何东西,如投票,共享内容,创建关系,等等。

    目标任务是使用可实地实体实现的。要完成的任务的一些示例可能是:

    • 连续三天每天登录一次该站点。
    • 发布多个选定内容类型的节点。
    • 在网站上建立朋友连接。
    • 等等。

    您可以通过“管理字段”和/或“管理显示”自定义目标。一切都只能通过网站建设功能完成(不涉及自定义代码),尽管也可以使用钩子将其集成到自定义代码中。因此,目标模块是使用管理界面配置构建的。另外,“目标”模块中的目标和任务是可现场设置的实体,因此您可以灵活地添加其他字段并将这些实体合并到“ 视图”中。使用Goals Extras子模块,它也与用户点模块集成在一起。

    转至目标视频,其中包括:

    • 该模块的一般介绍。
    • 安装,配置和使用它的演示。
    • 它如何使用“ 规则”模块实现其魔力的示例(即跟踪用户实现各种目标的进度)。

信誉系统

通过使用答案模块(公开:我是它的(共同)维护者),您可以“ 放入良好的信誉系统 ”(如您的问题所示)。以下是有关它的一些详细信息(来自其项目页面):

通过Answers,可以在Drupal站点中实施“问答系统”。用户可以发布问题,其他用户可以回答问题。

请访问其项目页面以获取更多详细信息。访问其演示站点,以演示基于View的列表(以匿名用户的只读模式):

“核心”答案模块使内容类型的问题答案,而答案显示它们涉及到问题的下方。这两种内容类型是可靠的,您可以管理它们的显示等。

使用其子模块来启用选定的功能(基于站点的要求),即:

  • 最佳答案答案,允许将特定问题的任何答案标记为最佳(可接受)答案(在每个答案的左侧显示蓝色复选标记,并在标记答案时由绿色复选标记代替)作为最佳答案)。
  • 答案主题,将问题(及其后的相关答案)的(而不是无聊的)原始显示转换为更具吸引力的外观。例如在问题周围添加的橙色气泡(以更好地突出显示)。
  • 答案通知,允许登录的用户订阅选定的问题,以便他们在问题接收答案时收到通知(使用消息栈)。
  • 答案投票,用于实现对问题和/或答案(使用“评分”模块)进行投票或降票的系统。
  • 答案Userpoints,以增加或减少“美誉点 ”(使用 Userpoints各项活动,例如向上或向下投票在问题或答案,或标记的答案为“模块)最佳答案 ”。

它的许多“业务逻辑”都是通过各种可配置的规则(使用“ 规则”模块)实现的。例如,如果您不同意关于已批准(或已否决)问题(或答案)获得多少“用户点”的现成规则,则只需使用“规则”用户界面来调整这些点的数量符合您的要求。例如:投降票的问题真的应该是免费的(即:投降票的人是否应该放任自流?)。

为了完整起见,以下是一条规则(以“规则”导出格式),用于将“ +15”分授予答案的作者,以及为“ +2”分给予标记该答案为已接受的用户(=对笔者的问题),而将其标记为这样被标记这个问题的答案为“最佳答案”(用做标志模块):

{ "rules_flag_answers_best_answer" : {
    "LABEL" : "flag_answers_best_answer",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "answers" ],
    "REQUIRES" : [ "rules", "userpoints_rules", "flag" ],
    "ON" : { "flag_flagged_best_answer" : [] },
    "IF" : [
      { "NOT data_is" : { "data" : [ "flagging-user" ], "value" : [ "flagged-node:author" ] } }
    ],
    "DO" : [
      { "userpoints_action_grant_points" : {
          "user" : [ "flagged-node:author" ],
          "points" : "15",
          "tid" : "0",
          "entity" : [ "" ],
          "operation" : "addPoints",
          "display" : 1,
          "moderate" : "default"
        }
      },
      { "userpoints_action_grant_points" : {
          "user" : [ "flagging-user" ],
          "points" : "2",
          "tid" : "0",
          "entity" : [ "" ],
          "operation" : "addPoints",
          "display" : 1,
          "moderate" : "default"
        }
      }
    ]
  }
}
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.