You are here

function opigno_quiz_app_get_course_progression in Opigno Quiz App 7

Helper function to get the course progression in percent

3 calls to opigno_quiz_app_get_course_progression()
opigno_quiz_app_field_course_class_progress::render in views/opigno_quiz_app_field_course_class_progress.inc
Render the field.
opigno_quiz_app_get_class_progression in ./opigno_quiz_app.module
Helper function to get the class progression in percent
opigno_quiz_app_get_course_class_progression in ./opigno_quiz_app.module
Helper function to get the course or class progression in percent

File

./opigno_quiz_app.module, line 2189
Module file. Defines module hooks.

Code

function opigno_quiz_app_get_course_progression($course_nid, $uid = null) {
  if ($uid === null) {
    global $user;
    $uid = $user->uid;
  }

  // Get all the lessons from this course and get all the best scores for this course
  $course = node_load($course_nid);
  $quizzes_nids = opigno_quiz_app_get_course_quizzes($course);
  $scores = quiz_get_score_data($quizzes_nids, $uid);

  // For each lessons, check if the user has tried it.
  $passed_lessons = 0;
  $total_lessons = count($quizzes_nids);
  foreach ($scores as $score) {

    // If tried and success, give 1 (total + 1)
    if ($score->percent_score >= $score->percent_pass) {
      $passed_lessons++;
    }
  }

  // Do percentage (nb success / total)
  if ($total_lessons == 0) {
    return 100;
  }
  else {
    return round($passed_lessons * 100 / $total_lessons);
  }
}