Für D7 empfehle ich eine Kombination dieser alternativen und häufig verwendeten Module, um Benutzerpunkte zu subtrahieren (oder hinzuzufügen), wenn ein Knoten abgewählt wird (oder eine solche Abwertung erneut entfernt wird, was ebenfalls passieren kann ...):
Nachfolgend finden Sie die erforderlichen Regeln für jeden dieser Fälle (verwenden Sie die Benutzeroberfläche für Regeln, um sie in Ihre eigene Site zu importieren, nachdem Sie die oben genannten erforderlichen Module aktiviert haben). In diesen Regeln getroffene Annahmen:
- Sie verwenden einen Inhaltstyp mit Computernamen
article
(passen Sie diesen Namen an Ihren eigenen Computernamen an oder lassen Sie diese Regelbedingung weg, um jeden Inhaltstyp zu aktivieren, über den abgestimmt werden kann).
- Der Wert einer Abwertung stimmt mit "
-1
" überein .
Stimmen Sie einen Knoten ab
Die folgende Regel subtrahiert -2 (Grant -2) Benutzerpunkte für eine Abwertung (an den Autor des Knotens) ... UND auch -1 Benutzerpunkt für den Wähler:
{ "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"
}
}
]
}
}
Brechen Sie die Abwertung eines Knotens ab
Die folgende Regel gewährt +2 (= -2 entfernen) Benutzerpunkte für eine stornierte Abwertung (an den Autor des Knotens) ... UND auch +1 Benutzerpunkt für den Wähler:
{ "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"
}
}
]
}
}
Auch wenn es nicht aus nur gerade die exportierten oben genannten Regeln zu beachten , die offensichtlich sind description
, operation
und reference
verwendet in jedem der Benutzer - Point - Transaktionen.
Unter Verwendung solcher Regeln ist die Konfiguration der Gebühren für Upvotes und / oder Downvotes nur eine Frage der Anpassung der Werte der Benutzerpunkte, die über die Benutzeroberfläche für Regeln gewährt (oder entfernt) werden sollen.
Beachten Sie auch die description
, operation
und reference
in jedem der Benutzerpunkte Transaktionen verwendet. Dadurch werden auch die typischen User Points-Berichte verbessert (über die verschiedenen Details, die in den tatsächlichen User Points-Transaktionen hinzugefügt wurden).
Mit dem Modul Bedingte Regeln können Sie diese Regeln auch in einer einzigen Regel konsolidieren (was die Verwaltung vereinfacht).
Hausaufgaben : Passen Sie die oben gezeigten Regeln an, um etwas zu implementieren, das Kopfgeldern auf SE ähnelt (= übertragen Sie eine bestimmte Anzahl von Benutzerpunkten von einem Benutzer auf einen anderen).
PS: " Wenn Sie etwas ablehnen, erhalten Sie angedockte Reputationspunkte " (auf SE) gilt nur für Antworten, nicht für Fragen. Um dies so zu verfeinern, wie Sie es möchten, müssen Sie lediglich eine geeignete zusätzliche Regelbedingung hinzufügen (z. B. basierend auf einem Inhaltstyp).