web-dev-qa-db-ja.com

レートモジュールを使用してコンテンツを評価するときに、ユーザーにポイントを取得させる方法は?

Rate モジュールを使用して、訪問者がコンテンツを評価できるようにしています。レートモジュールに提供された投票に基づいて、コンテンツの作成者がポイントを取得する必要があります。

作者がポイントを獲得できるようにするモジュールはたくさんありますが、 Rate モジュールでうまく機能するモジュールを探しています。

1
chefnelone

投票ルール モジュールを試してみてください。 voting_apiで動作し、レートモジュールもvoting_apiを使用するため、問題が解決するはずです。残念ながら、あまりよくメンテナンスされていないモジュールなので、少なくともこれ patch が必要です。しかし、パッチなしで試すことができます。それが機能しない場合は、そのパッチが原因ではありません。

0
Gabor Szanto

ユーザーポイント モジュールを試すことができます。

このモジュールは、ユーザーがサイトで特定のアクションを実行するためのポイントを獲得または失うためのAPIを提供します。

1
niksmac

Rate モジュールによって提供された投票に基づいて(ユーザー)ポイントを付与するには、これらの頻繁に使用されるモジュールの組み合わせを使用して、一部のノードが投票されたときにユーザーポイントを加算(または減算)する必要があります)::

これは、 Answers モジュールで使用されるアプローチでもあります(開示:私はその共同メンテナーです)。つまり、サブモジュール「Answers Userpoints」内で、これも Rate を使用します。 =モジュール)。同意する場合は、以下をお読みください...(上記のモジュールが配置されている場合は、4つのカスタムルールのみが必要であり、カスタムコーディングは必要ありません)。

必要なルール

投票のすべてのバリエーションを処理するには、次の4つのケースをカバーする4つのルール(のみ!)が必要です。

  • ノードは賛成です。
  • ノードの賛成票はキャンセルされます(=もはや賛成票はありません)。
  • ノードは反対票を投じられます。
  • ノードの反対票はキャンセルされます(=反対票はなくなりました)。

以下は、これらの各ケースに必要なルールです(上記の必要なモジュールを有効にした後、ルールUIを使用して独自のサイトにインポートします)。これらのルールは、マシン名answers_questionのコンテンツタイプを使用します(この名前を自分のマシン名に合わせて調整してください)。

ユーザーポイントがどのように加算(または減算)されるか、また誰がそれらのポイントを獲得(または失う)するかをよく見てください。明らかに、ユーザーポイントの実際の量は、自分のニーズに合わせてこれらのルールに適合させることができます(注:ダウン投票に対してダウン投票者に「請求」したくない場合は、ユーザーvote:userに関連するルールアクションを単に無視してください。 )。

ノードに賛成する

以下のルールは、(ノードの作成者に)賛成票に対して+5ユーザーポイントを付与します。

{ "rules_voteup_question" : {
    "LABEL" : "voteup_question",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "answers" ],
    "REQUIRES" : [ "rules", "voting_rules", "userpoints_rules" ],
    "ON" : { "voting_rules_insert_node" : [] },
    "IF" : [
      { "node_is_of_type" : {
          "node" : [ "node" ],
          "type" : { "value" : { "answers_question" : "answers_question" } }
        }
      },
      { "voting_rules_condition_check_vote_value" : { "vote" : [ "vote" ], "value" : "1" } }
    ],
    "DO" : [
      { "userpoints_action_grant_points" : {
          "user" : [ "node:author" ],
          "points" : "5",
          "tid" : "0",
          "entity" : [ "" ],
          "description" : "Receive upvote to [node:type-name] \u0022[node:title]\u0022",
          "operation" : "QuestionUpvoteReceived",
          "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"
        }
      }
    ]
  }
}

ノードの賛成をキャンセルする

以下のルールは、キャンセルされた賛成票に対して-5(=削除+5)ユーザーポイントを(ノードの作成者に)付与します。

{ "rules_voteup_question_cancel" : {
    "LABEL" : "voteup_question_cancel",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "answers" ],
    "REQUIRES" : [ "rules", "voting_rules", "userpoints_rules" ],
    "ON" : { "voting_rules_delete_node" : [] },
    "IF" : [
      { "node_is_of_type" : {
          "node" : [ "node" ],
          "type" : { "value" : { "answers_question" : "answers_question" } }
        }
      },
      { "voting_rules_condition_check_vote_value" : { "vote" : [ "vote" ], "value" : "1" } }
    ],
    "DO" : [
      { "userpoints_action_grant_points" : {
          "user" : [ "node:author" ],
          "points" : "-5",
          "tid" : "0",
          "entity" : [ "" ],
          "description" : "Unupvote [node:type-name] \u0022[node:title]\u0022",
          "operation" : "QuestionUpvoteCancelled",
          "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"
        }
      }
    ]
  }
}

ノードに反対票を投じる

以下のルールは、(ノードの作成者への)反対票の-2(付与-2)ユーザーポイントを減算します...[〜#〜]および[〜#〜]また、投票者の-1ユーザーポイント:

{ "rules_votedown_question" : {
    "LABEL" : "votedown_question",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "answers" ],
    "REQUIRES" : [ "rules", "voting_rules", "userpoints_rules" ],
    "ON" : { "voting_rules_insert_node" : [] },
    "IF" : [
      { "node_is_of_type" : {
          "node" : [ "node" ],
          "type" : { "value" : { "answers_question" : "answers_question" } }
        }
      },
      { "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" : "QuestionDownvoteReceived",
          "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" : "QuestionDownvoteIssued",
          "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"
        }
      }
    ]
  }
}

ノードの反対票をキャンセルする

以下のルールは、キャンセルされた反対票に対して+2(=削除-2)ユーザーポイントを(ノードの作成者に)付与します...[〜#〜]および[〜#〜] 投票者のユーザーポイントも+1:

{ "rules_votedown_question_cancel" : {
    "LABEL" : "votedown_question_cancel",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "answers" ],
    "REQUIRES" : [ "rules", "voting_rules", "userpoints_rules" ],
    "ON" : { "voting_rules_delete_node" : [] },
    "IF" : [
      { "node_is_of_type" : {
          "node" : [ "node" ],
          "type" : { "value" : { "answers_question" : "answers_question" } }
        }
      },
      { "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" : "QuestionDownvoteCancelled",
          "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" : "QuestionDownvoteWithdrawn",
          "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"
        }
      }
    ]
  }
}
0
Pierre.Vriens