web-dev-qa-db-ja.com

検証用のクイズスコアの計算

クイズモジュールは使用していません。 WebformとDrupal 7.を使用しています。

合格した場合、ユーザーに新しいロールを割り当てるクイズを作成しました。現在、私は検証ルールを使用して、間違った答えが検証されるのを単に防止しています。ユーザーが先に進む前に、すべての質問に正しく回答する必要があります。

80%以上のスコアを持つユーザーが次のクイズに進むことができるように、これを変更する必要があります。クイズモジュールでそれができることを知っています。ただし、80%から100%のスコアを獲得したユーザーにのみ、見逃された質問の正解を表示できるようにする必要もあります。 80%未満のスコアでは、回答キーが表示されない場合があります。

これについて最善の方法は何ですか?

3
beth

クイズを無効にし、Webformのみを使用してこの問題を解決し、以下を実行するカスタムモジュールを作成します。

  • hook_form_alterを使用してWebフォームの送信をキャッチする
  • それらを回答キーのフィールドと比較します
    • 回答キーのコンテンツタイプは「回答キー」です
    • ウェブフォームを参照するノード参照フィールドがあります
  • 一致するパーセントを計算する
  • スコアに応じてメッセージを表示します
    • 80%<x <100%の場合、ディスプレイの回答
    • 80%<xの場合、クイズに合格したことを返します
    • 80%> xの場合、失敗したことを伝え、テストを再受験するためにクイズページにリダイレクトします。
2
beth

参考までに、formbuilderモジュールと連動するwebformクイズモジュールを作成しました。これにより、ユーザーがこのクイズを完了するために渡す必要があるパーセンテージを入力し、各フォームコンポーネントに正しい答えを入力できます。 http://drupal.org/sandbox/acouch/1817016

2
acouch