|
Moodle
2.2.1
http://www.collinsharper.com
|
00001 <?php 00002 // This file is part of Moodle - http://moodle.org/ 00003 // 00004 // Moodle is free software: you can redistribute it and/or modify 00005 // it under the terms of the GNU General Public License as published by 00006 // the Free Software Foundation, either version 3 of the License, or 00007 // (at your option) any later version. 00008 // 00009 // Moodle is distributed in the hope that it will be useful, 00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 // GNU General Public License for more details. 00013 // 00014 // You should have received a copy of the GNU General Public License 00015 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 00016 00025 defined('MOODLE_INTERNAL') || die(); 00026 00027 require_once($CFG->dirroot . '/mod/quiz/backup/moodle2/restore_quiz_stepslib.php'); 00028 // Because it exists (must) 00029 00030 00038 class restore_quiz_activity_task extends restore_activity_task { 00039 00043 protected function define_my_settings() { 00044 // No particular settings for this activity 00045 } 00046 00050 protected function define_my_steps() { 00051 // quiz only has one structure step 00052 $this->add_step(new restore_quiz_activity_structure_step('quiz_structure', 'quiz.xml')); 00053 } 00054 00059 public static function define_decode_contents() { 00060 $contents = array(); 00061 00062 $contents[] = new restore_decode_content('quiz', array('intro'), 'quiz'); 00063 $contents[] = new restore_decode_content('quiz_feedback', 00064 array('feedbacktext'), 'quiz_feedback'); 00065 00066 return $contents; 00067 } 00068 00073 public static function define_decode_rules() { 00074 $rules = array(); 00075 00076 $rules[] = new restore_decode_rule('QUIZVIEWBYID', 00077 '/mod/quiz/view.php?id=$1', 'course_module'); 00078 $rules[] = new restore_decode_rule('QUIZVIEWBYQ', 00079 '/mod/quiz/view.php?q=$1', 'quiz'); 00080 $rules[] = new restore_decode_rule('QUIZINDEX', 00081 '/mod/quiz/index.php?id=$1', 'course'); 00082 00083 return $rules; 00084 00085 } 00086 00093 public static function define_restore_log_rules() { 00094 $rules = array(); 00095 00096 $rules[] = new restore_log_rule('quiz', 'add', 00097 'view.php?id={course_module}', '{quiz}'); 00098 $rules[] = new restore_log_rule('quiz', 'update', 00099 'view.php?id={course_module}', '{quiz}'); 00100 $rules[] = new restore_log_rule('quiz', 'view', 00101 'view.php?id={course_module}', '{quiz}'); 00102 $rules[] = new restore_log_rule('quiz', 'preview', 00103 'view.php?id={course_module}', '{quiz}'); 00104 $rules[] = new restore_log_rule('quiz', 'report', 00105 'report.php?id={course_module}', '{quiz}'); 00106 $rules[] = new restore_log_rule('quiz', 'editquestions', 00107 'view.php?id={course_module}', '{quiz}'); 00108 $rules[] = new restore_log_rule('quiz', 'delete attempt', 00109 'report.php?id={course_module}', '[oldattempt]'); 00110 $rules[] = new restore_log_rule('quiz', 'edit override', 00111 'overrideedit.php?id={quiz_override}', '{quiz}'); 00112 $rules[] = new restore_log_rule('quiz', 'delete override', 00113 'overrides.php.php?cmid={course_module}', '{quiz}'); 00114 $rules[] = new restore_log_rule('quiz', 'addcategory', 00115 'view.php?id={course_module}', '{question_category}'); 00116 $rules[] = new restore_log_rule('quiz', 'view summary', 00117 'summary.php?attempt={quiz_attempt_id}', '{quiz}'); 00118 $rules[] = new restore_log_rule('quiz', 'manualgrade', 00119 'comment.php?attempt={quiz_attempt_id}&question={question}', '{quiz}'); 00120 $rules[] = new restore_log_rule('quiz', 'manualgrading', 00121 'report.php?mode=grading&q={quiz}', '{quiz}'); 00122 // All the ones calling to review.php have two rules to handle both old and new urls 00123 // in any case they are always converted to new urls on restore 00124 // TODO: In Moodle 2.x (x >= 5) kill the old rules 00125 // Note we are using the 'quiz_attempt_id' mapping because that is the 00126 // one containing the quiz_attempt->ids old an new for quiz-attempt 00127 $rules[] = new restore_log_rule('quiz', 'attempt', 00128 'review.php?id={course_module}&attempt={quiz_attempt}', '{quiz}', 00129 null, null, 'review.php?attempt={quiz_attempt}'); 00130 // old an new for quiz-submit 00131 $rules[] = new restore_log_rule('quiz', 'submit', 00132 'review.php?id={course_module}&attempt={quiz_attempt_id}', '{quiz}', 00133 null, null, 'review.php?attempt={quiz_attempt_id}'); 00134 $rules[] = new restore_log_rule('quiz', 'submit', 00135 'review.php?attempt={quiz_attempt_id}', '{quiz}'); 00136 // old an new for quiz-review 00137 $rules[] = new restore_log_rule('quiz', 'review', 00138 'review.php?id={course_module}&attempt={quiz_attempt_id}', '{quiz}', 00139 null, null, 'review.php?attempt={quiz_attempt_id}'); 00140 $rules[] = new restore_log_rule('quiz', 'review', 00141 'review.php?attempt={quiz_attempt_id}', '{quiz}'); 00142 // old an new for quiz-start attemp 00143 $rules[] = new restore_log_rule('quiz', 'start attempt', 00144 'review.php?id={course_module}&attempt={quiz_attempt_id}', '{quiz}', 00145 null, null, 'review.php?attempt={quiz_attempt_id}'); 00146 $rules[] = new restore_log_rule('quiz', 'start attempt', 00147 'review.php?attempt={quiz_attempt_id}', '{quiz}'); 00148 // old an new for quiz-close attemp 00149 $rules[] = new restore_log_rule('quiz', 'close attempt', 00150 'review.php?id={course_module}&attempt={quiz_attempt_id}', '{quiz}', 00151 null, null, 'review.php?attempt={quiz_attempt_id}'); 00152 $rules[] = new restore_log_rule('quiz', 'close attempt', 00153 'review.php?attempt={quiz_attempt_id}', '{quiz}'); 00154 // old an new for quiz-continue attempt 00155 $rules[] = new restore_log_rule('quiz', 'continue attempt', 00156 'review.php?id={course_module}&attempt={quiz_attempt_id}', '{quiz}', 00157 null, null, 'review.php?attempt={quiz_attempt_id}'); 00158 $rules[] = new restore_log_rule('quiz', 'continue attempt', 00159 'review.php?attempt={quiz_attempt_id}', '{quiz}'); 00160 // old an new for quiz-continue attemp 00161 $rules[] = new restore_log_rule('quiz', 'continue attemp', 00162 'review.php?id={course_module}&attempt={quiz_attempt_id}', '{quiz}', 00163 null, 'continue attempt', 'review.php?attempt={quiz_attempt_id}'); 00164 $rules[] = new restore_log_rule('quiz', 'continue attemp', 00165 'review.php?attempt={quiz_attempt_id}', '{quiz}', 00166 null, 'continue attempt'); 00167 00168 return $rules; 00169 } 00170 00181 public static function define_restore_log_rules_for_course() { 00182 $rules = array(); 00183 00184 $rules[] = new restore_log_rule('quiz', 'view all', 'index.php?id={course}', null); 00185 00186 return $rules; 00187 } 00188 }