public static function refresh_unit_completion($unit_id) { $modules = Unit_Module::get_modules($unit_id, 0, true); $input_modules = Unit_Module::get_input_module_types(); if (!empty($modules)) { // Traverse modules foreach ($modules as $module_id) { $module_type = Unit_Module::get_module_type($module_id); $module_is_input = in_array($module_type, $input_modules); // Only for input modules if ($module_is_input) { $module_meta = Unit_Module::get_module_meta($module_id); self::refresh_module_completion($unit_id, $module_id, $module_type, $module_meta); } } } }
function init_gradable_modules_passed($student_id = 0) { foreach ($this->units as $unit) { $unit->gradable_passed = array(); foreach ($unit->gradable_module_ids as $key => $mod_id) { $module = $unit->modules[$mod_id]; $module = new $module->module_type($module->ID); $class_name = Unit_Module::get_module_type($module->ID); $response = call_user_func($class_name . '::get_response', $student_id, $unit->modules[$mod_id]->ID); $minimum_grade = get_post_meta($unit->modules[$mod_id]->ID, 'minimum_grade_required', true); $grade = false; $success = false; if (!empty($response)) { $grade = Unit_Module::get_response_grade($response->ID); $success = $grade['grade'] >= $minimum_grade ? true : false; if ($success) { do_action('coursepress_set_gradable_question_passed', $this->student_id, $this->id, $unit->ID, $mod_id); } } $unit->gradable_passed[$key] = $success; } } }
function coursepress_unit_pages($unit_id, $unit_pagination = false) { if ($unit_pagination) { $args = array('post_type' => 'module', 'post_status' => 'publish', 'posts_per_page' => 1, 'post_parent' => $unit_id, 'meta_key' => 'module_page', 'orderby' => 'meta_value_num', 'order' => 'DESC'); $modules = get_posts($args); $module_id = isset($modules[0]) ? $modules[0]->ID : 0; if ($module_id > 0) { $pages_num = count(get_post_meta($unit_id, 'page_title', true)); //$pages_num = get_post_meta( $module_id, 'module_page', true ); } else { $pages_num = 1; } } else { $pages_num = 1; $modules = Unit_Module::get_modules($unit_id); foreach ($modules as $mod) { if (Unit_Module::get_module_type($mod->ID) == 'page_break_module') { $pages_num++; } } } return $pages_num; }