예제 #1
0
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";
    }
}
예제 #2
0
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";
    }
}
예제 #3
0
파일: grades.php 프로젝트: alvarpoon/anbig
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";
    }
}
예제 #4
0
파일: exam.php 프로젝트: alvarpoon/anbig
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";
    }
}