0

ロールに基づくバッジを割り当てることができるように、クイズが正常に完了したときにユーザーにロールを割り当てたいと考えています。

これが私が試したことです:1.クイズモジュールで、クイズの編集でオプションを取得し、ノードの割り当てアクションを追加>コンテンツを保存2.(クイズ)NIDとユーザーUIDのコンテキストパラメーターを持つクイズ用のVBOを作成3.しようとしましたこの VBO を条件として呼び出します

問題: 1. このアクションを割り当てると、もう一度開始する必要があるというエラーがクイズに表示され、コンテンツが実際に正しく保存されていない (結果が正しく表示されない) 2. ルールから VBO を呼び出そうとすると、それは私にハンドラエラーを与えます

質問: 1. アプローチは正しいですか、それとももっと良い方法がありますか? 2. アプローチがうまくいっていれば、私が犯している明らかな間違い。

多くの検索の後、drupalサイトからこのアプローチを得ました - https://www.drupal.org/node/1149930

4

1 に答える 1

0

そのためには、クイズ フックを使用することをお勧めします。

それを読んでください:http://api.dlcdev.com/quiz/doc/html/group__quiz__public.html#ga6dce0ee8805024c0ba2058b8871f3d3b

クイズには hook_quiz_finished という名前のフックがあり、最後の質問が送信された後に起動されます。

独自のモジュールを実装し、次のように使用する必要があります。

function yourmodulename_quiz_finished($quiz, $score, $session_data) {
  //$score contains the final score of the quiz
  //$quiz is the object that contains the quiz "pass rate" that you have to compare with score
  //$session_data gives you additional information that you can use to get the uid yo assign the new role
}

それが役に立てば幸い。

よろしく。

于 2014-09-20T07:53:54.460 に答える