Warning: Undefined array key "HTTPS" in include() (line 29 of /opt/www/fdv2/drupal.stage/web/sites/default/settings.local.php).
include('/opt/www/fdv2/drupal.stage/web/sites/default/settings.local.php') (Line: 4)
require('/opt/www/fdv2/drupal.stage/web/sites/drupal001.net/settings.php') (Line: 145)
Drupal\Core\Site\Settings::initialize('/opt/www/fdv2/drupal.stage/web', 'sites/drupal001.net', Object) (Line: 1099)
Drupal\Core\DrupalKernel->initializeSettings(Object) (Line: 701)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
drupal rules模块设置 用户累计发送评论50条后,怎么样,如何设置 - Drupal大学 - Drupal问答论坛
首页 / 帖子
drupal rules模块设置 用户累计发送评论50条后,怎么样,如何设置

我想用User badges这个模块奖励用户不同的勋章,当他们触发不同的条件时,

比如有一个勋章需要用户累计发送50条评论,才可获得,如何配合rules模块去设置?


我是这样想的

Events 里面是“在保存新的评论之后”


action 是“给该评论作者添加一枚评论员徽章”


然后中间的 Conditions 应该是做一个计数吧,当达到50个评论后才能触发动作,我就是这个位置不会设置,




2个答案
王斌
发布于:2015-01-21 14:28

如果在Conditions里选 data comparison


在DATA SELECTORS里有一个评论总数,但这个是这个评论的文章的评论总数吧,并不是评论作者的评论总是吧,


老葛
发布于:2015-01-22 08:57

简单说下我的思路,具体细节就不说啦:P

(1)新建一个Views,关于Comment的,Contextual filter选Comment: Author uid;

(2)启用VBO模块,并添加字段Bulk operations: Comment;

(3)在Rules的Condition中添加Check number of results returned by a VBO View。


增加另一个思路:D 不过可能要稍微改动你之前的rule

(1)新建一个component,rule set,参数是User

(2)rule set里新建rule,action是Fetch entity by entity(Entity type: Comment,Property:Author,Limit result count:51)

(3)再新建rule,condition选List count comparison,选is greater than,50

(4)action就是你需要的动作,例如加勋章什么的

(5)你原来的action去掉,改成引用这个新建的rule set