From 4a15bb7660317de32f398c241143a732177123a5 Mon Sep 17 00:00:00 2001 From: Eloy Lafuente Date: Fri, 23 Jul 2010 17:36:38 +0000 Subject: [PATCH] MDL-23478 backup - adding support for fileareas to blocks --- backup/moodle2/backup_block_task.class.php | 5 +++++ backup/moodle2/backup_default_block_task.class.php | 4 ++++ backup/moodle2/backup_stepslib.php | 5 +++++ backup/util/dbops/restore_dbops.class.php | 2 +- blocks/html/backup/moodle2/backup_html_block_task.class.php | 4 ++++ .../backup/moodle2/backup_rss_client_block_task.class.php | 4 ++++ 6 files changed, 23 insertions(+), 1 deletion(-) diff --git a/backup/moodle2/backup_block_task.class.php b/backup/moodle2/backup_block_task.class.php index 8358a5b56fb..d520869a1f5 100644 --- a/backup/moodle2/backup_block_task.class.php +++ b/backup/moodle2/backup_block_task.class.php @@ -195,6 +195,11 @@ abstract class backup_block_task extends backup_task { */ abstract protected function define_my_steps(); + /** + * Define one array() of fileareas that each block controls + */ + abstract public function get_fileareas(); + /** * Define one array() of configdata attributes * that need to be processed by the contenttransformer diff --git a/backup/moodle2/backup_default_block_task.class.php b/backup/moodle2/backup_default_block_task.class.php index 4e99c66985c..b3f5eaeea60 100644 --- a/backup/moodle2/backup_default_block_task.class.php +++ b/backup/moodle2/backup_default_block_task.class.php @@ -38,6 +38,10 @@ class backup_default_block_task extends backup_block_task { protected function define_my_steps() { } + public function get_fileareas() { + return array(); + } + public function get_configdata_encoded_attributes() { return array(); } diff --git a/backup/moodle2/backup_stepslib.php b/backup/moodle2/backup_stepslib.php index 9ec69699e36..3248de5f966 100644 --- a/backup/moodle2/backup_stepslib.php +++ b/backup/moodle2/backup_stepslib.php @@ -1049,6 +1049,11 @@ class backup_block_instance_structure_step extends backup_structure_step { $positions->set_source_table('block_positions', array('blockinstanceid' => backup::VAR_PARENTID)); + // File anotations (for fileareas specified on each block) + foreach ($this->task->get_fileareas() as $filearea) { + $block->annotate_files('block_' . $this->task->get_blockname(), $filearea, null); + } + // Return the root element (block) return $block; } diff --git a/backup/util/dbops/restore_dbops.class.php b/backup/util/dbops/restore_dbops.class.php index 977d9a66c22..da04aeb9579 100644 --- a/backup/util/dbops/restore_dbops.class.php +++ b/backup/util/dbops/restore_dbops.class.php @@ -43,7 +43,7 @@ abstract class restore_dbops { $included = false; // blocks, based in blocks setting and parent activity/course if ($task instanceof restore_block_task) { - if (!$task->get_setting('blocks')) { // Blocks not included, continue + if (!$task->get_setting_value('blocks')) { // Blocks not included, continue continue; } $parent = basename(dirname(dirname($task->get_taskbasepath()))); diff --git a/blocks/html/backup/moodle2/backup_html_block_task.class.php b/blocks/html/backup/moodle2/backup_html_block_task.class.php index 324877e812d..8b0e15270fd 100644 --- a/blocks/html/backup/moodle2/backup_html_block_task.class.php +++ b/blocks/html/backup/moodle2/backup_html_block_task.class.php @@ -36,6 +36,10 @@ class backup_html_block_task extends backup_block_task { protected function define_my_steps() { } + public function get_fileareas() { + return array('content'); + } + public function get_configdata_encoded_attributes() { return array('text'); // We need to encode some attrs in configdata } diff --git a/blocks/rss_client/backup/moodle2/backup_rss_client_block_task.class.php b/blocks/rss_client/backup/moodle2/backup_rss_client_block_task.class.php index 660bd2d8f18..41d1dd6af31 100644 --- a/blocks/rss_client/backup/moodle2/backup_rss_client_block_task.class.php +++ b/blocks/rss_client/backup/moodle2/backup_rss_client_block_task.class.php @@ -42,6 +42,10 @@ class backup_rss_client_block_task extends backup_block_task { $this->add_step(new backup_rss_client_block_structure_step('rss_client_structure', 'rss_client.xml')); } + public function get_fileareas() { + return array(); // No associated fileareas + } + public function get_configdata_encoded_attributes() { return array(); // No special handling of configdata } -- 2.43.0