public function test_question_reorder_qtypes()
 {
     $this->assertEquals(array(0 => 't2', 1 => 't1', 2 => 't3'), question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't1', +1));
     $this->assertEquals(array(0 => 't1', 1 => 't2', 2 => 't3'), question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't1', -1));
     $this->assertEquals(array(0 => 't2', 1 => 't1', 2 => 't3'), question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't2', -1));
     $this->assertEquals(array(0 => 't1', 1 => 't2', 2 => 't3'), question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't3', +1));
     $this->assertEquals(array(0 => 't1', 1 => 't2', 2 => 't3'), question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 'missing', +1));
 }
 public function test_question_reorder_qtypes()
 {
     global $CFG;
     require_once $CFG->libdir . '/questionlib.php';
     $this->assertEquals(question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't1', +1), array(0 => 't2', 1 => 't1', 2 => 't3'));
     $this->assertEquals(question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't1', -1), array(0 => 't1', 1 => 't2', 2 => 't3'));
     $this->assertEquals(question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't2', -1), array(0 => 't2', 1 => 't1', 2 => 't3'));
     $this->assertEquals(question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 't3', +1), array(0 => 't1', 1 => 't2', 2 => 't3'));
     $this->assertEquals(question_reorder_qtypes(array('t1' => '', 't2' => '', 't3' => ''), 'missing', +1), array(0 => 't1', 1 => 't2', 2 => 't3'));
 }
Example #3
0
if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) {
    if (!isset($behaviours[$up])) {
        print_error('unknownbehaviour', 'question', $thispageurl, $up);
    }
    // This function works fine for behaviours, as well as qtypes.
    $neworder = question_reorder_qtypes($sortedbehaviours, $up, -1);
    set_config('behavioursortorder', implode(',', $neworder), 'question');
    redirect($thispageurl);
}
// Move down in order.
if (($down = optional_param('down', '', PARAM_PLUGIN)) && confirm_sesskey()) {
    if (!isset($behaviours[$down])) {
        print_error('unknownbehaviour', 'question', $thispageurl, $down);
    }
    // This function works fine for behaviours, as well as qtypes.
    $neworder = question_reorder_qtypes($sortedbehaviours, $down, +1);
    set_config('behavioursortorder', implode(',', $neworder), 'question');
    redirect($thispageurl);
}
// Delete.
if (($delete = optional_param('delete', '', PARAM_PLUGIN)) && confirm_sesskey()) {
    // Check it is OK to delete this question type.
    if ($delete == 'missing') {
        print_error('cannotdeletemissingbehaviour', 'question', $thispageurl);
    }
    if (!isset($behaviours[$delete])) {
        print_error('unknownbehaviour', 'question', $thispageurl, $delete);
    }
    $behaviourname = $sortedbehaviours[$delete];
    if ($counts[$delete] > 0) {
        print_error('cannotdeletebehaviourinuse', 'question', $thispageurl, $behaviourname);
Example #4
0
}
// Move up in order.
if (($up = optional_param('up', '', PARAM_PLUGIN)) && confirm_sesskey()) {
    if (!isset($qtypes[$up])) {
        print_error('unknownquestiontype', 'question', $thispageurl, $up);
    }
    $neworder = question_reorder_qtypes($sortedqtypes, $up, -1);
    question_save_qtype_order($neworder, $config);
    redirect($thispageurl);
}
// Move down in order.
if (($down = optional_param('down', '', PARAM_PLUGIN)) && confirm_sesskey()) {
    if (!isset($qtypes[$down])) {
        print_error('unknownquestiontype', 'question', $thispageurl, $down);
    }
    $neworder = question_reorder_qtypes($sortedqtypes, $down, +1);
    question_save_qtype_order($neworder, $config);
    redirect($thispageurl);
}
// Delete.
if (($delete = optional_param('delete', '', PARAM_PLUGIN)) && confirm_sesskey()) {
    // Check it is OK to delete this question type.
    if ($delete == 'missingtype') {
        print_error('cannotdeletemissingqtype', 'question', $thispageurl);
    }
    if (!isset($qtypes[$delete])) {
        print_error('unknownquestiontype', 'question', $thispageurl, $delete);
    }
    $qtypename = $qtypes[$delete]->local_name();
    if ($counts[$delete]->numquestions + $counts[$delete]->numhidden > 0) {
        print_error('cannotdeleteqtypeinuse', 'question', $thispageurl, $qtypename);