You are here

function opigno_quiz_app_course_class_passed in Opigno Quiz App 7

Helper function to check if a user passed the course or class given in parameter.

File

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

Code

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

  // If node is class, get all the courses.
  // If node is course, add it in the courses to test.
  // If node is none, return false;
  $node = node_load($nid);
  switch ($node->type) {
    case 'class':

      // If no course, return true (passed).
      if (empty($node->opigno_class_courses[LANGUAGE_NONE])) {
        return true;
      }
      $courses_nids = array_map(function ($entry) {
        return $entry['target_id'];
      }, $node->opigno_class_courses[LANGUAGE_NONE]);
      break;
    case 'course':
      $courses_nids = array(
        $nid,
      );
      break;
    default:
      return false;
  }

  // For each courses, check if it's passed. If one is not, return false.
  foreach ($courses_nids as $course_nid) {
    if (!opigno_quiz_app_user_passed($course_nid, $uid)) {
      return false;
    }
  }
  return true;
}