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;
         }
     }
 }
Ejemplo n.º 3
0
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;
}