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; }