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); } } } }
private static function _create_input_module_meta($unit_id) { $modules = Unit_Module::get_modules($unit_id); foreach ($modules as $mod) { $module_id = $mod->ID; $module_type = get_post_meta($module_id, 'module_type', true); $module_type = !empty($module_type) ? is_array($module_type) ? $module_type[0] : $module_type : false; if ($module_type) { $input_module_types = Unit_Module::get_input_module_types(); if (in_array($module_type, $input_module_types)) { $mandatory_answer = get_post_meta($module_id, 'mandatory_answer', true); $gradable_answer = get_post_meta($module_id, 'gradable_answer', true); $minimum_grade_required = get_post_meta($module_id, 'minimum_grade_required', true); $limit_attempts = get_post_meta($module_id, 'limit_attempts', true); $limit_attempts_value = get_post_meta($module_id, 'limit_attempts_value', true); $module_meta = array('mandatory_answer' => !empty($mandatory_answer) ? is_array($mandatory_answer) ? $mandatory_answer[0] : $mandatory_answer : array(), 'gradable_answer' => !empty($gradable_answer) ? is_array($gradable_answer) ? $gradable_answer[0] : $gradable_answer : array(), 'minimum_grade_required' => !empty($minimum_grade_required) ? is_array($minimum_grade_required) ? $minimum_grade_required[0] : $minimum_grade_required : false, 'limit_attempts' => !empty($limit_attempts) ? is_array($limit_attempts) ? $limit_attempts[0] : $limit_attempts : false, 'limit_attempts_value' => !empty($limit_attempts_value) ? is_array($limit_attempts_value) ? $limit_attempts_value[0] : $limit_attempts_value : false); self::update_input_module_meta($unit_id, $module_id, $module_meta); } } } }