ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilTestToplistGUI.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Modules/Test/classes/inc.AssessmentConstants.php';
5require_once 'Modules/Test/classes/class.ilTestTopList.php';
6require_once 'Services/Table/classes/class.ilTable2GUI.php';
7
15{
17 protected $object;
18
22 protected $toplist;
23
27 public function __construct(ilObjTestGUI $a_object)
28 {
29 $this->object = $a_object->object;
30 $this->toplist = new ilTestTopList($a_object->object);
31 }
32
33 public function executeCommand()
34 {
40 global $ilCtrl, $ilTabs, $lng;
41
42 if(!$this->object->getHighscoreEnabled())
43 {
44 ilUtil::sendFailure($lng->txt('permission_denied'), true);
45 $ilCtrl->redirectByClass('ilObjTestGUI');
46 }
47
48 $cmd = $ilCtrl->getCmd();
49
50 $ilCtrl->saveParameter($this, 'active_id');
51
52 switch($cmd)
53 {
54 case 'showResultsToplistByTime':
55 $this->manageTabs($ilTabs, $ilCtrl, $lng, 'toplist_by_time');
57 break;
58
59 case 'showResultsToplistByScore':
60 default:
61 $this->manageTabs($ilTabs, $ilCtrl, $lng, 'toplist_by_score');
63 }
64 }
65
66 protected function manageTabs(ilTabsGUI $tabsGUI, ilCtrl $ctrl, ilLanguage $lng, $activeTabId)
67 {
68 $tabsGUI->clearTargets();
69
70 $tabsGUI->setBackTarget(
71 $lng->txt('tst_results_back_introduction'), $ctrl->getLinkTargetByClass('ilObjTestGUI', 'infoScreen')
72 );
73
74 $tabsGUI->addTab(
75 'toplist_by_score', $lng->txt('toplist_by_score'), $ctrl->getLinkTarget($this, 'showResultsToplistByScore')
76 );
77
78 $tabsGUI->addTab(
79 'toplist_by_time', $lng->txt('toplist_by_time'), $ctrl->getLinkTarget($this, 'showResultsToplistByTime')
80 );
81
82 $tabsGUI->setTabActive($activeTabId);
83 }
84
85 public function showResultsToplistByScore()
86 {
87 global $ilUser, $lng, $tpl;
88
89 $html = '';
90
91 if($this->object->getHighscoreMode() != ilObjTest::HIGHSCORE_SHOW_OWN_TABLE)
92 {
93 $table_gui = new ilTable2GUI($this);
94 $this->prepareTable($table_gui);
95
96 $data = $this->toplist->getGeneralToplistByPercentage($_GET['ref_id'], $ilUser->getId());
97
98 $table_gui->setRowTemplate('tpl.toplist_tbl_rows.html', 'Modules/Test');
99 $table_gui->setData($data);
100 $table_gui->setTitle(sprintf($lng->txt('toplist_top_n_results'), $this->object->getHighscoreTopNum()));
101
102 $html .= $table_gui->getHTML();
103 }
104
105 if($this->object->getHighscoreMode() != ilObjTest::HIGHSCORE_SHOW_TOP_TABLE)
106 {
107 $table_gui2 = new ilTable2GUI($this);
108
109 $this->prepareTable($table_gui2);
110
111 $data2 = $this->toplist->getUserToplistByPercentage($_GET['ref_id'], $ilUser->getID());
112
113 $table_gui2->setRowTemplate('tpl.toplist_tbl_rows.html', 'Modules/Test');
114 $table_gui2->setData($data2);
115 $table_gui2->setTitle($lng->txt('toplist_your_result'));
116
117 $html .= $table_gui2->getHTML();
118 }
119
120 $tpl->setVariable("ADM_CONTENT", $html);
121 }
122
123 public function showResultsToplistByTime()
124 {
125 global $ilUser, $lng, $tpl;
126
127 $html = '';
128
129 if($this->object->getHighscoreMode() != ilObjTest::HIGHSCORE_SHOW_OWN_TABLE)
130 {
131 $table_gui = new ilTable2GUI($this);
132 $this->prepareTable($table_gui);
133
134 $data = $this->toplist->getGeneralToplistByWorkingtime($_GET['ref_id'], $ilUser->getId());
135
136 $table_gui->setRowTemplate('tpl.toplist_tbl_rows.html', 'Modules/Test');
137 $table_gui->setData($data);
138 $table_gui->setTitle(sprintf($lng->txt('toplist_top_n_results'), $this->object->getHighscoreTopNum()));
139
140 $html .= $table_gui->getHTML();
141 }
142
143 if($this->object->getHighscoreMode() != ilObjTest::HIGHSCORE_SHOW_TOP_TABLE)
144 {
145 $table_gui2 = new ilTable2GUI($this);
146
147 $this->prepareTable($table_gui2);
148
149 $data2 = $this->toplist->getUserToplistByWorkingtime($_GET['ref_id'], $ilUser->getID());
150
151 $table_gui2->setRowTemplate('tpl.toplist_tbl_rows.html', 'Modules/Test');
152 $table_gui2->setData($data2);
153 $table_gui2->setTitle($lng->txt('toplist_your_result'));
154
155 $html .= $table_gui2->getHTML();
156 }
157
158 $tpl->setVariable("ADM_CONTENT", $html);
159
160 }
161
165 private function prepareTable(ilTable2GUI $table_gui)
166 {
167 global $lng;
168
169 $table_gui->addColumn($lng->txt('toplist_col_rank'));
170 $table_gui->addColumn($lng->txt('toplist_col_participant'));
171 if($this->object->getHighscoreAchievedTS())
172 {
173 $table_gui->addColumn($lng->txt('toplist_col_achieved'));
174 }
175
176 if($this->object->getHighscoreScore())
177 {
178 $table_gui->addColumn($lng->txt('toplist_col_score'));
179 }
180
181 if($this->object->getHighscorePercentage())
182 {
183 $table_gui->addColumn($lng->txt('toplist_col_percentage'));
184 }
185
186 if($this->object->getHighscoreHints())
187 {
188 $table_gui->addColumn($lng->txt('toplist_col_hints'));
189 }
190
191 if($this->object->getHighscoreWTime())
192 {
193 $table_gui->addColumn($lng->txt('toplist_col_wtime'));
194 }
195 $table_gui->setEnableNumInfo(false);
196 $table_gui->setLimit(10);
197 }
198}
global $tpl
Definition: ilias.php:8
$_GET["client_id"]
This class provides processing control methods.
getLinkTargetByClass($a_class, $a_cmd="", $a_anchor="", $a_asynch=false, $xml_style=true)
Get link target for command using gui class name.
getLinkTarget(&$a_gui_obj, $a_cmd="", $a_anchor="", $a_asynch=false, $xml_style=true)
Get link target for command using gui object.
language handling
Class ilObjTestGUI.
const HIGHSCORE_SHOW_OWN_TABLE
const HIGHSCORE_SHOW_TOP_TABLE
Class ilTable2GUI.
addColumn($a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setEnableNumInfo($a_val)
Set enable num info.
setLimit($a_limit=0, $a_default_limit=0)
set max.
Tabs GUI.
clearTargets()
clear all targets
setTabActive($a_id)
DEPRECATED.
setBackTarget($a_title, $a_target, $a_frame="")
back target for upper context
addTab($a_id, $a_text, $a_link, $a_frame="")
Add a Tab.
Class ilTestTopList.
Scoring class for tests.
prepareTable(ilTable2GUI $table_gui)
manageTabs(ilTabsGUI $tabsGUI, ilCtrl $ctrl, ilLanguage $lng, $activeTabId)
__construct(ilObjTestGUI $a_object)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$html
Definition: example_001.php:87
$data
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40
$cmd
Definition: sahs_server.php:35
global $ilUser
Definition: imgupload.php:15