more last fixes to question forms and removal of redundant files

This commit is contained in:
jamiesensei
2007-01-07 17:06:50 +00:00
parent 111be766b6
commit c6fc998899
4 changed files with 51 additions and 62 deletions
@@ -15,6 +15,54 @@ class question_edit_multianswer_form extends question_edit_form {
// No question-type specific form fields.
function set_defaults($question) {
if ($question->questiontext and $question->id and $question->qtype) {
foreach ($question->options->questions as $key => $wrapped) {
// The old way of restoring the definitions is kept to gradually
// update all multianswer questions
if (empty($wrapped->questiontext)) {
$parsableanswerdef = '{' . $wrapped->defaultgrade . ':';
switch ($wrapped->qtype) {
case 'multichoice':
$parsableanswerdef .= 'MULTICHOICE:';
break;
case 'shortanswer':
$parsableanswerdef .= 'SHORTANSWER:';
break;
case 'numerical':
$parsableanswerdef .= 'NUMERICAL:';
break;
default:
error("questiontype $wrapped->qtype not recognized");
}
$separator= '';
foreach ($wrapped->options->answers as $subanswer) {
$parsableanswerdef .= $separator
. '%' . round(100*$subanswer->fraction) . '%';
$parsableanswerdef .= $subanswer->answer;
if (!empty($wrapped->options->tolerance)) {
// Special for numerical answers:
$parsableanswerdef .= ":{$wrapped->options->tolerance}";
// We only want tolerance for the first alternative, it will
// be applied to all of the alternatives.
unset($wrapped->options->tolerance);
}
if ($subanswer->feedback) {
$parsableanswerdef .= "#$subanswer->feedback";
}
$separator = '~';
}
$parsableanswerdef .= '}';
// Fix the questiontext fields of old questions
set_field('question', 'questiontext', addslashes($parsableanswerdef), 'id', $wrapped->id);
} else {
$parsableanswerdef = str_replace('&#', '&\#', $wrapped->questiontext);
}
$question->questiontext = str_replace("{#$key}", $parsableanswerdef, $question->questiontext);
}
}
}
function qtype() {
return 'multianswer';
@@ -1,7 +0,0 @@
<?php
$QTYPES[$question->qtype]->print_question_form_start($question, array(), $course, $usehtmleditor,
array('defaultgrade'));
$QTYPES[$question->qtype]->print_replacement_options($question, $course, $contextquiz);
$QTYPES[$question->qtype]->print_question_form_end($question, '',
'<input type="hidden" name="defaultgrade" value="' . s($question->defaultgrade) . '" />');
?>
@@ -1,54 +0,0 @@
<?php // $Id$
if ($question->questiontext and $question->id and $question->qtype) {
global $QTYPES;
$QTYPES[$question->qtype]->get_question_options($question);
foreach ($question->options->questions as $key => $wrapped) {
// The old way of restoring the definitions is kept to gradually
// update all multianswer questions
if (empty($wrapped->questiontext)) {
$parsableanswerdef = '{' . $wrapped->defaultgrade . ':';
switch ($wrapped->qtype) {
case 'multichoice':
$parsableanswerdef .= 'MULTICHOICE:';
break;
case 'shortanswer':
$parsableanswerdef .= 'SHORTANSWER:';
break;
case 'numerical':
$parsableanswerdef .= 'NUMERICAL:';
break;
default:
error("questiontype $wrapped->qtype not recognized");
}
$separator= '';
foreach ($wrapped->options->answers as $subanswer) {
$parsableanswerdef .= $separator
. '%' . round(100*$subanswer->fraction) . '%';
$parsableanswerdef .= $subanswer->answer;
if (!empty($wrapped->options->tolerance)) {
// Special for numerical answers:
$parsableanswerdef .= ":{$wrapped->options->tolerance}";
// We only want tolerance for the first alternative, it will
// be applied to all of the alternatives.
unset($wrapped->options->tolerance);
}
if ($subanswer->feedback) {
$parsableanswerdef .= "#$subanswer->feedback";
}
$separator = '~';
}
$parsableanswerdef .= '}';
// Fix the questiontext fields of old questions
set_field('question', 'questiontext', addslashes($parsableanswerdef), 'id', $wrapped->id);
} else {
$parsableanswerdef = str_replace('&#', '&\#', $wrapped->questiontext);
}
$question->questiontext = str_replace("{#$key}", $parsableanswerdef, $question->questiontext);
}
}
print_heading_with_help(get_string('editingmultianswer', 'quiz'),
'multianswer', 'quiz');
require("$CFG->dirroot/question/type/multianswer/editquestion.html");
?>
@@ -20,9 +20,11 @@ class question_edit_multichoice_form extends question_edit_form {
function definition_inner(&$mform) {
$menu = array(get_string('answersingleno', 'qtype_multichoice'), get_string('answersingleyes', 'qtype_multichoice'));
$mform->addElement('select', 'single', get_string('answerhowmany', 'qtype_multichoice'), $menu);
$mform->setDefault('single', 1);
$mform->addElement('selectyesno', 'shuffleanswers', get_string('shuffleanswers', 'qtype_multichoice'));
$mform->addElement('advcheckbox', 'shuffleanswers', get_string('shuffleanswers', 'qtype_multichoice'), null, null, array(0,1));
$mform->setHelpButton('shuffleanswers', array('multichoiceshuffle', get_string('shuffleanswers','qtype_multichoice'), 'quiz'));
$mform->setDefault('shuffleanswers', 1);
/* $mform->addElement('static', 'answersinstruct', get_string('choices', 'qtype_multichoice'), get_string('fillouttwochoices', 'qtype_multichoice'));
$mform->closeHeaderBefore('answersinstruct');