Rate モジュールを使用して、訪問者がコンテンツを評価できるようにしています。レートモジュールに提供された投票に基づいて、コンテンツの作成者がポイントを取得する必要があります。
作者がポイントを獲得できるようにするモジュールはたくさんありますが、 Rate モジュールでうまく機能するモジュールを探しています。
ユーザーポイント モジュールを試すことができます。
このモジュールは、ユーザーがサイトで特定のアクションを実行するためのポイントを獲得または失うためのAPIを提供します。
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"
}
}
]
}
}