Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
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...
commit 4d9b4e97823f32f1ee00cb6f375a75334a263b87 1 parent f51fdc9
@pauln pauln authored stronk7 committed
Showing with 46 additions and 0 deletions.
  1. +46 −0 blocks/html/backup/moodle1/lib.php
View
46 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();
+ }
+}
Please sign in to comment.
Something went wrong with that request. Please try again.