Exemple #1
0
$admin_modules = array(MODULE_ID_COURSEINFO => array('title' => $langCourseInfo, 'link' => 'course_info', 'image' => 'course_info'), MODULE_ID_USERS => array('title' => $langUsers, 'link' => 'user', 'image' => 'users'), MODULE_ID_USAGE => array('title' => $langUsage, 'link' => 'usage', 'image' => 'usage'), MODULE_ID_TOOLADMIN => array('title' => $langToolManagement, 'link' => 'course_tools', 'image' => 'tooladmin'), MODULE_ID_ABUSE_REPORT => array('title' => $langAbuseReports, 'link' => 'abuse_report', 'image' => 'abuse'));
// modules which can't be enabled or disabled
$static_module_paths = array('user' => MODULE_ID_USERS, 'usage' => MODULE_ID_USAGE, 'course_info' => MODULE_ID_COURSEINFO, 'course_tools' => MODULE_ID_TOOLADMIN, 'units' => MODULE_ID_UNITS, 'weeks' => MODULE_ID_WEEKS, 'search' => MODULE_ID_SEARCH, 'contact' => MODULE_ID_CONTACT, 'comments' => MODULE_ID_COMMENTS, 'rating' => MODULE_ID_RATING, 'sharing' => MODULE_ID_SHARING, 'abuse_report' => MODULE_ID_ABUSE_REPORT, 'notes' => MODULE_ID_NOTES);
// the system admin and power users have rights to all courses
if ($is_admin or $is_power_user) {
    $is_course_admin = true;
    if (isset($course_code)) {
        $_SESSION['courses'][$course_code] = USER_TEACHER;
    }
} else {
    $is_course_admin = false;
}
$is_editor = false;
if (isset($_SESSION['courses'])) {
    if (isset($course_code)) {
        if (check_editor()) {
            // check if user is editor of course
            $is_editor = true;
        }
        if (@$_SESSION['courses'][$course_code] == USER_TEACHER or @$_SESSION['courses'][$course_code] == USER_DEPARTMENTMANAGER) {
            $is_course_admin = true;
            $is_editor = true;
        }
    }
} else {
    unset($status);
}
// Temporary student view
if (isset($_SESSION['student_view'])) {
    if (isset($course_code) and $_SESSION['student_view'] === $course_code) {
        $_SESSION['courses'][$course_code] = $courses[$course_code] = USER_STUDENT;
Exemple #2
0
        /**
         * Clone an Exercise
         */
        function duplicate() {
            global $langCopy2, $course_id;

            $clone_course_id = $_POST['clone_to_course_id'];
            if (!check_editor(null, $clone_course_id)) {
                forbidden();
            }
            $id = $this->id;
            $exercise = $this->exercise.(($clone_course_id == $course_id)? " ($langCopy2)" : '');
            $description = standard_text_escape($this->description);
            $type = $this->type;
            $startDate = $this->startDate;
            $endDate = $this->endDate;
            $tempSave = $this->tempSave;
            $timeConstraint = $this->timeConstraint;
            $attemptsAllowed = $this->attemptsAllowed;
            $random = $this->random;
            $active = $this->active;
            $public = $this->public;
            $results = $this->results;
            $score = $this->score;
            $ip_lock = $this->ip_lock;
            $password_lock = $this->password_lock;
            $assign_to_specific = $this->assign_to_specific;
            $clone_id = Database::get()->query("INSERT INTO `exercise` (course_id, title, description, type, start_date, 
                                    end_date, temp_save, time_constraint, attempts_allowed, random, active, results, score, ip_lock, password_lock, assign_to_specific) 
                                    VALUES (?d, ?s, ?s, ?d, ?t, ?t, ?d, ?d, ?d, ?d, ?d, ?d, ?d, ?s, ?s, ?d)", 
                                    $clone_course_id, $exercise, $description, $type, $startDate, $endDate, $tempSave, 
                                    $timeConstraint, $attemptsAllowed, $random, $active, $results, $score, $ip_lock, $password_lock, $assign_to_specific)->lastInsertID;
            if ($assign_to_specific) {
                Database::get()->query("INSERT INTO `exercise_to_specific` (user_id, group_id, exercise_id) 
                                        SELECT user_id, group_id, ?d FROM `exercise_to_specific`
                                        WHERE exercise_id = ?d", $clone_id, $id)->lastInsertID;                
            }
            if ($clone_course_id != $course_id) {
                // copy questions and answers to new course question pool
                Database::get()->queryFunc("SELECT question_id AS id FROM exercise_with_questions
                        WHERE exercise_id = ?d",
                    function ($question) use ($clone_id, $clone_course_id) {
                        $question_clone_id = Database::get()->query("INSERT INTO exercise_question
                            (course_id, question, description, weight, q_position, type, difficulty, category)
                            SELECT ?d, question, description, weight, q_position, type, difficulty, 0
                                FROM `exercise_question` WHERE id = ?d", $clone_course_id, $question->id)->lastInsertID;
                        Database::get()->query("INSERT INTO exercise_with_questions
                            (question_id, exercise_id) VALUES (?d, ?d)", $question_clone_id, $clone_id);
                        Database::get()->query("INSERT INTO exercise_answer
                            (question_id, answer, correct, comment, weight, r_position)
                            SELECT ?d, answer, correct, comment, weight, r_position FROM exercise_answer
                                WHERE question_id = ?d",
                            $question_clone_id, $question->id);
                    },
                    $id);
            } else {
                // add question to new exercise
                Database::get()->query("INSERT INTO `exercise_with_questions`
                        (question_id, exercise_id)
                        SELECT question_id, ?d FROM `exercise_with_questions`
                            WHERE exercise_id = ?d", $clone_id, $id);
            }
        }