Пример #1
0
 public function test_sort_qtype_array()
 {
     $config = new stdClass();
     $config->multichoice_sortorder = '1';
     $config->calculated_sortorder = '2';
     $qtypes = array('frog' => 'toad', 'calculated' => 'newt', 'multichoice' => 'eft');
     $this->assertEquals(question_bank::sort_qtype_array($qtypes, $config), array('multichoice' => 'eft', 'calculated' => 'newt', 'frog' => 'toad'));
 }
Пример #2
0
}
$needed['missingtype'] = true;
// The system needs the missing question type.
foreach ($counts as $qtypename => $count) {
    if (!isset($qtypes[$qtypename])) {
        $counts['missingtype']->numquestions += $count->numquestions - $count->numhidden;
        $counts['missingtype']->numhidden += $count->numhidden;
    }
}
// Work of the correct sort order.
$config = get_config('question');
$sortedqtypes = array();
foreach ($qtypes as $qtypename => $qtype) {
    $sortedqtypes[$qtypename] = $qtype->local_name();
}
$sortedqtypes = question_bank::sort_qtype_array($sortedqtypes, $config);
// Process actions ============================================================
// Disable.
if (($disable = optional_param('disable', '', PARAM_PLUGIN)) && confirm_sesskey()) {
    if (!isset($qtypes[$disable])) {
        print_error('unknownquestiontype', 'question', $thispageurl, $disable);
    }
    set_config($disable . '_disabled', 1, 'question');
    redirect($thispageurl);
}
// Enable.
if (($enable = optional_param('enable', '', PARAM_PLUGIN)) && confirm_sesskey()) {
    if (!isset($qtypes[$enable])) {
        print_error('unknownquestiontype', 'question', $thispageurl, $enable);
    }
    if (!$qtypes[$enable]->menu_name()) {
Пример #3
0
 /**
  * @global core_renderer $OUTPUT
  * @param string $name
  * @param string $visiblename
  * @param string $description
  * @param array $defaultsetting
  */
 public function __construct($name, $visiblename, $description, $defaultsetting = null)
 {
     global $OUTPUT;
     $choices = array();
     $icons = array();
     $qtypes = question_bank::get_all_qtypes();
     // some qtypes do not need workaround
     unset($qtypes['missingtype']);
     unset($qtypes['random']);
     // question_bank::sort_qtype_array() expects array(name => local_name)
     $qtypenames = array_map(function ($qtype) {
         return $qtype->local_name();
     }, $qtypes);
     foreach (question_bank::sort_qtype_array($qtypenames) as $name => $label) {
         $choices[$name] = $label;
         $icons[$name] = ' ' . $OUTPUT->pix_icon('icon', '', $qtypes[$name]->plugin_name()) . ' ';
     }
     parent::__construct($name, $visiblename, $description, $defaultsetting, $choices, $icons);
 }