You are here

function opigno_quiz_app_get_class_progression in Opigno Quiz App 7

Helper function to get the class progression in percent

2 calls to opigno_quiz_app_get_class_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_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 2222
Module file. Defines module hooks.

Code

function opigno_quiz_app_get_class_progression($class_nid, $uid = null) {
  if ($uid === null) {
    global $user;
    $uid = $user->uid;
  }
  $class = node_load($class_nid);

  // If no course, the class is completed
  if (empty($class->opigno_class_courses['und'])) {
    return 100;
  }

  // Get the courses that are linked to this class.
  // For each course, get the progression
  $courses_total_progression = 0;
  $nb_courses = 0;
  foreach ($class->opigno_class_courses['und'] as $course_value_raw) {
    $course_nid = $course_value_raw['target_id'];
    $courses_total_progression += opigno_quiz_app_get_course_progression($course_nid, $uid);
    $nb_courses++;
  }

  // If no courses, return 100% completed
  // Else, do the average.
  if ($nb_courses == 0) {
    return 100;
  }
  else {
    return round($courses_total_progression / $nb_courses);
  }
}