Пример #1
0
 /**
  *  Copy a stored file into storage
  *  
  *  @param \stored_file $file
  */
 public function copy_from(\stored_file $file)
 {
     $filerecord = (object) array('contextid' => $this->context->id, 'component' => self::COMPONENT, 'filearea' => self::FILEAREA, 'itemid' => self::ITEMID, 'filepath' => self::FILEPATH);
     $this->storage->create_file_from_storedfile($filerecord, $file);
 }
Пример #2
0
 /**
  * Replace the area files in the specified area with those in the source item id.
  *
  * @param \file_storage $fs The file storage class
  * @param int $contextid The ID of the context for the setaskment.
  * @param int $sourceitemid The itemid to copy from - typically the source grade id.
  * @param int $itemid The itemid to copy to - typically the target grade id.
  * @param string $area The file storage area.
  * @param bool $includesubdirs Whether to copy the content of sub-directories too.
  */
 public static function replace_files_from_to($fs, $contextid, $sourceitemid, $itemid, $area, $includesubdirs = false)
 {
     $component = 'setaskfeedback_editpdf';
     // Remove the existing files within this area.
     $fs->delete_area_files($contextid, $component, $area, $itemid);
     // Copy the files from the source area.
     if ($files = $fs->get_area_files($contextid, $component, $area, $sourceitemid, "filename", $includesubdirs)) {
         foreach ($files as $file) {
             $newrecord = new \stdClass();
             $newrecord->contextid = $contextid;
             $newrecord->itemid = $itemid;
             $fs->create_file_from_storedfile($newrecord, $file);
         }
     }
 }
Пример #3
0
    /**
     * Copy all the files from one file area to another.
     *
     * @param file_storage $fs - The source context id
     * @param int $fromcontextid - The source context id
     * @param string $fromcomponent - The source component
     * @param string $fromfilearea - The source filearea
     * @param int $fromitemid - The source item id
     * @param int $tocontextid - The destination context id
     * @param string $tocomponent - The destination component
     * @param string $tofilearea - The destination filearea
     * @param int $toitemid - The destination item id
     * @return boolean
     */
    private function copy_area_files(file_storage $fs,
                                     $fromcontextid,
                                     $fromcomponent,
                                     $fromfilearea,
                                     $fromitemid,
                                     $tocontextid,
                                     $tocomponent,
                                     $tofilearea,
                                     $toitemid) {

        $newfilerecord = new stdClass();
        $newfilerecord->contextid = $tocontextid;
        $newfilerecord->component = $tocomponent;
        $newfilerecord->filearea = $tofilearea;
        $newfilerecord->itemid = $toitemid;

        if ($files = $fs->get_area_files($fromcontextid, $fromcomponent, $fromfilearea, $fromitemid)) {
            foreach ($files as $file) {
                if ($file->is_directory() and $file->get_filepath() === '/') {
                    // We need a way to mark the age of each draft area.
                    // By not copying the root dir we force it to be created
                    // automatically with current timestamp.
                    continue;
                }
                $newfile = $fs->create_file_from_storedfile($newfilerecord, $file);
            }
        }
        return true;
    }