Fix Multiple Answer True/False form

1.10.x
Angel Fernando Quiroz Campos 11 years ago
parent d8e8d065fb
commit dece622dd2
  1. 116
      main/exercice/multiple_answer_true_false.class.php

@ -41,19 +41,25 @@ class MultipleAnswerTrueFalse extends Question
$renderer = & $form->defaultRenderer(); $renderer = & $form->defaultRenderer();
$defaults = array(); $defaults = array();
$html = '<table class="data_table"> $html = '<table class="table table-striped table-hover">';
<tr style="text-align: center;"> $html .= '<thead>';
<th>' . get_lang('Number') . '</th> $html .= '<tr>';
<th>' . get_lang('True') . '</th> $html .= '<th>' . get_lang('Number') . '</th>';
<th>' . get_lang('False') . '</th> $html .= '<th>' . get_lang('True') . '</th>';
<th>' . get_lang('Answer') . '</th>'; $html .= '<th>' . get_lang('False') . '</th>';
$html .= '<th>' . get_lang('Answer') . '</th>';
// show column comment when feedback is enable // show column comment when feedback is enable
if ($obj_ex->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_EXAM) { if ($obj_ex->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_EXAM) {
$html .='<th>' . get_lang('Comment') . '</th>'; $html .= '<th>' . get_lang('Comment') . '</th>';
} }
$html .= '</tr>'; $html .= '</tr>';
$html .= '</thead>';
$html .= '<tbody>';
$form->addElement('label', get_lang('Answers') . '<br /> <img src="../img/fill_field.png">', $html); $form->addHeader(get_lang('Answers'));
$form->addHtml($html);
$correct = 0; $correct = 0;
$answer = null; $answer = null;
@ -79,6 +85,8 @@ class MultipleAnswerTrueFalse extends Question
$option_data = Question::readQuestionOption($this->id, $course_id); $option_data = Question::readQuestionOption($this->id, $course_id);
for ($i = 1; $i <= $nb_answers; ++$i) { for ($i = 1; $i <= $nb_answers; ++$i) {
$form->addHtml('<tr>');
$renderer->setElementTemplate( $renderer->setElementTemplate(
'<td><!-- BEGIN error --><span class="form_error">{error}</span><!-- END error --><br/>{element}</td>', '<td><!-- BEGIN error --><span class="form_error">{error}</span><!-- END error --><br/>{element}</td>',
'correct[' . $i . ']' 'correct[' . $i . ']'
@ -129,14 +137,14 @@ class MultipleAnswerTrueFalse extends Question
} }
$boxes_names[] = 'correct[' . $i . ']'; $boxes_names[] = 'correct[' . $i . ']';
$form->addElement(
'html_editor', $form->addHtmlEditor(
'answer[' . $i . ']', "answer[$i]",
null, get_lang('ThisFieldIsRequired'),
array(), true,
array('ToolbarSet' => 'TestProposedAnswer', 'Width' => '100%', 'Height' => '100') true,
['ToolbarSet' => 'TestProposedAnswer', 'Width' => '100%', 'Height' => '100']
); );
$form->addRule('answer[' . $i . ']', get_lang('ThisFieldIsRequired'), 'required');
// show comment when feedback is enable // show comment when feedback is enable
if ($obj_ex->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_EXAM) { if ($obj_ex->selectFeedbackType() != EXERCISE_FEEDBACK_TYPE_EXAM) {
@ -149,30 +157,40 @@ class MultipleAnswerTrueFalse extends Question
); );
} }
$form->addElement('html', '</tr>'); $form->addHtml('</tr>');
} }
$form->addElement('html', '</table>'); $form->addHtml('</tbody></table>');
$form->addElement('html', '<br />');
$correctInputTemplate = '<div class="form-group">';
$form->addElement( $correctInputTemplate .= '<label class="col-sm-2 control-label">';
'html', $correctInputTemplate .= '<span class="form_required">*</span>' . get_lang('Score');
'<table><tr><td></td><td>' . get_lang('Correct') . '</td><td>' . get_lang('Wrong') . '</td><td>' . get_lang('DoubtScore') . '</td></tr>' $correctInputTemplate .= '</label>';
); $correctInputTemplate .= '<div class="col-sm-8">';
$correctInputTemplate .= '<table>';
$renderer->setElementTemplate( $correctInputTemplate .= '<tr>';
'<tr><td><span class="form_required">*</span>' . get_lang('Score') . '&nbsp;&nbsp;&nbsp;&nbsp;</td><td>{element} &nbsp;&nbsp; <br /><!-- BEGIN error --><span class="form_error">{error}</span><!-- END error --></td>', $correctInputTemplate .= '<td>';
'option[1]' $correctInputTemplate .= get_lang('Correct') . '{element}';
); $correctInputTemplate .= '<!-- BEGIN error --><span class="form_error">{error}</span><!-- END error -->';
$renderer->setElementTemplate( $correctInputTemplate .= '</td>';
'<td>{element} &nbsp;&nbsp;<br /><!-- BEGIN error --><span class="form_error">{error}</span><!-- END error --></td>',
'option[2]' $wrongInputTemplate = '<td>';
); $wrongInputTemplate .= get_lang('Wrong') . '{element}';
$renderer->setElementTemplate( $wrongInputTemplate .= '<!-- BEGIN error --><span class="form_error">{error}</span><!-- END error -->';
'<td>{element} &nbsp;&nbsp;<br /><!-- BEGIN error --><span class="form_error">{error}</span><!-- END error --></td>', $wrongInputTemplate .= '</td>';
'option[3]'
); $doubtScoreInputTempalte = '<td>' . get_lang('DoubtScore') . '<br>{element}';
$doubtScoreInputTempalte .= '<!-- BEGIN error --><span class="form_error">{error}</span><!-- END error -->';
$doubtScoreInputTempalte .= '</td>';
$doubtScoreInputTempalte .= '</tr>';
$doubtScoreInputTempalte .= '</table>';
$doubtScoreInputTempalte .= '</div>';
$doubtScoreInputTempalte .= '</div>';
$renderer->setElementTemplate($correctInputTemplate, 'option[1]');
$renderer->setElementTemplate($wrongInputTemplate, 'option[2]');
$renderer->setElementTemplate($doubtScoreInputTempalte, 'option[3]');
// 3 scores // 3 scores
$form->addElement('text', 'option[1]', get_lang('Correct'), array('class' => 'span1', 'value' => '1')); $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[2]', get_lang('Wrong'), array('class' => 'span1', 'value' => '-0.5'));
@ -182,9 +200,7 @@ class MultipleAnswerTrueFalse extends Question
$form->addRule('option[2]', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule('option[2]', get_lang('ThisFieldIsRequired'), 'required');
$form->addRule('option[3]', get_lang('ThisFieldIsRequired'), 'required'); $form->addRule('option[3]', get_lang('ThisFieldIsRequired'), 'required');
$form->addElement('html', '</tr><table>');
$form->addElement('hidden', 'options_count', 3); $form->addElement('hidden', 'options_count', 3);
$form->addElement('html', '</table><br /><br />');
//Extra values True, false, Dont known //Extra values True, false, Dont known
if (!empty($this->extra)) { if (!empty($this->extra)) {
@ -202,25 +218,23 @@ class MultipleAnswerTrueFalse extends Question
global $text, $class; global $text, $class;
if ($obj_ex->edit_exercise_in_lp == true) { if ($obj_ex->edit_exercise_in_lp == true) {
$buttonGroup = [];
//ie6 fix //ie6 fix
if ($navigator_info['name'] == 'Internet Explorer' && $navigator_info['version'] == '6') { if ($navigator_info['name'] == 'Internet Explorer' && $navigator_info['version'] == '6') {
$form->addElement('submit', 'lessAnswers', get_lang('LessAnswer'), 'class="btn minus"'); $buttonGroup[] = $form->addElement('submit', 'lessAnswers', get_lang('LessAnswer'), 'class="btn minus"');
$form->addElement('submit', 'moreAnswers', get_lang('PlusAnswer'), 'class="btn plus"'); $buttonGroup[] = $form->addElement('submit', 'moreAnswers', get_lang('PlusAnswer'), 'class="btn plus"');
$form->addElement('submit', 'submitQuestion', $text, 'class="' . $class . '"'); $buttonGroup[] = $form->addElement('submit', 'submitQuestion', $text, 'class="' . $class . '"');
} else { } else {
// setting the save button here and not in the question class.php // setting the save button here and not in the question class.php
$buttonGroup[] = $form->addButtonDelete(get_lang('LessAnswer'), 'lessAnswers', true);
$form->addElement('style_submit_button', 'lessAnswers', get_lang('LessAnswer'), 'class="btn minus"'); $buttonGroup[] = $form->addButtonCreate(get_lang('PlusAnswer'), 'moreAnswers', true);
$form->addElement('style_submit_button', 'moreAnswers', get_lang('PlusAnswer'), 'class="btn plus"'); $buttonGroup[] = $form->addButtonSave($text, 'SubmitQuestion', true);
$form->addElement('style_submit_button', 'submitQuestion', $text, 'class="' . $class . '"');
} }
}
$renderer->setElementTemplate('{element}&nbsp;', 'lessAnswers'); $form->addGroup($buttonGroup);
$renderer->setElementTemplate('{element}&nbsp;', 'submitQuestion'); }
$renderer->setElementTemplate('{element}&nbsp;', 'moreAnswers');
$form->addElement('html', '</div></div>');
$defaults['correct'] = $correct; $defaults['correct'] = $correct;
if (!empty($this->id)) { if (!empty($this->id)) {

Loading…
Cancel
Save