diff --git a/main/exercice/multiple_answer_combination.class.php b/main/exercice/multiple_answer_combination.class.php index 84ffc6d8f0..b5603530bf 100755 --- a/main/exercice/multiple_answer_combination.class.php +++ b/main/exercice/multiple_answer_combination.class.php @@ -26,131 +26,157 @@ class MultipleAnswerCombination extends Question } /** - * function which redifines Question::createAnswersForm - * @param $form FormValidator - * @param the answers number to display - */ - function createAnswersForm ($form) + * function which redifines Question::createAnswersForm + * @param $form FormValidator + * @param the answers number to display + */ + function createAnswersForm($form) { - $nb_answers = isset($_POST['nb_answers']) ? $_POST['nb_answers'] : 2; - $nb_answers += (isset($_POST['lessAnswers']) ? -1 : (isset($_POST['moreAnswers']) ? 1 : 0)); - $obj_ex = $_SESSION['objExercise']; - $html= ' + $nb_answers = isset($_POST['nb_answers']) ? $_POST['nb_answers'] : 2; + $nb_answers += (isset($_POST['lessAnswers']) ? -1 : (isset($_POST['moreAnswers']) ? 1 : 0)); + $obj_ex = $_SESSION['objExercise']; + $html = '
- - - '; - // show column comment when feedback is enable - $html .=''; - $html .= ''; - $form -> addElement ('label', get_lang('Answers').'
', $html); - - $defaults = array(); - $correct = 0; + + + '; + // show column comment when feedback is enable + $html .=''; + $html .= ''; + $form->addElement('label', get_lang('Answers') . '
', $html); + + $defaults = array(); + $correct = 0; $answer = false; - if(!empty($this -> id)) { - $answer = new Answer($this -> id); - $answer -> read(); - if (count($answer->nbrAnswers)>0 && !$form->isSubmitted()) { - $nb_answers = $answer->nbrAnswers; - } - } - - $form -> addElement('hidden', 'nb_answers'); - $boxes_names = array(); - - if ($nb_answers < 1) { - $nb_answers = 1; - Display::display_normal_message(get_lang('YouHaveToCreateAtLeastOneAnswer')); - } - - for($i = 1 ; $i <= $nb_answers ; ++$i) { - 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); - $defaults['correct['.$i.']'] = $answer -> correct[$i]; - } else { - $defaults['answer[1]'] = get_lang('DefaultMultipleAnswer2'); - $defaults['comment[1]'] = get_lang('DefaultMultipleComment2'); - $defaults['correct[1]'] = true; - $defaults['weighting[1]'] = 10; - - $defaults['answer[2]'] = get_lang('DefaultMultipleAnswer1'); - $defaults['comment[2]'] = get_lang('DefaultMultipleComment1'); - $defaults['correct[2]'] = false; - } - $renderer = & $form->defaultRenderer(); - $renderer->setElementTemplate('', 'correct['.$i.']'); - $renderer->setElementTemplate('', 'counter['.$i.']'); - $renderer->setElementTemplate('', 'answer['.$i.']'); - $renderer->setElementTemplate('', 'comment['.$i.']'); + if (!empty($this->id)) { + $answer = new Answer($this->id); + $answer->read(); + if (count($answer->nbrAnswers) > 0 && !$form->isSubmitted()) { + $nb_answers = $answer->nbrAnswers; + } + } - $answer_number=$form->addElement('text', 'counter['.$i.']', null,'value="'.$i.'"'); - $answer_number->freeze(); + $form->addElement('hidden', 'nb_answers'); + $boxes_names = array(); - $form->addElement('checkbox', 'correct['.$i.']', null, null, 'class="checkbox" style="margin-left: 0em;"'); - $boxes_names[] = 'correct['.$i.']'; + if ($nb_answers < 1) { + $nb_answers = 1; + Display::display_normal_message(get_lang('YouHaveToCreateAtLeastOneAnswer')); + } - $form->addElement('html_editor', 'answer['.$i.']',null, array(), array('ToolbarSet' => 'TestProposedAnswer', 'Width' => '100%', 'Height' => '100')); - $form->addRule('answer['.$i.']', get_lang('ThisFieldIsRequired'), 'required'); + for ($i = 1; $i <= $nb_answers; ++$i) { + 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); + $defaults['correct[' . $i . ']'] = $answer->correct[$i]; + } else { + $defaults['answer[1]'] = get_lang('DefaultMultipleAnswer2'); + $defaults['comment[1]'] = get_lang('DefaultMultipleComment2'); + $defaults['correct[1]'] = true; + $defaults['weighting[1]'] = 10; + + $defaults['answer[2]'] = get_lang('DefaultMultipleAnswer1'); + $defaults['comment[2]'] = get_lang('DefaultMultipleComment1'); + $defaults['correct[2]'] = false; + } - $form->addElement('html_editor', 'comment['.$i.']',null, array(), array('ToolbarSet' => 'TestProposedAnswer', 'Width' => '100%', 'Height' => '100')); - //only 1 answer the all deal ... - //$form->addElement('text', 'weighting['.$i.']',null, 'style="vertical-align:middle;margin-left: 0em;" size="5" value="10"'); + $renderer = & $form->defaultRenderer(); + + $renderer->setElementTemplate( + '', + 'correct[' . $i . ']' + ); + $renderer->setElementTemplate( + '', + 'counter[' . $i . ']' + ); + $renderer->setElementTemplate( + '', + 'answer[' . $i . ']' + ); + $renderer->setElementTemplate( + '', + 'comment[' . $i . ']' + ); + + $answer_number = $form->addElement('text', 'counter[' . $i . ']', null, 'value="' . $i . '"'); + $answer_number->freeze(); + + $form->addElement('checkbox', + 'correct[' . $i . ']', + null, + null, + 'class="checkbox" style="margin-left: 0em;"' + ); + $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'); + + $form->addElement( + 'html_editor', + 'comment[' . $i . ']', + null, + array(), + array('ToolbarSet' => 'TestProposedAnswer', 'Width' => '100%', 'Height' => '100') + ); + //only 1 answer the all deal ... + //$form->addElement('text', 'weighting['.$i.']',null, 'style="vertical-align:middle;margin-left: 0em;" size="5" value="10"'); + + $form->addElement('html', ''); + } - $form -> addElement ('html', ''); - } - $form -> addElement ('html', '
- '.get_lang('Number').' - - '.get_lang('True').' - - '.get_lang('Answer').' - '.get_lang('Comment').'
' . get_lang('Number') . '' . get_lang('True') . '' . get_lang('Answer') . '' . get_lang('Comment') . '
{error}
{element}
{error}
{element}
{error}
{element}
{error}
{element}
{error}
{element}
{error}
{element}
{error}
{element}
{error}
{element}
'); - $form -> addElement ('html', '
'); + $form->addElement('html', ''); + $form->addElement('html', '
'); - $form -> add_multiple_required_rule ($boxes_names , get_lang('ChooseAtLeastOneCheckbox') , 'multiple_required'); + $form->add_multiple_required_rule($boxes_names, get_lang('ChooseAtLeastOneCheckbox'), 'multiple_required'); - //only 1 answer the all deal ... - $form->addElement('text', 'weighting[1]', get_lang('Score'), array('class' => "span1", 'value' => '10')); + //only 1 answer the all deal ... + $form->addElement('text', 'weighting[1]', get_lang('Score'), array('class' => "span1", 'value' => '10')); - $navigator_info = api_get_navigator(); - global $text, $class; - //ie6 fix - if ($obj_ex->edit_exercise_in_lp == true) { - if ($navigator_info['name']=='Internet Explorer' && $navigator_info['version']=='6') { + $navigator_info = api_get_navigator(); - $form->addElement('submit', 'lessAnswers', get_lang('LessAnswer'),'class="btn minus"'); - $form->addElement('submit', 'moreAnswers', get_lang('PlusAnswer'),'class="btn plus"'); - $form->addElement('submit', 'submitQuestion', $text, 'class="'.$class.'"'); - } else { + global $text, $class; + //ie6 fix + if ($obj_ex->edit_exercise_in_lp == true) { + if ($navigator_info['name'] == 'Internet Explorer' && $navigator_info['version'] == '6') { + $form->addElement('submit', 'lessAnswers', get_lang('LessAnswer'), 'class="btn minus"'); + $form->addElement('submit', 'moreAnswers', get_lang('PlusAnswer'), 'class="btn plus"'); + $form->addElement('submit', 'submitQuestion', $text, 'class="' . $class . '"'); + } else { + $form->addElement('style_submit_button', 'lessAnswers', get_lang('LessAnswer'), 'class="btn minus"'); + $form->addElement('style_submit_button', 'moreAnswers', get_lang('PlusAnswer'), 'class="btn plus"'); + $form->addElement('style_submit_button', 'submitQuestion', $text, 'class="' . $class . '"'); + // setting the save button here and not in the question class.php + } + } - $form->addElement('style_submit_button', 'lessAnswers', get_lang('LessAnswer'),'class="btn minus"'); - $form->addElement('style_submit_button', 'moreAnswers', get_lang('PlusAnswer'),'class="btn plus"'); - $form->addElement('style_submit_button', 'submitQuestion',$text, 'class="'.$class.'"'); - // setting the save button here and not in the question class.php - } - } - - $renderer->setElementTemplate('{element} ','lessAnswers'); - $renderer->setElementTemplate('{element} ','submitQuestion'); - $renderer->setElementTemplate('{element} ','moreAnswers'); - $form -> addElement ('html', ''); - $defaults['correct'] = $correct; - if (!empty($this->id)) { - $form -> setDefaults($defaults); - } else { - if ($this -> isContent == 1) { - $form -> setDefaults($defaults); - } - } - $form->setConstants(array('nb_answers' => $nb_answers)); - } + $renderer->setElementTemplate('{element} ', 'lessAnswers'); + $renderer->setElementTemplate('{element} ', 'submitQuestion'); + $renderer->setElementTemplate('{element} ', 'moreAnswers'); + $form->addElement('html', ''); + $defaults['correct'] = $correct; + + if (!empty($this->id)) { + $form->setDefaults($defaults); + } else { + if ($this->isContent == 1) { + $form->setDefaults($defaults); + } + } + $form->setConstants(array('nb_answers' => $nb_answers)); + } - /** + /** * abstract function which creates the form to create / edit the answers of the question * @param the formvalidator instance * @param the answers number to display