diff --git a/mod/lti/backup/moodle1/lib.php b/mod/lti/backup/moodle1/lib.php new file mode 100644 index 00000000000..97f16558b9e --- /dev/null +++ b/mod/lti/backup/moodle1/lib.php @@ -0,0 +1,115 @@ +get_cminfo($instanceid); + $this->moduleid = $cminfo['id']; + $contextid = $this->converter->get_contextid(CONTEXT_MODULE, $this->moduleid); + + // get a fresh new file manager for this instance + $this->fileman = $this->converter->get_file_manager($contextid, 'mod_lti'); + + // convert course files embedded into the intro + $this->fileman->filearea = 'intro'; + $this->fileman->itemid = 0; + $data['intro'] = moodle1_converter::migrate_referenced_files($data['intro'], $this->fileman); + + // start writing assignment.xml + $this->open_xml_writer("activities/lti_{$this->moduleid}/lti.xml"); + $this->xmlwriter->begin_tag('activity', array('id' => $instanceid, 'moduleid' => $this->moduleid, + 'modulename' => 'lti', 'contextid' => $contextid)); + $this->xmlwriter->begin_tag('lti', array('id' => $instanceid)); + + $ignore_fields = array('id', 'modtype'); + if (!$DB->record_exists('lti_types', array('id' => $data['typeid']))) { + $ntypeid = $DB->get_field('lti_types_config', + 'typeid', + array('name' => 'toolurl', 'value' => $data['toolurl']), + IGNORE_MULTIPLE); + if ($ntypeid === false) { + $ntypeid = $DB->get_field('lti_types_config', + 'typeid', + array(), + IGNORE_MULTIPLE); + + } + if ($ntypeid === false) { + $ntypeid = 0; + } + $data['typeid'] = $ntypeid; + } + if (empty($data['servicesalt'])) { + $data['servicesalt'] = uniqid('', true); + } + foreach ($data as $field => $value) { + if (!in_array($field, $ignore_fields)) { + $this->xmlwriter->full_tag($field, $value); + } + } + + return $data; + } + + /** + * This is executed when we reach the closing tag of our 'lti' path + */ + public function on_basiclti_end() { + // finish writing basiclti.xml + $this->xmlwriter->end_tag('lti'); + $this->xmlwriter->end_tag('activity'); + $this->close_xml_writer(); + + // write inforef.xml + $this->open_xml_writer("activities/lti_{$this->moduleid}/inforef.xml"); + $this->xmlwriter->begin_tag('inforef'); + $this->xmlwriter->begin_tag('fileref'); + foreach ($this->fileman->get_fileids() as $fileid) { + $this->write_xml('file', array('id' => $fileid)); + } + $this->xmlwriter->end_tag('fileref'); + $this->xmlwriter->end_tag('inforef'); + $this->close_xml_writer(); + } + +} +