diff --git a/mod/assignment/backup/moodle1/lib.php b/mod/assignment/backup/moodle1/lib.php new file mode 100644 index 00000000000..db0d77ccb9a --- /dev/null +++ b/mod/assignment/backup/moodle1/lib.php @@ -0,0 +1,107 @@ +. + +/** + * Provides support for the conversion of moodle1 backup to the moodle2 format + * Based off of a template @ http://docs.moodle.org/en/Development:Backup_1.9_conversion_for_developers + * + * @package mod + * @subpackage assignment + * @copyright 2011 Aparup Banerjee + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +/** + * Assignment conversion handler + */ +class moodle1_mod_assignment_handler extends moodle1_mod_handler { + + /** + * Declare the paths in moodle.xml we are able to convert + * + * The method returns list of {@link convert_path} instances. + * For each path returned, the corresponding conversion method must be + * defined. + * + * Note that the path /MOODLE_BACKUP/COURSE/MODULES/MOD/ASSIGNMENT does not + * actually exist in the file. The last element with the module name was + * appended by the moodle1_converter class. + * + * @return array of {@link convert_path} instances + */ + public function get_paths() { + return array( + new convert_path( + 'assignment', '/MOODLE_BACKUP/COURSE/MODULES/MOD/ASSIGNMENT', + array( + 'renamefields' => array( + 'description' => 'intro', + 'format' => 'introformat', + ) + ) + ) + //@todo process user data + //new convert_path('assignment_submission', '/MOODLE_BACKUP/COURSE/MODULES/MOD/ASSIGNMENT/SUBMISSIONS/SUBMISSION') + ); + } + + /** + * This is executed every time we have one /MOODLE_BACKUP/COURSE/MODULES/MOD/ASSIGNMENT + * data available + */ + public function process_assignment($data) { + // get the course module id and context id + $instanceid = $data['id']; + $moduleid = $this->get_moduleid($instanceid); + $contextid = $this->converter->get_contextid(CONTEXT_MODULE, $moduleid); + + // we now have all information needed to start writing into the file + $this->open_xml_writer("activities/assignment_{$moduleid}/assignment.xml"); + $this->xmlwriter->begin_tag('activity', array('id' => $instanceid, 'moduleid' => $moduleid, + 'modulename' => 'assignment', 'contextid' => $contextid)); + $this->xmlwriter->begin_tag('assignment', array('id' => $instanceid)); + + unset($data['id']); // we already write it as attribute, do not repeat it as child element + foreach ($data as $field => $value) { + $this->xmlwriter->full_tag($field, $value); + } + + $this->xmlwriter->begin_tag('submissions'); + } + + /** + * This is executed every time we have one /MOODLE_BACKUP/COURSE/MODULES/MOD/ASSIGNMENT/SUBMISSIONS/SUBMISSION + * data available + */ + public function process_assignment_submission($data) { + //@todo process user data + //$this->write_xml('submission', $data, array('/submission/id')); + } + + /** + * This is executed when we reach the closing tag of our 'assignment' path + */ + public function on_assignment_end() { + + $this->xmlwriter->end_tag('submissions'); + $this->xmlwriter->end_tag('assignment'); + $this->xmlwriter->end_tag('activity'); + $this->close_xml_writer(); + } +}