From c39226d9b2000fe9657ea0a7df758d6edea0a128 Mon Sep 17 00:00:00 2001 From: David Mudrak Date: Sat, 4 Jun 2011 21:03:11 +0200 Subject: [PATCH] MDL-22414 Added a helper method to migrate all files referenced from a hypertext --- backup/converter/moodle1/lib.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/backup/converter/moodle1/lib.php b/backup/converter/moodle1/lib.php index bc3247b579f..6257b60d893 100644 --- a/backup/converter/moodle1/lib.php +++ b/backup/converter/moodle1/lib.php @@ -536,9 +536,32 @@ class moodle1_converter extends base_converter { return new moodle1_file_manager($this, $contextid, $component, $filearea, $itemid, $userid); } + /** + * Migrates all course files referenced from the hypertext using the given filemanager + * + * This is typically used to convert images embedded into the intro fields. + * + * @param string $text hypertext containing $@FILEPHP@$ referenced + * @param moodle1_file_manager $fileman file manager to use for the file migration + * @return string the original $text with $@FILEPHP@$ references replaced with the new @@PLUGINFILE@@ + */ + public static function migrate_referenced_files($text, moodle1_file_manager $fileman) { + + $files = self::find_referenced_files($text); + if (!empty($files)) { + foreach ($files as $file) { + $fileman->migrate_file('course_files'.$file, dirname($file)); + } + $text = self::rewrite_filephp_usage($text, $files); + } + + return $text; + } + /** * Detects all links to file.php encoded via $@FILEPHP@$ and returns the files to migrate * + * @see self::migrate_referenced_files() * @param string $text * @return array */ @@ -569,6 +592,7 @@ class moodle1_converter extends base_converter { /** * Given the list of migrated files, rewrites references to them from $@FILEPHP@$ form to the @@PLUGINFILE@@ one * + * @see self::migrate_referenced_files() * @param string $text * @param array $files * @return string