ユーザーポイント モジュールを使用します。表示されるコンテンツごとに10ポイントを追加するルールを設定しました。これは簡単でした。次に、ユーザーポイントが100を超えているかどうかを確認し、100を超えている場合は、管理者にメールを送信し、そのユーザーのポイントをゼロに戻します。
Rules モジュールをダウンロードし、次のルールをインポートします。
{ "rules_reset_points" : {
"LABEL" : "Reset points",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"TAGS" : [ "Points" ],
"REQUIRES" : [ "php", "rules", "userpoints_rules" ],
"ON" : { "userpoints_event_points_awarded_after" : [] },
"IF" : [
{ "php_eval" : { "code" : "global $user;\r\n$num_pts = userpoints_get_current_points($user-\u003Euid, \u0027all\u0027);\r\nif ($num_pts \u003E 100) {return TRUE;}" } }
],
"DO" : [
{ "userpoints_rules_get_current_points" : {
"USING" : { "user" : [ "userpoints-transaction:user" ], "tid" : "all" },
"PROVIDE" : { "loaded_points" : { "loaded_points" : "Number of points in the specified category." } }
}
},
{ "data_calc" : {
"USING" : { "input_1" : [ "loaded-points" ], "op" : "*", "input_2" : "-1" },
"PROVIDE" : { "result" : { "result" : "Calculation result" } }
}
},
{ "userpoints_action_grant_points" : {
"user" : [ "userpoints-transaction:user" ],
"points" : [ "result" ],
"tid" : "0",
"entity" : [ "" ],
"description" : "Prevent more than 100 points.",
"operation" : "Add",
"display" : 0,
"moderate" : "approved"
}
}
]
}
}
アクションをニーズに適応させ、インストール後に別のアクション「メールを送信」を追加します Mime mail モジュール( この記事 がそれを行うのに役立つ場合があります)これで完了です!
ユーザーhook_userpoints($ op、$ params = array())
このフックを使用して、特定の操作を実行します。他のモジュールがユーザーを指名すると、とりわけフックが呼び出されます。
$ op = "後のポイント"
ユーザーポイントを読み取り、100を超える状態を確認する
Userpoints_userpointsapi()を使用してポイントをリセットする
100ポイントを差し引く
$ params = array( 'uid' => $ user-> uid、 'points' => -100、); userpoints_userpointsapi($ params);
hook_mail を使用して管理者にメールを送信
上記の機能は、モジュールフォルダー内のReadme.txtファイルで明確に説明されています。