function wplms_evaluate_course() { $course_id = intval($_POST['id']); $user_id = intval($_POST['user']); if (!isset($_POST['security']) || !wp_verify_nonce($_POST['security'], $course_id)) { echo '<p>' . __('Security check failed !', 'vibe') . '</p>'; die; } if (!isset($user_id) || !$user_id || !is_numeric($user_id)) { echo '<p>' . __(' Incorrect User selected.', 'vibe') . '</p>'; die; } echo '<h4>' . sprintf(_x('%s submission by %s', 'Course submission by User in course - admin - submissions', 'vibe'), get_the_title($course_id), bp_core_get_user_displayname($user_id)) . '</h4>'; $sum = $max_sum = 0; $curriculum = bp_course_get_curriculum($course_id); echo '<ul class="course_curriculum">'; foreach ($curriculum as $c) { if (is_numeric($c)) { if (get_post_type($c) == 'quiz') { $status = get_user_meta($user_id, $c, true); $marks = get_post_meta($c, $user_id, true); $sum += intval($marks); $qmax = bp_course_get_quiz_questions($c, $user_id); $max = array_sum($qmax['marks']); $max_sum += $max; echo '<li> <strong>' . get_the_title($c) . ' <span>' . (isset($status) && $status != '' ? __('MARKS: ', 'vibe') . $marks . __(' out of ', 'vibe') . $max : __(' PENDING', 'vibe')) . '</span></strong> </li>'; } else { $status = get_user_meta($user_id, $c, true); echo '<li> <strong>' . get_the_title($c) . ' <span>' . (isset($status) && $status != '' ? '<i class="icon-check"></i> ' . __('DONE', 'vibe') : '<i class="icon-alarm-1"></i>' . __(' PENDING', 'vibe')) . '</span></strong> </li>'; } } else { } } do_action('wplms_course_manual_evaluation', $course_id, $user_id); echo '</ul>'; echo '<div id="total_marks">' . __('Total', 'vibe') . ' <strong><span>' . apply_filters('wplms_course_student_marks', $sum, $course_id, $user_id) . '</span> / ' . apply_filters('wplms_course_maximum_marks', $max_sum, $course_id, $user_id) . '</strong> </div>'; echo '<div id="course_marks">' . __('Course Percentage (Out of 100)', 'vibe') . ' <strong><span><input type="number" name="course_marks" id="course_marks_field" class="form_field" value="0" placegolder="' . __('Course Percentage out of 100', 'vibe') . '" /></span></div>'; echo '<a href="#" id="course_complete" class="button full" data-course="' . $course_id . '" data-user="******">' . __('Mark Course Complete', 'vibe') . '</a>'; wp_nonce_field($course_id, 'security'); die; }
function section_wise_drip($value, $pre_unit_id, $course_id, $unit_id) { $curriculum = bp_course_get_curriculum($course_id); $user_id = get_current_user_id(); $drip_duration = get_post_meta($course_id, 'vibe_course_drip_duration', true); if (is_array($curriculum)) { $key = array_search($unit_id, $curriculum); if (!isset($key) || !$key) { return $value; } //GET Previous Two Sections $i = $key; while ($i >= 0) { if (!is_numeric($curriculum[$i])) { if (!isset($k2)) { $k2 = $i; } else { if (!isset($k1)) { $k1 = $i; } } } $i--; } //First section incomplete if (!isset($k2) || !isset($k1) || !$k2 || $k1 == $k2 || $k2 < $k1) { return 0; } //Get first unit in previous section for ($i = $k1; $i <= $k2; $i++) { if (is_numeric($curriculum[$i]) && get_post_type($curriculum[$i]) == 'unit') { break; } } if ($i == $k2) { return 0; // section drip feed disabled if a section has all quizzes } $start_section_timestamp = get_post_meta($curriculum[$i], $user_id, true); $drip_duration_parameter = apply_filters('vibe_drip_duration_parameter', 86400); $value = $start_section_timestamp + $drip_duration * $drip_duration_parameter; } return $value; }
function bp_course_get_full_course_curriculum($course_id = NULL) { $curriculum = array(); global $post; if (empty($course_id) && $post->post_type == 'course') { $course_id = $post->ID; } if (!isset($course_id) || !is_numeric($course_id)) { return $curriculum; } $course_items = bp_course_get_curriculum($course_id); foreach ($course_items as $key => $item) { if (is_numeric($item)) { $type = get_post_type($item); $labels = ''; if ($type == 'unit') { $free_access = get_post_meta($item, 'vibe_free', true); $labels = vibe_validate($free_access) ? '<span class="free">' . __('FREE', 'vibe') . '</span>' : ''; } $duration = get_post_meta($item, 'vibe_duration', true); $duration_parameter = apply_filters("vibe_{$type_duration_parameter}", 60); $duration = '<span class="time"><i class="fa fa-clock-o"></i> ' . gmdate("H:i:s", $duration * $duration_parameter) . '</span>'; //apply_filters('wplms_curriculum_time_filter',//,$duration,$item); $curriculum_course_link = apply_filters('wplms_curriculum_course_link', 0); $curriculum[] = array('id' => $item, 'key' => $key, 'type' => $type, 'icon' => $type == 'unit' ? get_post_meta($item, 'vibe_type', true) : 'task', 'labels' => apply_filters('bp_course_curriculum_item_labels', $labels, $item, $type), 'title' => get_the_title($item), 'link' => vibe_validate($free) || $post->post_author == get_current_user_id() || current_user_can('manage_options') || $curriculum_course_link ? get_permalink($item) . '?id=' . $course_id : '', 'duration' => $duration, 'extras' => apply_filters('course_curriculum_extras', 0, $item)); } else { $curriculum[] = array('type' => 'section', 'key' => $key, 'title' => $item); } } return apply_filters('bp_course_get_full_course_curriculum', $curriculum, $course_id); }
function bp_course_get_curriculum_quizes($course_id = NULL) { $quizes = array(); if (!isset($course_id) || !is_numeric($course_id)) { return $quizes; } $course_curriculum = bp_course_get_curriculum($course_id); if (isset($course_curriculum) && is_array($course_curriculum)) { foreach ($course_curriculum as $key => $curriculum) { if (is_numeric($curriculum) && get_post_type($curriculum) == 'quiz') { $quizes[] = $curriculum; } } } return $quizes; }
function bp_course_instructor_controls() { global $bp, $wpdb; $user_id = $bp->loggedin_user->id; $course_id = get_the_ID(); $curriculum = bp_course_get_curriculum($course_id); $course_quizes = array(); if (empty($curriculum)) { foreach ($curriculum as $c) { if (is_numeric($c)) { if (get_post_type($c) == 'quiz') { $course_quizes[] = $c; } } } } echo '<ul class="instructor_action_buttons">'; $course_query = $wpdb->get_results($wpdb->prepare("SELECT COUNT(meta_key) as num FROM {$wpdb->postmeta} WHERE post_id = %d AND meta_value = %d", $course_id, 2)); $num = 0; if (isset($course_query) && $course_query != '') { $num = $course_query[0]->num; } else { $num = 0; } echo '<li><a href="' . get_permalink($course_id) . '/?action=admin&submissions" class="action_icon tip" title="' . __('Evaluate course submissions', 'vibe') . '"><i class="icon-task"></i><span>' . $num . '</span></a></li>'; if (isset($course_quizes) && !empty($course_quizes) && is_array($course_quizes) && count($course_quizes)) { if (is_array($course_quizes)) { $course_quizes = join(',', $course_quizes); } $num = $wpdb->get_var($wpdb->prepare("SELECT COUNT(meta_key) FROM {$wpdb->postmeta} WHERE post_id IN ({$course_quizes}) AND meta_key REGEXP '^[0-9]+\$' AND meta_value = %d", 0)); if (!is_numeric($num)) { $num = 0; } echo '<li><a href="' . get_permalink($course_id) . '/?action=admin&submissions" class="action_icon tip" title="' . __('Evaluate Quiz submissions', 'vibe') . '"><i class="icon-check-clipboard-1"></i><span>' . $num . '</span></a></li>'; } $n = get_post_meta($course_id, 'vibe_students', true); if (isset($n) && $n != '') { $num = $n; } else { $num = 0; } echo '<li><a href="' . get_permalink($course_id) . '/?action=admin&members" class="action_icon tip" title="' . __('Manage Students', 'vibe') . '"><i class="icon-users"></i><span>' . $num . '</span></a></li>'; echo '<li><a href="' . get_permalink($course_id) . '/?action=admin&stats" class="action_icon tip" title="' . __('See Stats', 'vibe') . '"><i class="icon-analytics-chart-graph"></i></a></li>'; echo '<li><a href="' . get_permalink($course_id) . '/?action=admin&activity" class="action_icon tip" title="' . __('See all Activity', 'vibe') . '"><i class="icon-atom"></i></a></li>'; echo '</ul>'; }