私は ユーザーポイント モジュールを使用しています。これにより、ユーザーにポイントを付与できます。ここまでは順調ですね。
この条件/アクションを実行するルールを作成する必要があります。ユーザーポイントが付与されたら、ユーザーに10を超えるポイントがあるかどうかを確認します。その場合、このユーザーに「マスター」ロールを追加します。
ルール条件の「データ比較」を使用してみましたが、「ユーザーの合計ポイント "のような値が見つかりません。
どうすればいいですか?
あなたの質問は Rules を使用して、「...「ユーザーの合計ポイント」...」のようなものを見つけることです(そして、ルールイベントに関連しています) 「ユーザーにユーザーポイントが付与された場合」)。このルールの例(ルールエクスポート形式)を見てください。
{ "rules_grant_new_role" : {
"LABEL" : "Grant a new role",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "userpoints_rules", "rules", "rules_conditional" ],
"ON" : { "userpoints_event_points_awarded_after" : [] },
"DO" : [
{ "userpoints_rules_get_current_points" : {
"USING" : { "user" : [ "site:current-user" ], "tid" : "all" },
"PROVIDE" : { "loaded_points" : { "total_points" : "Number of points in all categories together" } }
}
},
{ "CONDITIONAL" : [
{
"IF" : { "NOT data_is" : { "data" : [ "total-points" ], "op" : "\u003C", "value" : "11" } },
"DO" : [
{ "drupal_message" : { "message" : "You have at least 11 points (actually you have [total-points:value] points ...)." } }
]
}
]
}
]
}
}
上記のルールは、最初のルールアクション(ルール条件ではありません!)として、ユーザーの現在のユーザーポイント数を取得します。量が11以上の場合は、それに関する適切なメッセージが表示されます(ケースに適合するロールを付与するルールアクションに置き換えてください)。
この例では Conditional Rules モジュールを使用していますが、Rulesアクションを変更して(適切なルール条件を追加する)ルールコンポーネントを実行して、これが不要になるようにすることもできます。追加モジュール。
このルールを機能させるための手掛かりは、最初のルールアクションです "ユーザーのユーザーポイントを読み込みます 」これは、「ユーザーの現在のユーザーポイントを確認する」ための欠落したルール条件などの代替手段(回避策?)です。