Userpoints Karma - Ist es möglich, User Points nur für Down Votes zu berechnen?

8

Ich verwende die Module User Points, User Karma und Vote Up / Down. Ich frage mich, ob es eine Möglichkeit gibt, es so zu konfigurieren, dass Benutzerpunkte nur abgezogen werden, wenn Sie etwas ablehnen und nicht abstimmen.

Ähnlich wie beim Reputationssystem von Stack Exchange: Wenn Sie etwas abstimmen, werden Sie nicht angedockt, aber wenn Sie etwas ablehnen, erhalten Sie angedockte Reputationspunkte.

Mit der Einstellung Reputation User Points -> Karma Points -> Voter Points Cost kann ich sie nur so konfigurieren, dass sie berechnet wird, wenn Sie überhaupt abstimmen, unabhängig von der Richtung der Abstimmung. Irgendwelche Ideen?

Nelson
quelle
Es hört sich so an, als müssten Sie es programmatisch tun. Überprüfen Sie, ob das Modul Haken aufweist.
Codium
@ Drupality: Ich bin anderer Meinung, beziehen Sie sich auf meine Antwort für Details darüber, warum ...
Pierre.Vriens

Antworten:

5

Das Hinzufügen eines Moduls zum Überschreiben der Einstellungen von User Karma ist sicherlich eine Option.

Eine andere Möglichkeit besteht darin, Regeln und Abstimmungsregeln zu verwenden, um Ihre eigenen Einstellungen zum Hinzufügen und Entfernen von Benutzerpunkten zu steuern.

Nach der Aktivierung gehen Sie zu / admin / config / workflow / rules und "Neue Regel hinzufügen". Richten Sie es so ein, dass es auf das Ereignis "Benutzer stimmt auf einem Knoten ab" reagiert.

Fügen Sie die Bedingung "Überprüfen Sie den Wert der Abstimmung" hinzu und fügen Sie bei "Weniger als 0" eine Aktion zu "Gewähren Sie einem Benutzer Punkte" hinzu, machen Sie sie jedoch zu negativen Punkten.

Hier ist ein Screenshot dieser Regel: Geben Sie hier die Bildbeschreibung ein

Wenn Sie User Karma in Verbindung verwenden möchten, können Sie stattdessen stattdessen auf das Ereignis "Benutzer hat Punkte erhalten" reagieren und auf Bedingungen testen und gegebenenfalls überschreiben.

Brent
quelle
1

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, operationund referenceverwendet 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, operationund referencein 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).

Pierre.Vriens
quelle
Bitte hören Sie auf, Antworten zu schreiben, die mit "Siehe meine Antwort auf diese andere Frage" beginnen. Wenn Ihre Antwort auf die andere Frage das Problem mit dieser Frage löst , werden die Beiträge als Duplikate voneinander geschlossen. Wenn nicht, ist die Antwort nur tangential, beantwortet die Frage nicht und muss gelöscht werden. Ich gebe Ihnen Zeit, um zu entscheiden, was Sie tun möchten, bevor Sie selbst geeignete Maßnahmen ergreifen. In jedem Fall wird diese Angewohnheit, lange Antworten auf eine Frage zu veröffentlichen und dann Antworten auf mehrere andere Fragen zu veröffentlichen, die darauf zurückführen, aufhören.
Clive
Um es klarer zu machen: Antworten, die im Wesentlichen Hinweise auf andere Antworten auf andere Fragen sind, sind nicht akzeptabel. Die Antworten müssen auf die gestellte Frage zugeschnitten sein. Wenn für zwei Fragen dieselbe Antwort gilt, besteht die Möglichkeit, dass eine Frage die andere dupliziert.
Kiamlaluno
Merci, dem gerade das Äquivalent von " DownvoteWithdrawn " vorgeführt wurde ...
Pierre.Vriens