static function lesson_status($student_id, $lesson_id, $status) { global $wpdb, $user_ID; // security check $multiuser_access = 'all'; $multiuser_access = NamasteLMSMultiUser::check_access('students_access'); if ((!current_user_can('namaste_manage') or $multiuser_access == 'view') and $user_ID != $student_id) { wp_die(__("You cannot change someone else's status", 'namaste')); } // if status == -1 we have to remove the existing record if any if ($status == -1) { $wpdb->query($wpdb->prepare("DELETE FROM " . NAMASTE_STUDENT_LESSONS . " \n\t\t\t \tWHERE student_id = %d AND lesson_id = %d", $student_id, $lesson_id)); } // complete lesson - don't allow "completed" if there are unsatisfied requirements if ($status == 1) { if (!NamasteLMSLessonModel::is_ready($lesson_id, $student_id, true)) { return false; } NamasteLMSLessonModel::complete($lesson_id, $student_id); } // set as 'in progress' if ($status == 0) { // record exists? $exists = $wpdb->get_var($wpdb->prepare("SELECT id FROM " . NAMASTE_STUDENT_LESSONS . "\n\t\t\t \tWHERE student_id = %d AND lesson_id = %d", $student_id, $lesson_id)); if ($exists) { $wpdb->query($wpdb->prepare("UPDATE " . NAMASTE_STUDENT_LESSONS . " \n\t\t\t \t\t\tSET status=%d, completion_date = %s, completion_time=%s WHERE id=%d", $status, date("Y-m-d", current_time('timestamp')), current_time('mysql'), $exists)); } else { $wpdb->query($wpdb->prepare("INSERT INTO " . NAMASTE_STUDENT_LESSONS . " SET\n\t\t\t \t\t\tlesson_id = %d, student_id = %d, status = %d, completion_date = %s, completion_time=%s", $lesson_id, $student_id, $status, date("Y-m-d", current_time('timestamp')), current_time('mysql'))); } } return true; }
static function mark() { global $wpdb, $post, $user_ID; if (!is_user_logged_in()) { return ""; } // is the lesson in progress? $in_progress = $wpdb->get_var($wpdb->prepare("SELECT id FROM " . NAMASTE_STUDENT_LESSONS . " \n\t\t\tWHERE lesson_id=%d AND student_id=%d AND status!=1", $post->ID, $user_ID)); if (!$in_progress) { return ''; } // ready for completion? if (NamasteLMSLessonModel::is_ready($post->ID, $user_ID, false, true)) { // display button or mark as completed if (!empty($_POST['mark'])) { NamasteLMSLessonModel::complete($post->ID, $user_ID); return __('Lesson completed!', 'namaste'); } else { return '<form method="post" action=""> <p><input type="submit" name="mark" value="' . __('Mark as completed', 'namaste') . '"></p> </form>'; } } }
function watucas_scheck() { $uid = get_current_user_id(); if (isset($_REQUEST['lesson_id']) && is_numeric($_REQUEST['lesson_id']) && $uid && NamasteLMSLessonModel::is_ready($_REQUEST['lesson_id'], $uid, true)) { echo ' <script> jQuery(function ($) { jQuery(\'input[name="mark"]\').each(function(){ jQuery(this).removeAttr("disabled"); }); }); </script>'; } }
} break; } } } $quiz_details = $wpdb->get_row($wpdb->prepare("SELECT name,final_screen, description FROM {$wpdb->prefix}watu_master WHERE ID=%d", $exam_id)); $quiz_details->final_screen = str_replace('%%TOTAL%%', '%%MAX-POINTS%%', $quiz_details->final_screen); $replace_these = array('%%SCORE%%', '%%MAX-POINTS%%', '%%PERCENTAGE%%', '%%GRADE%%', '%%RATING%%', '%%CORRECT%%', '%%WRONG_ANSWERS%%', '%%QUIZ_NAME%%', '%%DESCRIPTION%%', '%%GRADE-TITLE%%', '%%GRADE-DESCRIPTION%%', '%%POINTS%%'); $with_these = array($achieved, $max_points, $percent, $grade, $rating, $num_correct, $num_questions - $num_correct, stripslashes($quiz_details->name), wpautop(stripslashes($quiz_details->description)), $gtitle, $gdescription, $achieved); // insert taking $uid = $user_ID ? $user_ID : 0; $wpdb->query($wpdb->prepare("INSERT INTO " . WATU_TAKINGS . " SET exam_id=%d, user_id=%d, ip=%s, date=CURDATE(),\r\n\t\tpoints=%d, grade_id=%d, result=%s, snapshot=''", $exam_id, $uid, $_SERVER['REMOTE_ADDR'], $achieved, $g_id, $grade)); $taking_id = $wpdb->insert_id; // Show the results $output = str_replace($replace_these, $with_these, wpautop(stripslashes($quiz_details->final_screen))); if (isset($_REQUEST['lesson_id']) && is_numeric($_REQUEST['lesson_id']) && $uid && NamasteLMSLessonModel::is_ready($_REQUEST['lesson_id'], $uid, true)) { $output .= '<script>alert("true");</script>'; } else { $output .= '<script>alert("false");</script>'; } $final_output = apply_filters(WATU_CONTENT_FILTER, $output); echo $final_output; $results_output = '<hr />' . apply_filters(WATU_CONTENT_FILTER, $result); if ($answer_display == 1) { echo $results_output; } $snapshot = $final_output . $results_output; // update snapshot $wpdb->query($wpdb->prepare("UPDATE " . WATU_TAKINGS . " SET snapshot=%s WHERE ID=%d", $snapshot, $taking_id)); // notify admin if (!empty($exam->notify_admin)) {
static function change_solution_status($lesson, $student_id = NULL) { global $wpdb, $user_ID; if (!current_user_can('namaste_manage')) { wp_die(__('You are not allowed to do this', 'namaste')); } $solution = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . NAMASTE_STUDENT_HOMEWORKS . " WHERE id=%d", $_POST['solution_id'])); if (!$student_id) { $student_id = $solution->student_id; } $homework = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . NAMASTE_HOMEWORKS . " WHERE id=%d", $solution->homework_id)); $multiuser_access = 'all'; $multiuser_access = NamasteLMSMultiUser::check_access('homework_access'); if ($multiuser_access == 'own' and $homework->editor_id != $user_ID) { wp_die(__('You are not allowed to see these solutions', 'namaste')); } $wpdb->query($wpdb->prepare("UPDATE " . NAMASTE_STUDENT_HOMEWORKS . " SET\n\t\t\tstatus=%s WHERE id=%d", $_POST['status'], $_POST['solution_id'])); do_action('namaste_change_solution_status', $student_id, $_POST['solution_id'], $_POST['status']); // insert in history $wpdb->query($wpdb->prepare("INSERT INTO " . NAMASTE_HISTORY . " SET\n\t\t\tuser_id=%d, date=CURDATE(), datetime=NOW(), action='solution_processed', value=%s, num_value=%d", $student_id, sprintf(__('Solution to assignment %s was %s', 'namaste'), $homework->title, $_POST['status']), $_POST['solution_id'])); // award points? if ($_POST['status'] == 'approved' and get_option('namaste_use_points_system')) { if ($homework->award_points) { NamastePoint::award($student_id, $homework->award_points, sprintf(__('Received %d points for completing assignment "%s".', 'namaste'), $homework->award_points, $homework->title, 'homework', $homework->id)); } } // maybe complete the lesson if the status is approved if ($_POST['status'] == 'approved' and NamasteLMSLessonModel::is_ready($lesson->ID, $student_id)) { NamasteLMSLessonModel::complete($lesson->ID, $student_id); } }