MDL-37774 Make moodle1_file_manager::migrate_directory() support trailing slash in...
authorDavid Mudrák <david@moodle.com>
Fri, 8 Feb 2013 10:45:24 +0000 (11:45 +0100)
committerDavid Mudrák <david@moodle.com>
Sun, 10 Feb 2013 07:59:19 +0000 (08:59 +0100)
As the $rootpath is concatenated with the $relpath, we would end with a
path like course_files//file.txt. Such a path is detected as not-valid
later and an error would be thrown.

So the patch makes sure that the trailing slash is cut off.

backup/converter/moodle1/lib.php

index 3b3fd4a..da6a4ec 100644 (file)
@@ -1274,6 +1274,11 @@ class moodle1_file_manager implements loggable {
      */
     public function migrate_directory($rootpath, $relpath='/') {
 
+        // Check the trailing slash in the $rootpath
+        if (substr($rootpath, -1) === '/') {
+            $rootpath = substr($rootpath, 0, strlen($rootpath) - 1);
+        }
+
         if (!file_exists($this->basepath.'/'.$rootpath.$relpath)) {
             return array();
         }