Para o D7, recomendo usar uma combinação desses módulos alternativos e frequentemente usados para subtrair (ou adicionar) pontos de usuário quando algum nó é votado para baixo (ou esse voto negativo é removido novamente, o que também pode acontecer ...):
Abaixo estão as regras necessárias para cada um desses casos (use a UI de regras para importá-las em seu próprio site, depois de ativar os módulos necessários mencionados acima). Suposições feitas nestas regras:
- Eles usam um tipo de conteúdo com o nome da máquina
article
(adapte esse nome ao seu próprio nome de máquina ou omita a Condição de Regras para ativar qualquer tipo de conteúdo que possa ser votado).
- O valor de um voto negativo corresponde a "
-1
".
Voto negativo em um nó
A regra abaixo subtrai -2 (concede -2) pontos de usuário para um voto negativo (para o autor do nó) ... E também -1 ponto de usuário para o eleitor:
{ "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"
}
}
]
}
}
Cancelar o voto negativo de um nó
A regra abaixo concederá +2 (= remover -2) pontos de usuário para um voto negativo cancelado (para o autor do nó) ... E também +1 ponto de usuário para o eleitor:
{ "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"
}
}
]
}
}
Mesmo que não pode ser óbvio a partir de apenas navegando as regras exportadas acima, observe o description
, operation
e reference
utilizado em cada uma das transações de pontos do usuário.
Usando essas regras, a configuração de quanto cobrar por upvotes e / ou downvotes é apenas uma questão de adaptar os valores dos pontos de usuário a serem concedidos (ou removidos) usando a UI de regras.
Observe também o description
, operation
e reference
usado em cada uma das transações de pontos do usuário. Isso também melhorará os relatórios típicos de pontos de usuário (através dos vários detalhes adicionados nas transações reais de pontos de usuário).
Usando o módulo Regras Condicionais , você também pode consolidar essas regras em uma única regra (o que simplifica a manutenção delas).
Lição de casa : adapte as regras mostradas acima para implementar algo semelhante às recompensas no SE (= transfira uma certa quantidade de pontos de usuário de um usuário para outro).
PS: " se você votar em alguma coisa, obterá pontos de reputação ancorados " (no SE) somente para respostas, não para perguntas. Refinar como você gostaria que fosse, é apenas uma questão de adicionar uma Condição de Regras extra apropriada (por exemplo, com base em um tipo de conteúdo).