diff --git a/main/exercice/multiple_answer_true_false.class.php b/main/exercice/multiple_answer_true_false.class.php index 1a4000bc16..3da34ed08a 100755 --- a/main/exercice/multiple_answer_true_false.class.php +++ b/main/exercice/multiple_answer_true_false.class.php @@ -27,177 +27,213 @@ class MultipleAnswerTrueFalse extends Question } /** - * function which redefines Question::createAnswersForm - * @param FormValidator $form - */ + * function which redefines Question::createAnswersForm + * @param FormValidator $form + */ public function createAnswersForm($form) { - $nb_answers = isset($_POST['nb_answers']) ? $_POST['nb_answers'] : 4; - // The previous default value was 2. See task #1759. - $nb_answers += (isset($_POST['lessAnswers']) ? -1 : (isset($_POST['moreAnswers']) ? 1 : 0)); + $nb_answers = isset($_POST['nb_answers']) ? $_POST['nb_answers'] : 4; + // The previous default value was 2. See task #1759. + $nb_answers += (isset($_POST['lessAnswers']) ? -1 : (isset($_POST['moreAnswers']) ? 1 : 0)); $course_id = api_get_course_int_id(); - $obj_ex = $_SESSION['objExercise']; + $obj_ex = $_SESSION['objExercise']; $renderer = & $form->defaultRenderer(); $defaults = array(); - $html = '
- '.get_lang('Number').' - | -- '.get_lang('True').' - | -- '.get_lang('False').' - | -- '.get_lang('Answer').' - | '; +' . get_lang('Number') . ' | +' . get_lang('True') . ' | +' . get_lang('False') . ' | +' . get_lang('Answer') . ' | '; // show column comment when feedback is enable - if ($obj_ex->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_EXAM ) { - $html .=''.get_lang('Comment').' | '; + if ($obj_ex->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_EXAM) { + $html .='' . get_lang('Comment') . ' | '; } $html .= '{error} {element} | ', 'correct['.$i.']');
- $renderer->setElementTemplate('{error} {element} | ', 'counter['.$i.']');
- $renderer->setElementTemplate('{error} {element} | ', 'answer['.$i.']');
- $renderer->setElementTemplate('{error} {element} | ', 'comment['.$i.']');
+ // Can be more options
+ $option_data = Question::readQuestionOption($this->id, $course_id);
- $answer_number=$form->addElement('text', 'counter['.$i.']',null,'value="'.$i.'"');
+ for ($i = 1; $i <= $nb_answers; ++$i) {
+ $renderer->setElementTemplate(
+ '{error} {element} | ',
+ 'correct[' . $i . ']'
+ );
+ $renderer->setElementTemplate(
+ '{error} {element} | ',
+ 'counter[' . $i . ']'
+ );
+ $renderer->setElementTemplate(
+ '{error} {element} | ',
+ 'answer[' . $i . ']'
+ );
+ $renderer->setElementTemplate(
+ '{error} {element} | ',
+ 'comment[' . $i . ']'
+ );
+
+ $answer_number = $form->addElement('text', 'counter[' . $i . ']', null, 'value="' . $i . '"');
$answer_number->freeze();
- if (is_object($answer)) {
- $defaults['answer['.$i.']'] = $answer -> answer[$i];
- $defaults['comment['.$i.']'] = $answer -> comment[$i];
- //$defaults['weighting['.$i.']'] = float_format($answer -> weighting[$i], 1);
+ if (is_object($answer)) {
+ $defaults['answer[' . $i . ']'] = $answer->answer[$i];
+ $defaults['comment[' . $i . ']'] = $answer->comment[$i];
+ //$defaults['weighting['.$i.']'] = float_format($answer -> weighting[$i], 1);
$correct = $answer->correct[$i];
- $defaults['correct['.$i.']'] = $correct;
+ $defaults['correct[' . $i . ']'] = $correct;
$j = 1;
if (!empty($option_data)) {
foreach ($option_data as $id => $data) {
- $form->addElement('radio', 'correct['.$i.']', null, null, $id);
+ $form->addElement('radio', 'correct[' . $i . ']', null, null, $id);
+
$j++;
+
if ($j == 3) {
- break;
+ break;
}
}
}
- } else {
- $form->addElement('radio', 'correct['.$i.']', null, null, 1);
- $form->addElement('radio', 'correct['.$i.']', null, null, 2);
-
- $defaults['answer['.$i.']'] = '';
- $defaults['comment['.$i.']'] = '';
- $defaults['correct['.$i.']'] = '';
- }
-
- $boxes_names[] = 'correct['.$i.']';
- $form->addElement('html_editor', 'answer['.$i.']',null, array(), array('ToolbarSet' => 'TestProposedAnswer', 'Width' => '100%', 'Height' => '100'));
- $form->addRule('answer['.$i.']', get_lang('ThisFieldIsRequired'), 'required');
+ } else {
+ $form->addElement('radio', 'correct[' . $i . ']', null, null, 1);
+ $form->addElement('radio', 'correct[' . $i . ']', null, null, 2);
- // show comment when feedback is enable
- if ($obj_ex->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_EXAM) {
- $form->addElement('html_editor', 'comment['.$i.']',null, array(), array('ToolbarSet' => 'TestProposedAnswer', 'Width' => '100%', 'Height' => '100'));
- }
- $form->addElement ('html', '');
- }
+ $defaults['answer[' . $i . ']'] = '';
+ $defaults['comment[' . $i . ']'] = '';
+ $defaults['correct[' . $i . ']'] = '';
+ }
- $form->addElement('html', '
---|
'.get_lang('Correct').' | '.get_lang('Wrong').' | '.get_lang('DoubtScore').' | |
*'.get_lang('Score').' | {element} {error} | ', 'option[1]');
- $renderer->setElementTemplate('{element} {error} | ', 'option[2]');
- $renderer->setElementTemplate('{element} {error} | ', 'option[3]');
+ $form->addElement('html', '
' . get_lang('Correct') . ' | ' . get_lang('Wrong') . ' | ' . get_lang('DoubtScore') . ' | |
*' . get_lang('Score') . ' | {element} {error} | ',
+ 'option[1]'
+ );
+ $renderer->setElementTemplate(
+ '{element} {error} | ',
+ 'option[2]'
+ );
+ $renderer->setElementTemplate(
+ '{element} {error} | ',
+ 'option[3]'
+ );
// 3 scores
- $form->addElement('text', 'option[1]', get_lang('Correct'), array('class'=>'span1','value'=>'1'));
- $form->addElement('text', 'option[2]', get_lang('Wrong'), array('class'=>'span1','value'=>'-0.5'));
- $form->addElement('text', 'option[3]', get_lang('DoubtScore'),array('class'=>'span1','value'=>'0'));
+ $form->addElement('text', 'option[1]', get_lang('Correct'), array('class' => 'span1', 'value' => '1'));
+ $form->addElement('text', 'option[2]', get_lang('Wrong'), array('class' => 'span1', 'value' => '-0.5'));
+ $form->addElement('text', 'option[3]', get_lang('DoubtScore'), array('class' => 'span1', 'value' => '0'));
$form->addRule('option[1]', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('option[2]', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('option[3]', get_lang('ThisFieldIsRequired'), 'required');
- $form -> addElement ('html', '