diff --git a/public/mod/scorm/backup/moodle1/lib.php b/public/mod/scorm/backup/moodle1/lib.php index 77bbda628dd..2ca53df0224 100644 --- a/public/mod/scorm/backup/moodle1/lib.php +++ b/public/mod/scorm/backup/moodle1/lib.php @@ -129,6 +129,9 @@ class moodle1_mod_scorm_handler extends moodle1_mod_handler { $this->fileman->itemid = 0; $this->fileman->migrate_file('course_files/'.$data['reference']); + // Fix reference (the file area doesn't allow directories), so it can be extracted upon completion. + $data['reference'] = basename($data['reference']); + // start writing scorm.xml $this->open_xml_writer("activities/scorm_{$this->moduleid}/scorm.xml"); $this->xmlwriter->begin_tag('activity', array('id' => $instanceid, 'moduleid' => $this->moduleid, diff --git a/public/mod/scorm/backup/moodle2/restore_scorm_stepslib.php b/public/mod/scorm/backup/moodle2/restore_scorm_stepslib.php index 77c55cd6d34..208387af65b 100644 --- a/public/mod/scorm/backup/moodle2/restore_scorm_stepslib.php +++ b/public/mod/scorm/backup/moodle2/restore_scorm_stepslib.php @@ -189,7 +189,9 @@ class restore_scorm_activity_structure_step extends restore_activity_structure_s } protected function after_execute() { - global $DB; + global $DB, $CFG; + + require_once("{$CFG->dirroot}/mod/scorm/locallib.php"); // Add scorm related files, no need to match by itemname (just internally handled context) $this->add_related_files('mod_scorm', 'intro', null); @@ -223,5 +225,8 @@ class restore_scorm_activity_structure_step extends restore_activity_structure_s if (!empty($scorm->launch)) { $DB->update_record('scorm', $scorm); } + + // Finish setting up restored SCORM, extracting content, etc. + scorm_parse($scorm, false); } }