Merge branch 'MDL-32880_23_3' of git://github.com/pauln/moodle into MOODLE_23_STABLE
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 11 Dec 2012 21:50:08 +0000 (22:50 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 11 Dec 2012 21:50:08 +0000 (22:50 +0100)
1  2 
backup/converter/moodle1/lib.php

@@@ -254,7 -254,7 +254,7 @@@ class moodle1_converter extends base_co
              $path = '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK/' . $this->currentblock;
  
          } else if (strpos($path, '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK') === 0) {
-             $path = str_replace('/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK', '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK/' . $this->currentmod, $path);
+             $path = str_replace('/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK', '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK/' . $this->currentblock, $path);
          }
  
          if ($path !== $data['path']) {
          }
  
          if ($path === '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK') {
-             $this->currentmod = null;
+             $this->currentblock = null;
              $forbidden = true;
  
          } else if (strpos($path, '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK') === 0) {
              // expand the BLOCK paths so that they contain the module name
-             $path = str_replace('/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK', '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK/' . $this->currentmod, $path);
+             $path = str_replace('/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK', '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK/' . $this->currentblock, $path);
          }
  
          if (empty($this->pathelements[$path])) {
              $path = '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK/' . $this->currentblock;
  
          } else if (strpos($path, '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK') === 0) {
-             $path = str_replace('/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK', '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK/' . $this->currentmod, $path);
+             $path = str_replace('/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK', '/MOODLE_BACKUP/COURSE/BLOCKS/BLOCK/' . $this->currentblock, $path);
          }
  
          if (empty($this->pathelements[$path])) {
              return $files;
          }
          foreach ($matches[2] as $match) {
 -            $files[] = str_replace(array('$@FILEPHP@$', '$@SLASH@$', '$@FORCEDOWNLOAD@$'), array('', '/', ''), $match);
 +            $file = str_replace(array('$@FILEPHP@$', '$@SLASH@$', '$@FORCEDOWNLOAD@$'), array('', '/', ''), $match);
 +            $files[] = rawurldecode($file);
          }
  
          return array_unique($files);
      public static function rewrite_filephp_usage($text, array $files) {
  
          foreach ($files as $file) {
 +            // Expect URLs properly encoded by default.
 +            $parts   = explode('/', $file);
 +            $encoded = implode('/', array_map('rawurlencode', $parts));
 +            $fileref = '$@FILEPHP@$'.str_replace('/', '$@SLASH@$', $encoded);
 +            $text    = str_replace($fileref.'$@FORCEDOWNLOAD@$', '@@PLUGINFILE@@'.$encoded.'?forcedownload=1', $text);
 +            $text    = str_replace($fileref, '@@PLUGINFILE@@'.$encoded, $text);
 +            // Add support for URLs without any encoding.
              $fileref = '$@FILEPHP@$'.str_replace('/', '$@SLASH@$', $file);
 -            $text    = str_replace($fileref.'$@FORCEDOWNLOAD@$', '@@PLUGINFILE@@'.$file.'?forcedownload=1', $text);
 -            $text    = str_replace($fileref, '@@PLUGINFILE@@'.$file, $text);
 +            $text    = str_replace($fileref.'$@FORCEDOWNLOAD@$', '@@PLUGINFILE@@'.$encoded.'?forcedownload=1', $text);
 +            $text    = str_replace($fileref, '@@PLUGINFILE@@'.$encoded, $text);
          }
  
          return $text;