Pour D7, je recommande d'opter pour une combinaison de ces modules alternatifs, et souvent utilisés, pour soustraire (ou ajouter) des points utilisateur lorsque certains nœuds sont rejetés (ou qu'un tel downvote est à nouveau supprimé, ce qui peut également arriver ...):
Vous trouverez ci-dessous les règles requises, pour chacun de ces cas (utilisez l'interface utilisateur de règles pour les importer dans votre propre site, après avoir activé les modules requis mentionnés ci-dessus). Hypothèses formulées dans ces règles:
- Ils utilisent un type de contenu avec le nom de la machine
article
(adaptez ce nom à votre propre nom de machine ou omettez cette condition de règles pour l'activer pour tout type de contenu pouvant faire l'objet d'un vote).
- La valeur d'un downvote correspond à "
-1
".
Dévoter un nœud
La règle ci-dessous soustrait -2 (octroie -2) points utilisateurs pour un downvote (à l'auteur du nœud) ... ET aussi -1 point utilisateur pour l'électeur:
{ "rules_votedown_node" : {
"LABEL" : "votedown_node",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "voting_rules", "userpoints_rules" ],
"ON" : { "voting_rules_insert_node" : [] },
"IF" : [
{ "node_is_of_type" : {
"node" : [ "node" ],
"type" : { "value" : { "article" : "article" } }
}
},
{ "voting_rules_condition_check_vote_value" : { "vote" : [ "vote" ], "value" : "-1" } }
],
"DO" : [
{ "userpoints_action_grant_points" : {
"user" : [ "node:author" ],
"points" : "-2",
"tid" : "0",
"entity" : [ "" ],
"description" : "Receive downvote to [node:type-name] \u0022[node:title]\u0022",
"operation" : "DownvoteReceived",
"reference" : "By uid=[vote:uid], for [node:type-name] to q=\u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E[node:title]\u003C\/a\u003E",
"display" : "1",
"moderate" : "default"
}
},
{ "userpoints_action_grant_points" : {
"user" : [ "vote:user" ],
"points" : "-1",
"tid" : "0",
"entity" : [ "" ],
"description" : "Issue downvote to [node:type-name] \u0022[node:title]\u0022",
"operation" : "DownvoteIssued",
"reference" : "From uid=[node:author:uid], for [node:type-name] to q=\u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E[node:title]\u003C\/a\u003E",
"display" : "1",
"moderate" : "default"
}
}
]
}
}
Annuler le downvote d'un noeud
La règle ci-dessous accordera +2 (= supprimer -2) points utilisateurs pour un downvote annulé (à l'auteur du nœud) ... ET également +1 point utilisateur pour l'électeur:
{ "rules_votedown_node_cancel" : {
"LABEL" : "votedown_node_cancel",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules", "voting_rules", "userpoints_rules" ],
"ON" : { "voting_rules_delete_node" : [] },
"IF" : [
{ "node_is_of_type" : {
"node" : [ "node" ],
"type" : { "value" : { "article" : "article" } }
}
},
{ "voting_rules_condition_check_vote_value" : { "vote" : [ "vote" ], "value" : "-1" } }
],
"DO" : [
{ "userpoints_action_grant_points" : {
"user" : [ "node:author" ],
"points" : "2",
"tid" : "0",
"entity" : [ "" ],
"description" : "Cancel downvote to [node:type-name] \u0022[node:title]\u0022",
"operation" : "DownvoteCancelled",
"reference" : "By uid=[vote:uid], for [node:type-name] to q=\u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E[node:title]\u003C\/a\u003E",
"display" : "1",
"moderate" : "default"
}
},
{ "userpoints_action_grant_points" : {
"user" : [ "vote:user" ],
"points" : "1",
"tid" : "0",
"entity" : [ "" ],
"description" : "Withdraw downvote to [node:type-name] \u0022[node:title]\u0022",
"operation" : "DownvoteWithdrawn",
"reference" : "From uid=[node:author:uid], for [node:type-name] to q=\u003Ca href=\u0022\/node\/[node:nid]\u0022\u003E[node:title]\u003C\/a\u003E",
"display" : "1",
"moderate" : "default"
}
}
]
}
}
Même si elle ne peut pas être évident de simplement parcourir les règles ci - dessus exportées, notez le description
, operation
et reference
utilisé dans chacune des transactions aux points de l' utilisateur.
En utilisant de telles règles, la configuration du montant à facturer pour les votes positifs et / ou négatifs consiste simplement à adapter les valeurs des points utilisateur à accorder (ou à supprimer) à l'aide de l'interface utilisateur des règles.
Notez également le description
, operation
et reference
utilisé dans chacune des transactions de points d'utilisateur. Cela améliorera également les rapports typiques de points utilisateurs (via les divers détails ajoutés dans les transactions réelles de points utilisateurs).
À l'aide du module Règles conditionnelles, vous pouvez également consolider ces règles dans une seule règle (ce qui simplifie leur maintenance).
Devoirs : adaptez les règles ci-dessus pour implémenter quelque chose de similaire aux primes sur SE (= transférer une certaine quantité de points utilisateur d'un utilisateur à un autre).
PS: " si vous votez contre, vous obtenez des points de réputation " (sur SE) n'est vrai que pour les réponses, pas pour les questions. Pour affiner cela comme vous le souhaiteriez, il suffit d'ajouter une condition de règles supplémentaire appropriée (par exemple, basée sur un type de contenu).