ポイントを ser Points データベースに直接追加するにはどうすればよいですか?私はクイズのサイトを持っていますが、最初から何かを作成するのではなく、 ユーザーポイント モジュールを使用してクイズのスコアを保存したいと考えています。このような点について分類「クイズ」を作成しました。
すべてのクイズは、作成されたスコアを表示することで終了します(正解数に応じて0から100の間)。これを続けて、userpointデータベースに保存したいと思います。
次のコードを使用していますが、2つのエラーメッセージが表示されます。
通知:未定義の変数:ユーザー...
通知:非オブジェクトのプロパティを取得しようとしています...
私が使用しているコードは次のコードです。
$params = array (
'uid' => $user->uid,
'description' => 'Totals points from quizes',
'points' => $percentage,
'tid' =>127,
);
userpoints_userpointsapi($params);
serpoints には [〜#〜] api [〜#〜] があります。
特にuserpoints_userpointsapi()
を参照してください。このようなもの:userpoints_userpointsapi(array('uid'=>$some_user, 'points'=>9000));
Userpointsをサポートする Quiz モジュールにも興味があるかもしれません。
Quiz モジュールの 7.x-5.xバージョン を使用している場合、 Rules との統合を利用できます。この新しい Quiz リリースに付属するモジュール(これは7.x-4.xバージョンバージョンにはありませんでした)で、カスタムコードをまったく必要としません。
そのためには、次のような 配信されたルール を確認します。
{ "rules_send_results_at_the_end_of_a_quiz" : {
"LABEL" : "Send quiz results at the end of a quiz",
"PLUGIN" : "reaction rule",
"ACTIVE" : false,
"OWNER" : "rules",
"TAGS" : [ "quiz" ],
"REQUIRES" : [ "rules", "entity" ],
"ON" : { "quiz_result_update" : [] },
"IF" : [
{ "data_is" : { "data" : [ "quiz-result-unchanged:is-evaluated" ], "value" : "0" } },
{ "data_is" : { "data" : [ "quiz-result:is-evaluated" ], "value" : "1" } }
],
"DO" : [
{ "mail" : {
"to" : [ "quiz-result:uid:mail" ],
"subject" : "[site:name]: Your results for [quiz-result:nid:title]",
"message" : "[quiz-result:uid:name],\r\n\r\nYou finished the quiz [quiz-result:nid:title] on [quiz-result:time-start]\r\n\r\nYour score: [quiz-result:score]%\r\n\r\nYou can access the result here: [site:url]node\/[quiz-result:nid:nid]\/quiz-results\/[quiz-result:result-id]",
"language" : [ "" ]
}
},
{ "mail" : {
"to" : [ "quiz-result:nid:author:mail" ],
"subject" : "[site:name]: [quiz-result:uid:name]\u0027s results for [quiz-result:nid:title]",
"message" : "[quiz-result:nid:author:name],\r\n\r\n[quiz-result:uid:name] finished the quiz [quiz-result:nid:title] on [quiz-result:time-start]\r\n\r\nTheir score: [quiz-result:score]%\r\n\r\nYou can access the result here: [site:url]node\/[quiz-result:nid:nid]\/quiz\/results\/[quiz-result:result-id]\/view",
"language" : [ "" ]
}
}
]
}
}
Rules (およびそのサブモジュールであるルールUI)を有効にした後、上記のルールを複製し(ルールUIを使用)、両方のルールアクションをルールアクションに置き換えて、一定量のユーザーポイントを付与します。は[quiz-result:score]
に等しい(このトークンは上記のルールの例(ルールアクション内)にも示されていることに注意してください)。
Rules を使用してユーザーポイントを付与する方法に慣れていない場合は、「 最後に変更されたノードを変更するためにのみユーザーポイントを付与する方法は、少なくとも20日間許可する方法」を参照してください。前? "(これを実現するルールの例も含まれています)。