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>
Fri, 8 Feb 2013 10:45:24 +0000 (11:45 +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 and a
debugging for the developer is displayed.

backup/converter/moodle1/lib.php

index d91e2f2..8f7ec30 100644 (file)
@@ -1279,6 +1279,12 @@ class moodle1_file_manager implements loggable {
      */
     public function migrate_directory($rootpath, $relpath='/') {
 
+        // Check the trailing slash in the $rootpath
+        if (substr($rootpath, -1) === '/') {
+            debugging('moodle1_file_manager::migrate_directory() expects $rootpath without the trailing slash', DEBUG_DEVELOPER);
+            $rootpath = substr($rootpath, 0, strlen($rootpath) - 1);
+        }
+
         if (!file_exists($this->basepath.'/'.$rootpath.$relpath)) {
             return array();
         }