MDL-15777 more fixes for portfolio to use file api
[moodle.git] / portfolio / type / download / lib.php
1 <?php
3 require_once($CFG->libdir . '/portfoliolib.php');
4 require_once($CFG->libdir . '/packer/zip_packer.php');
6 class portfolio_plugin_download extends portfolio_plugin_pull_base {
8     protected $file;
9     protected $exportconfig;
11     public static function allows_multiple() {
12         return false;
13     }
15     public function expected_time($callertime) {
16         return PORTFOLIO_TIME_LOW;
17     }
19     public function prepare_package() {
21         $files = $this->exporter->get_tempfiles();
22         $zipper = new zip_packer();
24         $filename = 'portfolio-export.zip';
25         if ($newfile = $zipper->archive_to_storage($files, SYSCONTEXTID, 'portfolio_exporter', $this->exporter->get('id'), '/final/', $filename, $this->user->id)) {
26             $this->set('file', $newfile);
27             return true;
28         }
29         return false;
30     }
32     public function send_package() {
33         return true;
34     }
36     public function get_extra_finish_options() {
37         global $CFG;
38         return array($CFG->wwwroot . '/portfolio/file.php?id=' . $this->exporter->get('id') => get_string('downloadfile', 'portfolio_download'));
39     }
41     public function verify_file_request_params($params) {
42         // for download plugin the only thing we need to verify is that
43         // the logged in user is the same as the exporting user
44         global $USER;
45         if ($USER->id  != $this->user->id) {
46             return false;
47         }
48         return true;
49     }
51     public function get_continue_url() {
52         return false;
53     }
54 }
56 ?>