From b391176a0b912dcc3beab3f4cb94b71d992a9e03 Mon Sep 17 00:00:00 2001 From: Aparup Banerjee Date: Fri, 20 May 2011 17:57:43 +0800 Subject: [PATCH] MDL-27445 added moodle1 backup converter for chat --- mod/chat/backup/moodle1/lib.php | 101 ++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 mod/chat/backup/moodle1/lib.php diff --git a/mod/chat/backup/moodle1/lib.php b/mod/chat/backup/moodle1/lib.php new file mode 100644 index 00000000000..74017bfb388 --- /dev/null +++ b/mod/chat/backup/moodle1/lib.php @@ -0,0 +1,101 @@ +. + +/** + * 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 chat + * @copyright 2011 Aparup Banerjee + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +defined('MOODLE_INTERNAL') || die(); + +/** + * Chat conversion handler + */ +class moodle1_mod_chat_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/CHAT 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( + 'chat', '/MOODLE_BACKUP/COURSE/MODULES/MOD/CHAT', + array( + 'newfields' => array( + 'introformat' => 0 + ) + ) + ) + ); + } + + /** + * This is executed every time we have one /MOODLE_BACKUP/COURSE/MODULES/MOD/CHAT + * data available + */ + public function process_chat($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/chat_{$moduleid}/chat.xml"); + $this->xmlwriter->begin_tag('activity', array('id' => $instanceid, 'moduleid' => $moduleid, + 'modulename' => 'chat', 'contextid' => $contextid)); + $this->xmlwriter->begin_tag('chat', 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 is executed every time we have one /MOODLE_BACKUP/COURSE/MODULES/MOD/CHAT/MESSAGES + * data available + */ + public function process_chat_messages($data) { + //@todo process user data + //$this->write_xml('message', $data, array('/message/id')); + //@todo populate chat_messages_current table? + } + + /** + * This is executed when we reach the closing tag of our 'chat' path + */ + public function on_chat_end() { + $this->xmlwriter->end_tag('chat'); + $this->xmlwriter->end_tag('activity'); + $this->close_xml_writer(); + } +}