Per D7, consiglio di optare per una combinazione di questi moduli alternativi e spesso utilizzati per sottrarre (o aggiungere) punti utente quando un nodo viene votato verso il basso (o tale downvote viene rimosso di nuovo, cosa che può accadere anche ...):
Di seguito sono riportate le regole richieste, per ciascuno di questi casi (utilizzare l'interfaccia utente delle regole per importarle nel proprio sito, dopo aver abilitato i moduli richiesti sopra menzionati). Ipotesi fatte in queste regole:
- Usano un tipo di contenuto con il nome della macchina
article
(adattare questo nome per adattarlo al proprio nome della macchina o omettere quella Condizione delle regole per abilitare qualsiasi tipo di contenuto su cui è possibile votare).
- Il valore di un downvote corrisponde a "
-1
".
Downvote di un nodo
La regola seguente sottraerà -2 (concedi -2) punti utente per un downvote (all'autore del nodo) ... E anche -1 punti utente per l'elettore:
{ "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"
}
}
]
}
}
Annulla il downvote di un nodo
La regola seguente garantirà +2 (= rimuovi -2) punti utente per un downvote annullato (all'autore del nodo) ... E anche +1 punto utente per l'elettore:
{ "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"
}
}
]
}
}
Anche se può non essere evidente da solo la navigazione delle regole esportate sopra, notare la description
, operation
e reference
usato in ciascuna delle operazioni punto di utilizzo.
Utilizzando tali regole, la configurazione di quanto addebitare per i voti positivi e / o negativi è solo una questione di adattamento dei valori dei punti utente da concedere (o rimuovere) utilizzando l'interfaccia utente delle regole.
Da notare anche la description
, operation
e reference
utilizzato in ciascuna delle transazioni Punti Utente. Ciò migliorerà anche i tipici rapporti dei punti utente (tramite i vari dettagli aggiunti nelle transazioni dei punti utente effettivi).
Utilizzando il modulo Regole condizionali , è possibile consolidare anche queste regole in un'unica regola (che semplifica la loro manutenzione).
Compiti a casa : adatta le regole mostrate sopra per implementare qualcosa di simile ai doni su SE (= trasferisci una quantità di punti utente da un utente a un altro).
PS: " se voti qualcosa in basso ottieni punti reputazione ancorati " (su SE) è vero solo per le risposte, non per le domande. Per perfezionare ciò che vorresti fosse, è solo una questione di aggiungere un'opportuna Condizione aggiuntiva alle Regole (ad es. Basata su un tipo di contenuto).