You are here

function opigno_quiz_app_course_is_started in Opigno Quiz App 7

Helper function to know if a course is started or not by a user.

File

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

Code

function opigno_quiz_app_course_is_started($node_nid, $uid = null) {
  if ($uid === null) {
    global $user;
    $uid = $user->uid;
  }
  $last_viewed_lesson_in_course = opigno_quiz_app_course_get_last_viewed($node_nid, $uid);

  // If the user has not viewed any quiz yet, say "not started"
  if (!$last_viewed_lesson_in_course) {
    return false;
  }
  $last_viewed_lesson_in_course_result = $last_viewed_lesson_in_course['result_id'];
  $last_viewed_lesson_in_course = $last_viewed_lesson_in_course['quiz_nid'];

  // If the user has not finished the latest lesson, say "course started"
  if (!opigno_quiz_app_user_finished_quiz_result($last_viewed_lesson_in_course, $last_viewed_lesson_in_course_result, $uid)) {
    return true;
  }

  // If the user has finished the latest lesson he was in, try to find the next one.
  $lessons = opigno_quiz_app_course_lessons($node_nid);
  if (isset($lessons[$node_nid])) {
    $current_position = array_search($last_viewed_lesson_in_course, array_keys($lessons[$node_nid]));

    // If the lesson he just finished was the last one, return "not started (finished)"
    if ($current_position == count($lessons[$node_nid]) - 1) {
      return false;
    }
    else {
      return true;
    }
  }
  return false;
}