function watupro_edit_choice() { global $wpdb; // select choice $choice = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_ANSWERS . " WHERE ID=%d", $_GET['id'])); // select question $question = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_QUESTIONS . " WHERE ID=%d", $choice->question_id)); if (!empty($_POST['ok'])) { $wpdb->query($wpdb->prepare("UPDATE " . WATUPRO_ANSWERS . " SET answer=%s WHERE ID=%d", $_POST['answer'], $choice->ID)); // redirect to questions page watupro_redirect("admin.php?page=watupro_question&question=" . $question->ID . "&action=edit&quiz=" . $question->exam_id); } // select quiz $quiz = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_EXAMS . " WHERE ID=%d", $question->exam_id)); if (watupro_intel() and $quiz->is_personality_quiz) { $exam = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_EXAMS . " WHERE ID=%d", $question->exam_id)); $grades = WTPGrade::get_grades($exam); } if (@file_exists(get_stylesheet_directory() . '/watupro/edit-choice.html.php')) { require get_stylesheet_directory() . '/watupro/edit-choice.html.php'; } else { require WATUPRO_PATH . "/views/edit-choice.html.php"; } }
function watupro_user_certificates() { global $wpdb, $user_ID; $certificate = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_CERTIFICATES . " WHERE ID=%d", $_GET['id'])); // check access $multiuser_access = 'all'; if (watupro_intel()) { $multiuser_access = WatuPROIMultiUser::check_access('certificates_access'); } if ($multiuser_access == 'own') { if ($certificate->editor_id != $user_ID) { wp_die(__('You can manage only your own certificates', 'watupro')); } } if (!empty($_GET['approve'])) { $wpdb->query($wpdb->prepare("UPDATE " . WATUPRO_USER_CERTIFICATES . " SET pending_approval = 0 WHERE ID=%d", $_GET['user_certificate_id'])); // send email to user? if ($certificate->approval_notify_user) { WatuPROCertificate::approval_notify($certificate, $_GET['user_certificate_id']); } watupro_redirect("admin.php?page=watupro_user_certificates&id=" . $_GET['id']); } if (!empty($_GET['delete'])) { $wpdb->query($wpdb->prepare("DELETE FROM " . WATUPRO_USER_CERTIFICATES . " WHERE ID=%d", $_GET['user_certificate_id'])); } // select users $users = $wpdb->get_results($wpdb->prepare("SELECT tUC.ID as user_certificate_id, tU.user_nicename as user_nicename, tU.user_email as user_email, \n\ttE.name as exam_name, tUC.pending_approval as pending_approval, tT.ID as taking_id, tT.date as taking_date, tT.result as taking_result,\n\ttE.ID as exam_id\n\tFROM " . WATUPRO_USER_CERTIFICATES . " tUC \n\tJOIN {$wpdb->users} tU ON tUC.user_id = tU.ID \n\tJOIN " . WATUPRO_TAKEN_EXAMS . " tT ON tT.user_id = tU.ID AND tT.ID = tUC.taking_id\n\tJOIN " . WATUPRO_EXAMS . " tE ON tE.ID = tT.exam_id AND tE.ID = tUC.exam_id\n\tWHERE tUC.certificate_id=%d\n\tORDER BY tT.ID DESC", $certificate->ID)); $dateformat = get_option('date_format'); $is_admin = true; wp_enqueue_script('thickbox', null, array('jquery')); wp_enqueue_style('thickbox.css', '/' . WPINC . '/js/thickbox/thickbox.css', null, '1.0'); if (@file_exists(get_stylesheet_directory() . '/watupro/users-earned-certificate.html.php')) { require get_stylesheet_directory() . '/watupro/users-earned-certificate.html.php'; } else { require WATUPRO_PATH . "/views/users-earned-certificate.html.php"; } }
function watupro_grades() { global $wpdb, $user_ID; $in_default_grades = false; // check access $multiuser_access = 'all'; if (watupro_intel()) { $multiuser_access = WatuPROIMultiUser::check_access('exams_access'); } if ($multiuser_access == 'own') { // make sure this is my quiz $quiz = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_EXAMS . " WHERE ID=%d", $_GET['quiz'])); if ($quiz->editor_id != $user_ID) { wp_die(__('You can only manage the grades on your own quizzes.', 'watupro')); } } // reuse default grades? if (!empty($_POST['set_reuse_default_grades'])) { $wpdb->query($wpdb->prepare("UPDATE " . WATUPRO_EXAMS . " SET reuse_default_grades = %d WHERE ID = %d", @$_POST['reuse_default_grades'], $_GET['quiz'])); } if (!empty($_GET['copy_default_grades'])) { $exam = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_EXAMS . " WHERE ID=%d", $_GET['quiz'])); WTPGrades::copy_default($exam); watupro_redirect("admin.php?page=watupro_grades&quiz=" . $_GET['quiz']); } // change the common gradecat design if (!empty($_POST['save_design'])) { $exam = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_EXAMS . " WHERE ID=%d", $_GET['quiz'])); $advanced_settings = unserialize(stripslashes($exam->advanced_settings)); $advanced_settings['gradecat_order'] = $_POST['gradecat_order']; $wpdb->query($wpdb->prepare("UPDATE " . WATUPRO_EXAMS . " SET gradecat_design=%s, advanced_settings=%s \n\t\t\tWHERE id=%d", $_POST['gradecat_design'], serialize($advanced_settings), $_GET['quiz'])); } // select this exam $exam = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_EXAMS . " WHERE ID=%d", $_GET['quiz'])); $advanced_settings = unserialize(stripslashes($exam->advanced_settings)); // need to assign default gradecat design? if (empty($exam->gradecat_design)) { $gradecat_design = "<p>" . __('For category <strong>%%CATEGORY%%</strong> you got grade <strong>%%GTITLE%%</strong>.', 'watupro') . "</p>\n\t\t<p>%%GDESC%%</p><hr>"; $wpdb->query($wpdb->prepare("UPDATE " . WATUPRO_EXAMS . " SET gradecat_design=%s WHERE id=%d", $gradecat_design, $exam->ID)); $exam->gradecat_design = $gradecat_design; } // select question categories $cats = $wpdb->get_results("SELECT * FROM " . WATUPRO_QCATS . " WHERE name!='' ORDER BY name"); if (!empty($_POST['add'])) { $wpdb->query($wpdb->prepare("INSERT INTO " . WATUPRO_GRADES . " SET\n\t\t\texam_id=%d, gtitle=%s, gdescription=%s, gfrom=%s, gto=%s, certificate_id=%d, cat_id=%d", $exam->ID, $_POST['gtitle'], $_POST['gdescription'], $_POST['gfrom'], $_POST['gto'], @$_POST['certificate_id'], $_POST['cat_id'])); } if (!empty($_POST['del'])) { $wpdb->query($wpdb->prepare("DELETE FROM " . WATUPRO_GRADES . " WHERE ID=%d", $_POST['id'])); } if (!empty($_POST['save'])) { $wpdb->query($wpdb->prepare("UPDATE " . WATUPRO_GRADES . " SET\n\t\t\tgtitle=%s, gdescription=%s, gfrom=%s, gto=%s, certificate_id=%d\n\t\t\tWHERE ID=%d", $_POST['gtitle'], $_POST['gdescription' . $_POST['id']], $_POST['gfrom'], $_POST['gto'], @$_POST['certificate_id'], $_POST['id'])); } $cat_id = empty($_POST['cat_id']) ? 0 : $_POST['cat_id']; // select all grades of the selected category $grades = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . WATUPRO_GRADES . " WHERE exam_id=%d AND cat_id=%d", $exam->ID, $cat_id)); // for the moment certificates will be used only on non-category grades if (!$cat_id) { // select certificates if any $certificates = $wpdb->get_results("SELECT * FROM " . WATUPRO_CERTIFICATES . " ORDER BY title"); $cnt_certificates = sizeof($certificates); } if (@file_exists(get_stylesheet_directory() . '/watupro/grades.php')) { require get_stylesheet_directory() . '/watupro/grades.php'; } else { require WATUPRO_PATH . "/views/grades.php"; } }
function watupro_copy_exam() { global $wpdb, $user_ID; $multiuser_access = 'all'; if (watupro_intel()) { $multiuser_access = WatuPROIMultiUser::check_access('exams_access'); } $own_sql = $multiuser_access == 'own' ? $wpdb->prepare(" AND editor_id=%d ", $user_ID) : ""; $exam = $wpdb->get_row($wpdb->prepare("SELECT * FROM " . WATUPRO_EXAMS . " WHERE ID=%d", $_GET['id'])); $grades = $wpdb->get_results($wpdb->prepare("SELECT * FROM " . WATUPRO_GRADES . " WHERE exam_id=%d order by ID ", $exam->ID)); $questions = $wpdb->get_results($wpdb->prepare("SELECT cat_id, question, ID FROM " . WATUPRO_QUESTIONS . " WHERE exam_id=%d ORDER BY sort_order, ID", $exam->ID)); $cids = array(0); foreach ($questions as $question) { if (!in_array($question->cat_id, $cids)) { $cids[] = $question->cat_id; } } $cidsql = implode(", ", $cids); // select question categories to group questions by cats $qcats = $wpdb->get_results("SELECT * FROM " . WATUPRO_QCATS . " WHERE ID IN ({$cidsql}) ORDER BY name"); // add Uncategorized $qcats[] = (object) array("ID" => 0, "name" => __('Uncategorized', 'watupro')); $other_exams = $wpdb->get_results("SELECT * FROM " . WATUPRO_EXAMS . " WHERE ID!='" . $exam->ID . "' {$own_sql} ORDER BY name"); if (!empty($_POST['copy_exam'])) { try { $copy_to = $_POST['copy_option'] == 'new' ? 0 : $_POST['copy_to']; WTPExam::copy($exam->ID, $copy_to); $_SESSION['flash'] = __("The exam was successfully copied!", 'watupro'); watupro_redirect("admin.php?page=watupro_exams"); } catch (Exception $e) { $error = $e->getMessage(); } } if (@file_exists(get_stylesheet_directory() . '/watupro/copy-exam-form.html.php')) { require get_stylesheet_directory() . '/watupro/copy-exam-form.html.php'; } else { require WATUPRO_PATH . "/views/copy-exam-form.html.php"; } }