Search code examples
drupal-7commentsuserpoints

How to grant user User Points after adding comment once?


I created a rule to grant users User Points when they added a comment on a node. However, I'd like to grant them these points only once. That means: they don't get more points when they react a second or a third time on the same node, but they will be granted points nevertheless after commenting on another node.

How can I do that?


Solution

  • I solved my problem with the Flags module: I created the flags called 'Commented on this node' & 'First reaction'* and rule called 'Commented on a node'. These are my rule's settings:

    EVENTS: After saving a new comment

    CONDITIONS:

    • Content is of type Parameter: Content: [comment:node], Content types: Article
    • NOT Node is flagged Parameter: Flag: Commented on this node, node: [comment:node], User on whose behalf to check: [comment:author]

    ACTIONS:

    • Grant points to a user Parameter: User: [comment:author], Points: 2, Points category: Reaction, Entity: [comment:node], Description: New reaction, Operation: Add, Display: false, Moderate: Automatically approved
    • Flag a Node Parameter: Flag: Commented on a node, Node: [comment:node], User on whose behalf to flag: [comment:author], Skip permission check: false
    • Flag a Comment: Parameter: Flag: First reaction, Comment: [comment], User on whose behalf to flag: [comment:author], Skip permission check: false

    So, every time a user adds a comment to a certain node for the first time, the node is flagged as 'Commented on a node', the reaction is flagged as 'First reaction' and the user who added the comment is rewarded 2 points.

    **I use the 'First comment' flag in a related question.*