1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4
5include_once('./Services/Table/classes/class.ilTable2GUI.php');
6
7/**
8 * @author  Helmut Schottmüller <ilias@aurealis.de>
9 * @version $Id$
10 * @ingroup ModulesTest
11 */
12class ilTestAverageReachedPointsTableGUI extends ilTable2GUI
13{
14    /**
15     * Constructor
16     * @access public
17     * @param
18     * @return
19     */
20    public function __construct($a_parent_obj, $a_parent_cmd)
21    {
22        $this->setId('tstAvgReachedPointsTbl');
23        $this->setPrefix('tstAvgReachedPointsTbl');
24
25        parent::__construct($a_parent_obj, $a_parent_cmd);
26
27        global $DIC;
28        $lng = $DIC['lng'];
29        $ilCtrl = $DIC['ilCtrl'];
30
31        $this->lng = $lng;
32        $this->ctrl = $ilCtrl;
33
34        $this->setFormName('average_reached_points');
35        $this->setTitle($this->lng->txt('average_reached_points'));
36        $this->setStyle('table', 'fullwidth');
37        $this->addColumn($this->lng->txt("question_id"), 'qid', '');
38        $this->addColumn($this->lng->txt("question_title"), 'title', '');
39        $this->addColumn($this->lng->txt("points"), 'points', '');
40        $this->addColumn($this->lng->txt("percentage"), 'percentage', '');
41        $this->addColumn($this->lng->txt("number_of_answers"), 'answers', '');
42
43        $this->setRowTemplate("tpl.il_as_tst_average_reached_points_row.html", "Modules/Test");
44
45        $this->setFormAction($this->ctrl->getFormAction($a_parent_obj, $a_parent_cmd));
46
47        $this->setDefaultOrderField("title");
48        $this->setDefaultOrderDirection("asc");
49        $this->enable('sort');
50        $this->enable('header');
51        $this->disable('select_all');
52    }
53
54    /**
55     * Should this field be sorted numeric?
56     * @return    boolean        numeric ordering; default is false
57     */
58    public function numericOrdering($a_field)
59    {
60        switch ($a_field) {
61            case 'points':
62                return true;
63
64            case 'qid':
65                return true;
66
67            case 'percentage':
68                return true;
69
70            default:
71                return false;
72        }
73    }
74
75    /**
76     * fill row
77     * @access public
78     * @param
79     * @return
80     */
81    public function fillRow($data)
82    {
83        $this->tpl->setVariable("ID", $data["qid"]);
84        $this->tpl->setVariable("TITLE", $data["title"]);
85        $this->tpl->setVariable("POINTS", $this->formatPoints($data));
86        $this->tpl->setVariable("PERCENTAGE", sprintf("%.2f", $data["percentage"]) . "%");
87        $this->tpl->setVariable("ANSWERS", $data["answers"]);
88    }
89
90    /**
91     * @param array $data
92     * @return string
93     */
94    protected function formatPoints(array $data)
95    {
96        return sprintf("%.2f", $data['points_reached']) . " " . strtolower($this->lng->txt("of")) . " " . sprintf("%.2f", $data['points_max']);
97    }
98}
99