private function checkSolutionCompareExpressionInput(ilLogicalAnswerComparisonExpressionInputGUI $input, assQuestion $question) { $errors = array(); foreach ($input->getValues() as $expression) { $result = $this->validateSolutionCompareExpression($expression, $question); if ($result !== true) { $errors[] = "{$this->lng->txt('ass_lac_expression')} {$expression->getOrderIndex()}: {$result}"; } } if (count($errors)) { $alert = $this->lng->txt('ass_lac_validation_error'); $alert .= '<br />' . implode('<br />', $errors); $input->setAlert($alert); return false; } return true; }
private function populateFullProperties() { $evaluationMode = new ilRadioGroupInputGUI($this->lng->txt('condition'), 'eval_mode'); $evalOptionReachedQuestionPoints = new ilRadioOption($this->lng->txt('qpl_skill_point_eval_by_quest_result'), 'result'); $evaluationMode->addOption($evalOptionReachedQuestionPoints); $evalOptionLogicalAnswerCompare = new ilRadioOption($this->lng->txt('qpl_skill_point_eval_by_solution_compare'), 'solution'); $evaluationMode->addOption($evalOptionLogicalAnswerCompare); $evaluationMode->setRequired(true); $evaluationMode->setValue($this->assignment->getEvalMode()); if (!$this->isManipulationEnabled()) { $evaluationMode->setDisabled(true); } $this->addItem($evaluationMode); $questSolutionCompareExpressions = new ilLogicalAnswerComparisonExpressionInputGUI($this->lng->txt('tst_solution_compare_cfg'), 'solution_compare_expressions'); $questSolutionCompareExpressions->setInfo($this->buildLacLegendToggleButton()); $questSolutionCompareExpressions->setRequired(true); $questSolutionCompareExpressions->setAllowMove(true); $questSolutionCompareExpressions->setQuestionObject($this->question); $questSolutionCompareExpressions->setValues($this->assignment->getSolutionComparisonExpressionList()->get()); $questSolutionCompareExpressions->setMinvalueShouldBeGreater(false); $questSolutionCompareExpressions->setMinValue(1); if (!$this->isManipulationEnabled()) { $questSolutionCompareExpressions->setDisabled(true); } $evalOptionLogicalAnswerCompare->addSubItem($questSolutionCompareExpressions); $questResultSkillPoints = $this->buildResultSkillPointsInputField(); $evalOptionReachedQuestionPoints->addSubItem($questResultSkillPoints); }