MDL-19142 assignment/backup&restore: support backing up and restoring third party subtypes if they need it.

Merged from MOODLE_19_STABLE
This commit is contained in:
mjollnir_
2009-08-13 09:38:04 +00:00
parent e57c283df5
commit 3b804d2d09
3 changed files with 89 additions and 3 deletions
+13 -1
View File
@@ -105,10 +105,17 @@
backup_putid($restore->backup_unique_code,$mod->modtype,
$mod->id, $newid);
// load up the subtype and see if it wants anything further restored.
$class = 'assignment_' . $assignment->assignmenttype;
require_once($CFG->dirroot . '/mod/assignment/lib.php');
require_once($CFG->dirroot . '/mod/assignment/type/' . $assignment->assignmenttype . '/assignment.class.php');
call_user_func(array($class, 'restore_one_mod'), $info, $restore, $assignment);
//Now check if want to restore user data and do it.
if (restore_userdata_selected($restore,'assignment',$mod->id)) {
//Restore assignmet_submissions
$status = assignment_submissions_restore_mods($mod->id, $newid,$info,$restore) && $status;
$status = assignment_submissions_restore_mods($mod->id, $newid,$info,$restore, $assignment) && $status;
}
} else {
$status = false;
@@ -121,7 +128,7 @@
}
//This function restores the assignment_submissions
function assignment_submissions_restore_mods($old_assignment_id, $new_assignment_id,$info,$restore) {
function assignment_submissions_restore_mods($old_assignment_id, $new_assignment_id,$info,$restore, $assignment) {
global $CFG, $DB;
$status = true;
@@ -198,6 +205,11 @@
$status = assignment_restore_files ($old_assignment_id, $new_assignment_id,
$olduserid, $submission->userid, $restore);
$submission->id = $newid;
$class = 'assignment_' . $assignment->assignmenttype;
require_once($CFG->dirroot . '/mod/assignment/lib.php');
require_once($CFG->dirroot . '/mod/assignment/type/' . $assignment->assignmenttype . '/assignment.class.php');
call_user_func(array($class, 'restore_one_submission'), $info, $restore, $assignment, $submission);
} else {
$status = false;
}