Permalink
Browse files

Merge branch 'MDL-28618_21' of git://github.com/timhunt/moodle into M…

…OODLE_21_STABLE
  • Loading branch information...
2 parents 6f7c43c + c5fe3d7 commit 62bdb79c266d0e61b28b0829c4c4ab810becfc31 Sam Hemelryk committed Aug 8, 2011
@@ -2637,6 +2637,12 @@ protected function define_execution() {
$oldctxid, $this->task->get_userid(), 'question_answer', null, $newctxid, true);
restore_dbops::send_files_to_pool($this->get_basepath(), $this->get_restoreid(), 'question', 'hint',
$oldctxid, $this->task->get_userid(), 'question_hint', null, $newctxid, true);
+ restore_dbops::send_files_to_pool($this->get_basepath(), $this->get_restoreid(), 'question', 'correctfeedback',
+ $oldctxid, $this->task->get_userid(), 'question_created', $question->itemid, $newctxid, true);
+ restore_dbops::send_files_to_pool($this->get_basepath(), $this->get_restoreid(), 'question', 'partiallycorrectfeedback',
+ $oldctxid, $this->task->get_userid(), 'question_created', $question->itemid, $newctxid, true);
+ restore_dbops::send_files_to_pool($this->get_basepath(), $this->get_restoreid(), 'question', 'incorrectfeedback',
+ $oldctxid, $this->task->get_userid(), 'question_created', $question->itemid, $newctxid, true);
// Add qtype dependent files
$components = backup_qtype_plugin::get_components_and_fileareas($question->qtype);
foreach ($components as $component => $fileareas) {
@@ -206,6 +206,8 @@ public function move_files($questionid, $oldcontextid, $newcontextid) {
$fs->move_area_files_to_new_context($oldcontextid,
$newcontextid, 'qtype_match', 'subquestion', $subquestionid);
}
+
+ $this->move_files_in_combined_feedback($questionid, $oldcontextid, $newcontextid);
}
protected function delete_files($questionid, $contextid) {
@@ -220,11 +222,6 @@ protected function delete_files($questionid, $contextid) {
$fs->delete_area_files($contextid, 'qtype_match', 'subquestion', $subquestionid);
}
- $fs->delete_area_files($contextid, 'qtype_multichoice',
- 'correctfeedback', $questionid);
- $fs->delete_area_files($contextid, 'qtype_multichoice',
- 'partiallycorrectfeedback', $questionid);
- $fs->delete_area_files($contextid, 'qtype_multichoice',
- 'incorrectfeedback', $questionid);
+ $this->delete_files_in_combined_feedback($questionid, $contextid);
}
}
@@ -69,17 +69,4 @@ protected function define_question_plugin_structure() {
return $plugin;
}
-
- /**
- * Returns one array with filearea => mappingname elements for the qtype
- *
- * Used by {@link get_components_and_fileareas} to know about all the qtype
- * files to be processed both in backup and restore.
- */
- public static function get_qtype_fileareas() {
- return array(
- 'correctfeedback' => 'question_created',
- 'partiallycorrectfeedback' => 'question_created',
- 'incorrectfeedback' => 'question_created');
- }
}
@@ -231,30 +231,14 @@ public static function get_numbering_styles() {
}
public function move_files($questionid, $oldcontextid, $newcontextid) {
- $fs = get_file_storage();
-
parent::move_files($questionid, $oldcontextid, $newcontextid);
$this->move_files_in_answers($questionid, $oldcontextid, $newcontextid, true);
-
- $fs->move_area_files_to_new_context($oldcontextid,
- $newcontextid, 'qtype_multichoice', 'correctfeedback', $questionid);
- $fs->move_area_files_to_new_context($oldcontextid,
- $newcontextid, 'qtype_multichoice', 'partiallycorrectfeedback', $questionid);
- $fs->move_area_files_to_new_context($oldcontextid,
- $newcontextid, 'qtype_multichoice', 'incorrectfeedback', $questionid);
+ $this->move_files_in_combined_feedback($questionid, $oldcontextid, $newcontextid);
}
protected function delete_files($questionid, $contextid) {
- $fs = get_file_storage();
-
parent::delete_files($questionid, $contextid);
$this->delete_files_in_answers($questionid, $contextid, true);
-
- $fs->delete_area_files($contextid,
- 'qtype_multichoice', 'correctfeedback', $questionid);
- $fs->delete_area_files($contextid,
- 'qtype_multichoice', 'partiallycorrectfeedback', $questionid);
- $fs->delete_area_files($contextid,
- 'qtype_multichoice', 'incorrectfeedback', $questionid);
+ $this->delete_files_in_combined_feedback($questionid, $contextid);
}
}
@@ -1108,6 +1108,28 @@ protected function move_files_in_answers($questionid, $oldcontextid,
}
/**
+ * Move all the files belonging to this question's answers when the question
+ * is moved from one context to another.
+ * @param int $questionid the question being moved.
+ * @param int $oldcontextid the context it is moving from.
+ * @param int $newcontextid the context it is moving to.
+ * @param bool $answerstoo whether there is an 'answer' question area,
+ * as well as an 'answerfeedback' one. Default false.
+ */
+ protected function move_files_in_combined_feedback($questionid, $oldcontextid,
+ $newcontextid) {
+ global $DB;
+ $fs = get_file_storage();
+
+ $fs->move_area_files_to_new_context($oldcontextid,
+ $newcontextid, 'question', 'correctfeedback', $questionid);
+ $fs->move_area_files_to_new_context($oldcontextid,
+ $newcontextid, 'question', 'partiallycorrectfeedback', $questionid);
+ $fs->move_area_files_to_new_context($oldcontextid,
+ $newcontextid, 'question', 'incorrectfeedback', $questionid);
+ }
+
+ /**
* Delete all the files belonging to this question.
* @param int $questionid the question being deleted.
* @param int $contextid the context the question is in.
@@ -1139,6 +1161,25 @@ protected function delete_files_in_answers($questionid, $contextid, $answerstoo
}
}
+ /**
+ * Delete all the files belonging to this question's answers.
+ * @param int $questionid the question being deleted.
+ * @param int $contextid the context the question is in.
+ * @param bool $answerstoo whether there is an 'answer' question area,
+ * as well as an 'answerfeedback' one. Default false.
+ */
+ protected function delete_files_in_combined_feedback($questionid, $contextid) {
+ global $DB;
+ $fs = get_file_storage();
+
+ $fs->delete_area_files($contextid,
+ 'question', 'correctfeedback', $questionid);
+ $fs->delete_area_files($contextid,
+ 'question', 'partiallycorrectfeedback', $questionid);
+ $fs->delete_area_files($contextid,
+ 'question', 'incorrectfeedback', $questionid);
+ }
+
public function import_file($context, $component, $filearea, $itemid, $file) {
$fs = get_file_storage();
$record = new stdClass();

0 comments on commit 62bdb79

Please sign in to comment.