Skip to content
Snippets Groups Projects
Select Git revision
  • 0d77164f394909ec371f39cb41a4920c82e75052
  • master default
  • v0.52.5
  • v0.52.4
  • v0.52.3
  • v0.52.2
  • v0.52.1
  • v0.52.0
  • v0.51.0
  • v0.50.0
  • v0.49.0
11 results

osfingermap.yaml

Blame
  • exportone.php 3.29 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(__DIR__ . '/api/libs/yaml.php');
    require_once(__DIR__ . '/api/libs/yaml_defaults.php');
    require_once(__DIR__ . '/api/libs/export.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);
    $exportformat = required_param('exportformat', PARAM_TEXT);
    
    // 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');
    
    // 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();