Skip to content
Snippets Groups Projects
Select Git revision
  • bef3712dc63cc0b68b344f04129012e5eaedf23d
  • main default
  • hsh-MOODLE_404+
  • hsh_3.10
  • master protected
  • v1.4.7
  • v1.4.6
  • v1.4.5
  • v1.4.3
  • v1.4.1
  • v1.4
  • v1.3r2
  • v1.3
  • v1.2
14 results

forward_form.php

Blame
  • exportone.php 2.51 KiB
    <?php
    // This file is part of Stack - http://stack.maths.ed.ac.uk/
    //
    // Stack is free software: you can redistribute it and/or modify
    // it under the terms of the GNU General Public License as published by
    // the Free Software Foundation, either version 3 of the License, or
    // (at your option) any later version.
    //
    // Stack is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    // GNU General Public License for more details.
    //
    // You should have received a copy of the GNU General Public License
    // along with Stack.  If not, see <http://www.gnu.org/licenses/>.
    
    /**
     * Script to download the export of a single STACK question.
     *
     * @copyright 2015 the Open University
     * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
     */
    
    require_once(__DIR__.'/../../../config.php');
    
    require_once($CFG->libdir . '/questionlib.php');
    require_once($CFG->dirroot . '/question/format/xml/format.php');
    require_once(__DIR__ . '/locallib.php');
    
    
    // Get the parameters from the URL.
    $questionid = required_param('questionid', PARAM_INT);
    
    // Load the necessary data.
    $questiondata = $DB->get_record('question', array('id' => $questionid), '*', MUST_EXIST);
    get_question_options($questiondata);
    $question = question_bank::load_question($questionid);
    
    // Process any other URL parameters, and do require_login.
    list($context, $seed, $urlparams) = qtype_stack_setup_question_test_page($question);
    $contexts = new question_edit_contexts($context);
    
    // Check permissions.
    question_require_capability_on($questiondata, 'edit');
    require_sesskey();
    
    // Initialise $PAGE.
    $nexturl = new moodle_url('/question/type/stack/questiontestrun.php', $urlparams);
    $PAGE->set_url($nexturl); // Since this script always ends in a redirect.
    $PAGE->set_heading($COURSE->fullname);
    $PAGE->set_pagelayout('admin');
    
    require_login();
    
    // Set up the export format.
    $qformat = new qformat_xml();
    $filename = question_default_export_filename($COURSE, $questiondata) .
            $qformat->export_file_extension();
    $qformat->setContexts($contexts->having_one_edit_tab_cap('export'));
    $qformat->setCourse($COURSE);
    $qformat->setQuestions(array($questiondata));
    $qformat->setCattofile(false);
    $qformat->setContexttofile(false);
    
    // Do the export.
    if (!$qformat->exportpreprocess()) {
        send_file_not_found();
    }
    if (!$content = $qformat->exportprocess(true)) {
        send_file_not_found();
    }
    send_file($content, $filename, 0, 0, true, true, $qformat->mime_type());