【问题标题】:How to limit the amount of User Points users get?如何限制用户获得的用户积分数量?
【发布时间】:2013-10-03 09:15:37
【问题描述】:
我有一个内容类型“内容”,其中包含字段“值”(一个整数)和一个名为“发布内容并授予用户点数”的标志。每次使用此标志标记内容时,我想授予内容的作者一些用户积分,等于“价值”字段中的值,但最多为 5。
我有一个关于“最大 5”条件的问题。我用额外的条件“数据比较”制定了 2 个单独的规则:一个具有 [标记节点:字段值低于 6],另一个具有 [标记节点:字段值大于 5]。 (请注意,我可以在此处选择“字段值”!)是否可以仅在 1 条规则中执行此操作?
注意:我的“值”字段也有问题。请参阅:Grant user User Points equal to value of certain field。
【问题讨论】:
标签:
drupal-7
flags
drupal-rules
userpoints
【解决方案1】:
我为我的问题找到了解决方案;也许它也可以帮助其他人。我实际上创建了一个“更正”规则,该规则在用户获得用户点数并且“内容”节点被标记为“发布内容并授予用户点数”后被激活。这就是我设置规则的方式:
活动
- 用户获得了用户积分
- 已在“发布内容并授予用户积分”下标记了一个节点
然后,我检查了点数是否高于5。
条件
- 数据比较:
[userpoints-transaction:points]大于5
最后,我计算了添加的用户点数和 5 之间的差值,并从用户的用户点数中减去了这个值。
动作
- 计算一个值:
[userpoints-transaction:points]“-”5(变量名:差异)
- 计算一个值:
[difference] "*" -1(变量名:减法)
- 向用户授予积分:授予
[userpoints-transaction:user]substract积分
我必须插入第二个计算,否则我无法从用户的用户点中减去“差异”。