Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 3.9.x will end* 10 May 2021 (12 months).
  • Bug fixes for security issues in 3.9.x will end* 8 May 2023 (36 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.

Differences Between: [Versions 39 and 400] [Versions 39 and 401] [Versions 39 and 402] [Versions 39 and 403]

   1  <?php
   2  // This file is part of Moodle - http://moodle.org/
   3  //
   4  // Moodle is free software: you can redistribute it and/or modify
   5  // it under the terms of the GNU General Public License as published by
   6  // the Free Software Foundation, either version 3 of the License, or
   7  // (at your option) any later version.
   8  //
   9  // Moodle is distributed in the hope that it will be useful,
  10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  // GNU General Public License for more details.
  13  //
  14  // You should have received a copy of the GNU General Public License
  15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  16  
  17  /**
  18   * Defines the export questions form.
  19   *
  20   * @package    moodlecore
  21   * @subpackage questionbank
  22   * @copyright  2007 Jamie Pratt me@jamiep.org
  23   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  24   */
  25  
  26  
  27  defined('MOODLE_INTERNAL') || die();
  28  
  29  require_once($CFG->libdir . '/formslib.php');
  30  
  31  
  32  /**
  33   * Form to export questions from the question bank.
  34   *
  35   * @copyright  2007 Jamie Pratt me@jamiep.org
  36   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  37   */
  38  class question_export_form extends moodleform {
  39  
  40      protected function definition() {
  41          global $OUTPUT;
  42  
  43          $mform = $this->_form;
  44  
  45          $defaultcategory = $this->_customdata['defaultcategory'];
  46          $contexts = $this->_customdata['contexts'];
  47  
  48          // Choice of format, with help.
  49          $mform->addElement('header', 'fileformat', get_string('fileformat', 'question'));
  50  
  51          $fileformatnames = get_import_export_formats('export');
  52          $radioarray = array();
  53          $separators = array();
  54          foreach ($fileformatnames as $shortname => $fileformatname) {
  55              $radioarray[] = $mform->createElement('radio', 'format', '', $fileformatname, $shortname);
  56  
  57              $separator = '';
  58              if (get_string_manager()->string_exists('pluginname_help', 'qformat_' . $shortname)) {
  59                  $separator .= $OUTPUT->help_icon('pluginname', 'qformat_' . $shortname);
  60              }
  61              $separator .= '<div class="w-100"></div>';
  62              $separators[] = $separator;
  63          }
  64  
  65          $radioarray[] = $mform->createElement('static', 'makelasthelpiconshowup', '');
  66          $mform->addGroup($radioarray, "formatchoices", '', $separators, false);
  67          $mform->addRule("formatchoices", null, 'required', null, 'client');
  68  
  69          // Export options.
  70          $mform->addElement('header', 'general', get_string('general', 'form'));
  71  
  72          $mform->addElement('questioncategory', 'category', get_string('exportcategory', 'question'),
  73                  array('contexts' => $contexts, 'top' => true));
  74          $mform->setDefault('category', $defaultcategory);
  75          $mform->addHelpButton('category', 'exportcategory', 'question');
  76  
  77          $categorygroup = array();
  78          $categorygroup[] = $mform->createElement('checkbox', 'cattofile', '', get_string('tofilecategory', 'question'));
  79          $categorygroup[] = $mform->createElement('checkbox', 'contexttofile', '', get_string('tofilecontext', 'question'));
  80          $mform->addGroup($categorygroup, 'categorygroup', '', '', false);
  81          $mform->disabledIf('categorygroup', 'cattofile', 'notchecked');
  82          $mform->setDefault('cattofile', 1);
  83          $mform->setDefault('contexttofile', 1);
  84  
  85          // Set a template for the format select elements
  86          $renderer = $mform->defaultRenderer();
  87          $template = "{help} {element}\n";
  88          $renderer->setGroupElementTemplate($template, 'format');
  89  
  90          // Submit buttons.
  91          $this->add_action_buttons(false, get_string('exportquestions', 'question'));
  92      }
  93  }