You are here

function opigno_statistics_app_handle_new_quiz_score in Opigno Statistics App 7

Handle new quiz score coming from quiz hooks

Parameters

$quiz:

$score:

2 calls to opigno_statistics_app_handle_new_quiz_score()
opigno_statistics_app_quiz_finished in ./opigno_statistics_app.module
Implements hook_quiz_finished().
opigno_statistics_app_quiz_scored in ./opigno_statistics_app.module
Implements hook_quiz_scored().

File

./opigno_statistics_app.module, line 391
Module file. Defines module hooks.

Code

function opigno_statistics_app_handle_new_quiz_score($quiz, $score) {
  global $user;
  $user_groups = og_get_groups_by_user($user, 'node');
  foreach ($quiz->og_group_ref[LANGUAGE_NONE] as $course_nid_array) {
    $course_nid = $course_nid_array['target_id'];

    // If the user is not part of the course, don't save his stats for this course
    if (!in_array($course_nid, $user_groups)) {
      break;
    }
    $course = node_load($course_nid);
    $passed = $score['percentage_score'] >= $quiz->pass_rate ? OPIGNO_STATISTICS_APP_STATUS_PASSED : OPIGNO_STATISTICS_APP_STATUS_NOT_PASSED;
    $required = opigno_statistics_app_is_lesson_required_in_course($quiz, $course);
    opigno_statistics_app_insert_user_course_if_not_exist($course_nid);
    $user_course_id = opigno_statistics_app_query_user_course_find_id_by_uid_and_course_nid($user->uid, $course_nid);
    opigno_statistics_app_query_user_course_details_insert_or_update_best_score($user_course_id, $quiz->type, $quiz->nid, $quiz->title, $score['percentage_score'], $passed, $required);
    opigno_statistics_app_query_user_course_update_score($user_course_id);
  }
}