Permalink
Browse files

MDL-32880: Add moodle1 backup converter for html block.

This converter processes the HTML block's content, migrating any referenced files.
  • Loading branch information...
1 parent f51fdc9 commit 4d9b4e97823f32f1ee00cb6f375a75334a263b87 @pauln pauln committed with stronk7 Nov 19, 2012
Showing with 46 additions and 0 deletions.
  1. +46 −0 blocks/html/backup/moodle1/lib.php
@@ -0,0 +1,46 @@
+<?php
+
+/**
+ * Provides support for the conversion of moodle1 backup to the moodle2 format
+ *
+ * @package block_html
+ * @copyright 2012 Paul Nicholls
+ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ */
+
+defined('MOODLE_INTERNAL') || die();
+
+/**
+ * Block conversion handler for html
+ */
+class moodle1_block_html_handler extends moodle1_block_handler {
+ private $fileman = null;
+ protected function convert_configdata(array $olddata) {
+ $instanceid = $olddata['id'];
+ $contextid = $this->converter->get_contextid(CONTEXT_BLOCK, $olddata['id']);
+ $configdata = unserialize(base64_decode($olddata['configdata']));
+
+ // get a fresh new file manager for this instance
+ $this->fileman = $this->converter->get_file_manager($contextid, 'block_html');
+
+ // convert course files embedded in the block content
+ $this->fileman->filearea = 'content';
+ $this->fileman->itemid = 0;
+ $configdata->text = moodle1_converter::migrate_referenced_files($configdata->text, $this->fileman);
+ $configdata->format = FORMAT_HTML;
+
+ return base64_encode(serialize($configdata));
+ }
+
+ protected function write_inforef_xml($newdata, $data) {
+ $this->open_xml_writer("course/blocks/{$data['name']}_{$data['id']}/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();
+ }
+}

0 comments on commit 4d9b4e9

Please sign in to comment.