function get_unit_name() { if (!isset($this->details->unit_id) || $this->details->unit_id == '') { return __('General', 'cp'); } else { $unit_obj = new Unit($this->details->unit_id); $unit = $unit_obj->get_unit(); return $unit->post_title; } }
public static function get_unit_availability_status($unit_id) { $unit_details = false; $unit = new Unit((int) $unit_id); $unit_details = $unit->get_unit(); $unit_available_date = get_post_meta($unit_id, 'unit_availability', true); /* Not filtering date format as it could cause conflicts. Only filter date on display. */ $current_date = date('Y-m-d', current_time('timestamp', 0)); /* Check if previous has conditions */ $previous_unit_id = self::get_previous_unit_from_the_same_course($unit->course_id, $unit_id); $force_current_unit_completion = !empty($previous_unit_id) ? get_post_meta($previous_unit_id, 'force_current_unit_completion', true) : ''; $force_current_unit_successful_completion = !empty($previous_unit_id) ? get_post_meta($previous_unit_id, 'force_current_unit_successful_completion', true) : ''; $available = true; $student_id = get_current_user_id(); $mandatory_done = Student_Completion::is_mandatory_complete($student_id, $unit->course_id, $previous_unit_id); $unit_completed = Student_Completion::is_unit_complete($student_id, $unit->course_id, $previous_unit_id); $unit->status['mandatory_required']['enabled'] = !empty($force_current_unit_completion) && 'on' == $force_current_unit_completion; $unit->status['mandatory_required']['result'] = $mandatory_done; $unit->status['completion_required']['enabled'] = !empty($force_current_unit_successful_completion) && 'on' == $force_current_unit_successful_completion; $unit->status['completion_required']['result'] = $unit_completed; $available = $unit->status['mandatory_required']['enabled'] ? $unit->status['mandatory_required']['result'] : $available; $available = $unit->status['completion_required']['enabled'] ? $unit->status['completion_required']['result'] : $available; $unit->status['date_restriction']['result'] = $current_date >= $unit_available_date; if (!$unit->status['date_restriction']['result'] || !$available) { $available = false; } else { $available = true; } /** * Perform action if unit is available. * * @since 1.2.2 * */ do_action('coursepress_unit_availble', $available, $unit_id); /** * Return filtered value. * * Can be used by other plugins to filter unit availability. * * @since 1.2.2 * */ $available = apply_filters('coursepress_filter_unit_availability', $available, $unit_id); $status = $unit->status; $status['available'] = $available; return $status; }
global $coursepress, $wpdb; $page = $_GET['page']; $s = isset($_GET['s']) ? $_GET['s'] : ''; /* * **************************GENERATING REPORT******************************** */ if (isset($_POST['units']) && isset($_POST['users'])) { $course_id = (int) $_POST['course_id']; $course = new Course($course_id); $course_units = $course->get_units(); $course_details = $course->get_course(); $units_filter = $_POST['units']; $assessable_answers = 0; if (is_numeric($units_filter)) { $course_units = array(); $unit = new Unit($units_filter); $course_units[0] = $unit->get_unit(); } $report_title = $course_details->post_title; if (isset($_POST['classes'])) { $report_classes = $_POST['classes']; if ($report_classes == '') { $report_classes = __('Default Class', 'cp'); } else { $report_classes .= __(' Class', 'cp'); } } else { $report_classes = __('All Classes', 'cp'); } $report_title = $report_title .= ' | ' . $report_classes; ob_end_clean(); ob_start();
?> " /> <input type="hidden" name="unit_page_num" id="unit_page_num" value="1" /> <input type="hidden" name="unit_pagination" class="unit_pagination" value="<?php echo $unit_pagination; ?> " /> <input type="hidden" name="action" value="update_unit" /> <input type="hidden" name="active_element" id="active_element" value="<?php echo isset($_GET['active_element']) ? (int) $_GET['active_element'] : 1; ?> " /> <?php $unit = new Unit($unit_id); $unit_object = $unit->get_unit(); $unit_id = isset($unit_object->ID) && $unit_object->ID !== '' ? $unit_object->ID : ''; $can_publish = CoursePress_Capabilities::can_change_course_unit_status($course_id, $unit_id); $data_nonce = wp_create_nonce('toggle-' . $unit_id); ?> <div class='section static'> <div class='unit-detail-settings'> <h3><i class="fa fa-cog"></i> <?php _e('Unit Settings', 'cp'); ?> <div class="unit-state"> <?php $control_position = 'off'; if ($unit_id > 0 && $unit_object && 'publish' == $unit_object->post_status) { $control_position = 'on';
public static function refresh_module_completion($unit_id, $module_id, $module_type, $meta) { $unit_object = new Unit($unit_id); $unit = $unit_object->get_unit(); $course_id = $unit->post_parent; $students = Course::get_course_students_ids($course_id); foreach ($students as $idx => $student_id) { // Did the student answer it? $response = call_user_func($module_type . '::get_response', $student_id, $module_id, 'inherit', -1, true); // Yes if (!empty($response)) { if ('yes' == $meta['mandatory_answer']) { self::record_mandatory_answer($student_id, $course_id, $unit_id, $module_id); //cp_write_log( 'Record mandatory answer: Module: ' . $module_id ); } if ('yes' == $meta['gradable_answer']) { foreach ($response as $answer) { $result = Unit_Module::get_response_grade($answer); if (0 < $result['grade']) { self::record_gradable_result($student_id, $course_id, $unit_id, $module_id, $result['grade']); } //cp_write_log( 'Record gradable result: Module: ' . $module_id . ' Result: ' . $result['grade'] ); } } } // End responses } }