1<?php 2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */ 3 4require_once 'Modules/TestQuestionPool/classes/class.ilAnswerWizardInputGUI.php'; 5require_once 'Modules/TestQuestionPool/classes/class.assAnswerSimple.php'; 6require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionSolutionComparisonExpression.php'; 7 8/** 9 * @author Björn Heyser <bheyser@databay.de> 10 * @version $Id$ 11 * 12 * @package Modules/Test 13 */ 14class ilLogicalAnswerComparisonExpressionInputGUI extends ilAnswerWizardInputGUI 15{ 16 public function setValues($modelValues) 17 { 18 $formValues = array(); 19 20 foreach ($modelValues as $modelValue) { 21 $formValues[] = new ASS_AnswerSimple( 22 $modelValue->getExpression(), 23 $modelValue->getPoints(), 24 $modelValue->getOrderIndex() - 1 25 ); 26 } 27 28 if (!count($formValues)) { 29 $formValues[] = new ASS_AnswerSimple('', 0, 1); 30 } 31 32 parent::setValues($formValues); 33 } 34 35 public function getValues() 36 { 37 $formValues = parent::getValues(); 38 39 $modelValues = array(); 40 41 foreach ($formValues as $formValue) { 42 $expression = new ilAssQuestionSolutionComparisonExpression(); 43 $expression->setExpression($formValue->getAnswertext()); 44 $expression->setPoints($formValue->getPoints()); 45 $expression->setOrderIndex($formValue->getOrder() + 1); 46 $modelValues[] = $expression; 47 } 48 49 return $modelValues; 50 } 51 52 /** 53 * @param $lng 54 * @return mixed 55 */ 56 protected function getTextInputLabel($lng) 57 { 58 return $lng->txt('tst_sol_comp_expressions'); 59 } 60 61 /** 62 * @param $lng 63 * @return mixed 64 */ 65 protected function getPointsInputLabel($lng) 66 { 67 return $lng->txt('tst_comp_points'); 68 } 69 70 /** 71 * @return string 72 */ 73 protected function getTemplate() 74 { 75 return "tpl.prop_lac_expression_input.html"; 76 } 77 78 protected function sanitizeSuperGlobalSubmitValue() 79 { 80 if (isset($_POST[$this->getPostVar()]) && is_array($_POST[$this->getPostVar()])) { 81 $_POST[$this->getPostVar()] = ilUtil::stripSlashesRecursive($_POST[$this->getPostVar()], false); 82 } 83 } 84} 85