1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * @package block_html 19 * @subpackage backup-moodle2 20 * @copyright 2003 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com} 21 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 22 */ 23 24 /** 25 * Specialised restore task for the html block 26 * (requires encode_content_links in some configdata attrs) 27 * 28 * TODO: Finish phpdocs 29 */ 30 class restore_html_block_task extends restore_block_task { 31 32 protected function define_my_settings() { 33 } 34 35 protected function define_my_steps() { 36 } 37 38 public function get_fileareas() { 39 return array('content'); 40 } 41 42 public function get_configdata_encoded_attributes() { 43 return array('text'); // We need to encode some attrs in configdata 44 } 45 46 static public function define_decode_contents() { 47 48 $contents = array(); 49 50 $contents[] = new restore_html_block_decode_content('block_instances', 'configdata', 'block_instance'); 51 52 return $contents; 53 } 54 55 static public function define_decode_rules() { 56 return array(); 57 } 58 } 59 60 /** 61 * Specialised restore_decode_content provider that unserializes the configdata 62 * field, to serve the configdata->text content to the restore_decode_processor 63 * packaging it back to its serialized form after process 64 */ 65 class restore_html_block_decode_content extends restore_decode_content { 66 67 protected $configdata; // Temp storage for unserialized configdata 68 69 protected function get_iterator() { 70 global $DB; 71 72 // Build the SQL dynamically here 73 $fieldslist = 't.' . implode(', t.', $this->fields); 74 $sql = "SELECT t.id, $fieldslist 75 FROM {" . $this->tablename . "} t 76 JOIN {backup_ids_temp} b ON b.newitemid = t.id 77 WHERE b.backupid = ? 78 AND b.itemname = ? 79 AND t.blockname = 'html'"; 80 $params = array($this->restoreid, $this->mapping); 81 return ($DB->get_recordset_sql($sql, $params)); 82 } 83 84 protected function preprocess_field($field) { 85 $this->configdata = unserialize_object(base64_decode($field)); 86 return isset($this->configdata->text) ? $this->configdata->text : ''; 87 } 88 89 protected function postprocess_field($field) { 90 $this->configdata->text = $field; 91 return base64_encode(serialize($this->configdata)); 92 } 93 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body