Drupal 7 - 五星和用户点

时间:2014-03-24 22:13:31

标签: drupal drupal-7 userpoints fivestar

我有一个内容类型和登录用户投票的可能性。节点上有5种不同的五星投票(类别)。现在我想添加用户点,并想询问当用户投票时他是否有可能在节点上每次投票获得1分,如果他在每个类别中投票,则为5分。他有可能在以后改变投票,但随后他不再得到任何积分。这有可能吗?

招呼

1 个答案:

答案 0 :(得分:0)

虽然看起来没有现成的7.x或8.x模块可以实现这一目标,但有两种方法可以实现目标:

  • 编写模块。 Userpoints API is fairly well-documented并且应该可以创建一个模块,以便在修改五星字段时增加用户的用户点数。为避免重复,请注意此字段看起来应该完成您要查找的重复数据删除(假设您将txn_id设置为当前节点ID,字段ID和用户ID的某种组合:

'txn_id' => (int) Transaction ID of a current points record. If present an UPDATE occurs

  • 使用规则。 userpoints模块与规则集成,因此您应该能够在不编写任何代码的情况下完成用户点用例。根据{{​​3}},您可以将当前用户点与交易前的点数进行比较:

Compare Userpoints before the transaction - This condition is used to compare the amount of userpoints the user had before the userpoints was added to/deducted from the user against a specified value. - The 'Amount to compare' value is checked as >= (greater than or equal to) and the Negate checkbox will change the condition to < (less than) as it will be any value other than >=. If you would like to get an exact value, say 1, you can add two of the condition to use >= and < to specify one number. Simple math stuff here =)

我希望这会有所帮助。让我知道它是怎么回事!