Exemplo n.º 1
0
 private function buildManScoringParticipantForm($questionGuiList, $activeId, $pass, $initValues = false)
 {
     global $ilCtrl, $lng;
     require_once 'Services/Form/classes/class.ilPropertyFormGUI.php';
     require_once 'Services/Form/classes/class.ilFormSectionHeaderGUI.php';
     require_once 'Services/Form/classes/class.ilCustomInputGUI.php';
     require_once 'Services/Form/classes/class.ilCheckboxInputGUI.php';
     require_once 'Services/Form/classes/class.ilTextInputGUI.php';
     require_once 'Services/Form/classes/class.ilTextAreaInputGUI.php';
     $ilCtrl->setParameter($this, 'active_id', $activeId);
     $ilCtrl->setParameter($this, 'pass', $pass);
     $form = new ilPropertyFormGUI();
     $form->setFormAction($ilCtrl->getFormAction($this));
     $form->setTitle(sprintf($lng->txt('manscoring_results_pass'), $pass + 1));
     $form->setTableWidth('100%');
     foreach ($questionGuiList as $questionId => $questionGUI) {
         $questionHeader = sprintf($lng->txt('tst_manscoring_question_section_header'), $questionGUI->object->getTitle());
         $questionSolution = $questionGUI->getSolutionOutput($activeId, $pass, false, false, true, false, false, true);
         $bestSolution = $questionGUI->object->getSuggestedSolutionOutput();
         $sect = new ilFormSectionHeaderGUI();
         $sect->setTitle($questionHeader . ' [' . $this->lng->txt('question_id_short') . ': ' . $questionGUI->object->getId() . ']');
         $form->addItem($sect);
         $cust = new ilCustomInputGUI($lng->txt('tst_manscoring_input_question_and_user_solution'));
         $cust->setHtml($questionSolution);
         $form->addItem($cust);
         $text = new ilTextInputGUI($lng->txt('tst_change_points_for_question'), "question__{$questionId}__points");
         if ($initValues) {
             $text->setValue(assQuestion::_getReachedPoints($activeId, $questionId, $pass));
         }
         $form->addItem($text);
         $nonedit = new ilNonEditableValueGUI($lng->txt('tst_manscoring_input_max_points_for_question'), "question__{$questionId}__maxpoints");
         if ($initValues) {
             $nonedit->setValue(assQuestion::_getMaximumPoints($questionId));
         }
         $form->addItem($nonedit);
         $area = new ilTextAreaInputGUI($lng->txt('set_manual_feedback'), "question__{$questionId}__feedback");
         $area->setUseRTE(true);
         if ($initValues) {
             $area->setValue($this->object->getManualFeedback($activeId, $questionId, $pass));
         }
         $form->addItem($area);
         if (strlen(trim($bestSolution))) {
             $cust = new ilCustomInputGUI($lng->txt('tst_show_solution_suggested'));
             $cust->setHtml($bestSolution);
             $form->addItem($cust);
         }
     }
     $sect = new ilFormSectionHeaderGUI();
     $sect->setTitle($lng->txt('tst_participant'));
     $form->addItem($sect);
     $check = new ilCheckboxInputGUI($lng->txt('set_manscoring_done'), 'manscoring_done');
     if ($initValues && ilTestService::isManScoringDone($activeId)) {
         $check->setChecked(true);
     }
     $form->addItem($check);
     $check = new ilCheckboxInputGUI($lng->txt('tst_manscoring_user_notification'), 'manscoring_notify');
     $form->addItem($check);
     $form->addCommandButton('saveManScoringParticipantScreen', $lng->txt('save'));
     $form->addCommandButton('saveReturnManScoringParticipantScreen', $lng->txt('save_return'));
     $form->addCommandButton('saveNextManScoringParticipantScreen', $lng->txt('save_and_next'));
     return $form;
 }