Пример #1
0
 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;
 }
Пример #2
0
 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;
 }
Пример #3
0
 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);
 }
Пример #4
0
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;
}
Пример #5
0
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>';
}