/**
  * ファイルをリストア
  */
 protected function restoreFiles()
 {
     $this->excludeUnnecessaryDuplications();
     // サイトファイル
     SharingCart_FileSystem::copy($this->getTempDir() . '/site_files', $GLOBALS['CFG']->dataroot . '/' . SITEID, SharingCart_FileSystem::RECURSIVE);
     // コースファイル
     SharingCart_FileSystem::copy($this->getTempDir() . '/course_files', $GLOBALS['CFG']->dataroot . '/' . $this->course->id, SharingCart_FileSystem::RECURSIVE);
 }
 protected function encodeLinksAndBackupTargets_clbk($m)
 {
     $prefix = $m[1];
     $course_id = $m[2];
     $file_path = $m[3];
     $suffix = $m[4];
     if ($course_id == '') {
         // $@FILEPHP@$
         $course_id = $this->course->id;
     }
     $source_path = $GLOBALS['CFG']->dataroot . '/' . $course_id . '/' . $file_path;
     if ($course_id == SITEID) {
         // サイトファイル
         SharingCart_FileSystem::copy($source_path, $this->getTempDir() . '/site_files/' . $file_path, SharingCart_FileSystem::OVERWRITE);
         $link = parent::LINK_SITE_ESC . '/' . $file_path;
     } elseif ($course_id == $this->course->id) {
         // コースファイル (自身)
         SharingCart_FileSystem::copy($source_path, $this->getTempDir() . '/course_files/' . $file_path, SharingCart_FileSystem::OVERWRITE);
         $link = parent::LINK_FILE_ESC . '/' . $file_path;
     } else {
         // コースファイル (他)
         SharingCart_FileSystem::copy($source_path, $this->getTempDir() . '/' . parent::LINK_MISC_DIR . '/' . $course_id . '/' . $file_path, SharingCart_FileSystem::OVERWRITE);
         $link = parent::LINK_MISC_ESC . '/' . $course_id . '/' . $file_path;
     }
     return $prefix . $link . $suffix;
 }
 protected function encodeLinksAndBackupTargets_clbk($m)
 {
     list(, $prefix, $course_id, $file_path, $suffix) = $m;
     if ($course_id == '') {
         // $@FILEPHP@$
         $course_id = $this->course->id;
     }
     // Moodle によってエスケープされたスラッシュやURLエンコードを復元
     $file_path = urldecode($file_path);
     $file_path = preg_replace('@' . self::preg_quote_atmark(self::SLASH_ESC) . '@', '/', $file_path);
     $source_path = $GLOBALS['CFG']->dataroot . '/' . $course_id . '/' . $file_path;
     if ($course_id == SITEID) {
         // サイトファイル
         SharingCart_FileSystem::copy($source_path, $this->getTempDir() . '/site_files/' . $file_path, SharingCart_FileSystem::OVERWRITE);
         $link = parent::LINK_SITE_ESC . '/' . $file_path;
     } elseif ($course_id == $this->course->id) {
         // コースファイル (自身)
         SharingCart_FileSystem::copy($source_path, $this->getTempDir() . '/course_files/' . $file_path, SharingCart_FileSystem::OVERWRITE);
         $link = parent::LINK_FILE_ESC . '/' . $file_path;
     } else {
         // コースファイル (他)
         SharingCart_FileSystem::copy($source_path, $this->getTempDir() . '/' . parent::LINK_MISC_DIR . '/' . $course_id . '/' . $file_path, SharingCart_FileSystem::OVERWRITE);
         $link = parent::LINK_MISC_ESC . '/' . $course_id . '/' . $file_path;
     }
     return $prefix . $link . $suffix;
 }