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