Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.3.x will end 7 October 2024 (12 months).
  • Bug fixes for security issues in 4.3.x will end 21 April 2025 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.2.x is supported too.

Differences Between: [Versions 310 and 403] [Versions 311 and 403] [Versions 39 and 403] [Versions 400 and 403]

   1  <?php
   2  
   3  // this script is a slightly more user friendly way to 'send' the file to them
   4  // (using portfolio/file.php) but still give them the 'return to where you were' link
   5  // to go back to their assignment, or whatever
   6  
   7  require(__DIR__.'/../../config.php');
   8  
   9  if (empty($CFG->enableportfolios)) {
  10      throw new \moodle_exception('disabled', 'portfolio');
  11  }
  12  
  13  require_once($CFG->libdir.'/portfoliolib.php');
  14  require_once($CFG->libdir.'/portfolio/exporter.php');
  15  
  16  $id = required_param('id', PARAM_INT);
  17  
  18  $PAGE->set_url('/portfolio/download/file.php', array('id' => $id));
  19  
  20  $exporter = portfolio_exporter::rewaken_object($id);
  21  portfolio_export_pagesetup($PAGE, $exporter->get('caller'));
  22  $exporter->verify_rewaken();
  23  
  24  $exporter->print_header(get_string('downloading', 'portfolio_download'), false);
  25  $returnurl = $exporter->get('caller')->get_return_url();
  26  echo $OUTPUT->notification('<a href="' . $returnurl . '">' . get_string('returntowhereyouwere', 'portfolio') . '</a><br />');
  27  
  28  
  29  // if they don't have javascript, they can submit the form here to get the file.
  30  // if they do, it does it nicely for them.
  31  echo '<div id="redirect">
  32      <form action="' . $exporter->get('instance')->get_base_file_url() . '" method="post" id="redirectform" target="download-iframe">
  33        <input type="submit" value="' . get_string('downloadfile', 'portfolio_download') . '" />
  34      </form>
  35      <iframe class="d-none" name="download-iframe" src=""></iframe>
  36      </div>
  37  ';
  38  
  39  $PAGE->requires->js_amd_inline("
  40  require(['jquery'], function($) {
  41      $('#redirectform').submit(function() {
  42          $('#redirect').addClass('hide');
  43      }).submit();
  44  });");
  45  echo $OUTPUT->footer();