public static function attempt_force_sessions() { // Activate Sessions by putting in a false var CoursePress_Session::session('coursepress_sessions_active', true); }
public static function _version_2_upgrade($student_id, $course_id, $data) { if (!is_user_logged_in()) { self::_update_version($student_id, $course_id, $data, 2); return; } if (!$course_id || !$student_id) { return; } //Get fresh course_progress. $data object might contain out-dated information from session. //$course_progress = get_user_option( '_course_' . $course_id . '_progress', $student_id ); $course_progress = $data; if (!empty($course_progress['unit'])) { foreach ($course_progress['unit'] as $unit_key => $unit) { if (!empty($unit['gradable_results'])) { foreach ($unit['gradable_results'] as $result_key => $results) { //Remove redundant records. Keep only the amount defined by CP_GRADABLE_RESULTS_HISTORY_LENGTH. $course_progress['unit'][$unit_key]['gradable_results'][$result_key] = array_slice($results, count($results) - CP_GRADABLE_RESULTS_HISTORY_LENGTH); } } } } $global_setting = !is_multisite(); update_user_option($student_id, '_course_' . $course_id . '_progress', $course_progress, $global_setting); $session_data[$student_id]['course_completion'][$course_id] = $course_progress; CoursePress_Session::session('coursepress_student', $session_data); // Record the new version self::_update_version($student_id, $course_id, $course_progress, 2); }
public static function get_module_completion_data($unit_id) { if (empty($unit_id)) { return false; } $session_data = CoursePress_Session::session('coursepress_unit_completion'); $in_session = isset($session_data[$unit_id]); $criteria = array(); if ($in_session && !empty($session_data[$unit_id]['all_input_ids'])) { $criteria = $session_data[$unit_id]; } else { $module_data = self::get_input_module_meta($unit_id); $mandatory_array = array(); $mandatory_gradable_array = array(); $gradable_array = array(); $min_grades = array(); $attempts_array = array(); $all_input_ids = array(); if (!empty($module_data)) { foreach ($module_data as $module_id => $module) { $all_input_ids[] = $module_id; $mandatory = isset($module['mandatory_answer']) ? $module['mandatory_answer'] == 'yes' ? true : false : false; $gradable = isset($module['gradable_answer']) ? $module['gradable_answer'] == 'yes' ? true : false : false; $limit_attempts = isset($module['limit_attempts']) ? $module['limit_attempts'] == 'yes' ? true : false : false; if ($mandatory) { $mandatory_array[] = $module_id; } if ($gradable) { $gradable_array[] = $module_id; $min_grade = isset($module['minimum_grade_required']) ? $module['minimum_grade_required'] : 0; $min_grades[$module_id] = $min_grade; } if ($gradable && $mandatory) { $mandatory_gradable_array[] = $module_id; } if (($mandatory || $gradable) && $limit_attempts) { $allowed = isset($module['limit_attempts_value']) ? $module['limit_attempts_value'] : false; $attempts_array[$module_id] = $allowed; } } } $in_session = false; $criteria = array('mandatory_modules' => $mandatory_array, 'gradable_modules' => $gradable_array, 'mandatory_gradable_modules' => $mandatory_gradable_array, 'minimum_grades' => $min_grades, 'answer_limit' => $attempts_array, 'all_input_ids' => $all_input_ids); } if (!$in_session) { //$_SESSION[ 'coursepress_unit_completion' ][ $unit_id ] = $criteria; if (!is_array($session_data)) { $session_data = array(); } $session_data[$unit_id] = $criteria; CoursePress_Session::session('coursepress_unit_completion', $session_data); } return $criteria; }