ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilEvaluationAllTableGUI.php
Go to the documentation of this file.
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
17{
18 protected $anonymity;
19
26
27 public function __construct($a_parent_obj, $a_parent_cmd, $anonymity = false, $offeringQuestionHintsEnabled = false)
28 {
29 global $ilCtrl, $lng;
30
31 $this->setId("tst_eval_all");
32 parent::__construct($a_parent_obj, $a_parent_cmd);
33
34 $this->lng = $lng;
35 $this->ctrl = $ilCtrl;
36 $this->setFormName('evaluation_all');
37 $this->setStyle('table', 'fullwidth');
38 $this->addColumn($lng->txt("name"), "name", "");
39 $this->addColumn($lng->txt("login"), "login", "");
40
41 $this->anonymity = $anonymity;
42 $this->offeringQuestionHintsEnabled = $offeringQuestionHintsEnabled;
43
44 if (!$this->anonymity)
45 {
46 foreach ($this->getSelectedColumns() as $c)
47 {
48 if (strcmp($c, 'gender') == 0) $this->addColumn($this->lng->txt("gender"),'gender', '');
49 if (strcmp($c, 'email') == 0) $this->addColumn($this->lng->txt("email"),'email', '');
50 if (strcmp($c, 'institution') == 0) $this->addColumn($this->lng->txt("institution"),'institution', '');
51 if (strcmp($c, 'street') == 0) $this->addColumn($this->lng->txt("street"),'street', '');
52 if (strcmp($c, 'city') == 0) $this->addColumn($this->lng->txt("city"),'city', '');
53 if (strcmp($c, 'zipcode') == 0) $this->addColumn($this->lng->txt("zipcode"),'zipcode', '');
54
55 if( $this->isFieldEnabledEnoughByAdministration('country') && $c == 'country' )
56 {
57 $this->addColumn($this->lng->txt("country"),'country', '');
58 }
59
60 if( $this->isFieldEnabledEnoughByAdministration('sel_country') && $c == 'sel_country' )
61 {
62 $this->addColumn($this->lng->txt("country"),'sel_country', '');
63 }
64
65 if (strcmp($c, 'department') == 0) $this->addColumn($this->lng->txt("department"),'department', '');
66 if (strcmp($c, 'matriculation') == 0) $this->addColumn($this->lng->txt("matriculation"),'matriculation', '');
67 }
68 }
69
70 $this->addColumn($lng->txt("tst_reached_points"), "reached", "");
71
72 if( $this->offeringQuestionHintsEnabled )
73 {
74 $this->addColumn($lng->txt("tst_question_hints_requested_hint_count_header"), "hint_count", "");
75 }
76
77 $this->addColumn($lng->txt("tst_mark"), "mark", "");
78
79 if ($this->parent_obj->object->getECTSOutput())
80 {
81 foreach ($this->getSelectedColumns() as $c)
82 {
83 if (strcmp($c, 'ects_grade') == 0) $this->addColumn($this->lng->txt("ects_grade"),'ects_grade', '');
84 }
85 }
86 $this->addColumn($lng->txt("tst_answered_questions"), "answered", "");
87 $this->addColumn($lng->txt("working_time"), "working_time", "");
88 $this->addColumn($lng->txt("detailed_evaluation"), "details", "");
89
90 $this->setFormAction($this->ctrl->getFormAction($a_parent_obj, $a_parent_cmd));
91 $this->setRowTemplate("tpl.table_evaluation_all.html", "Modules/Test");
92 $this->setDefaultOrderField("name");
93 $this->setDefaultOrderDirection("asc");
94 $this->enable('sort');
95 $this->enable('header');
96
97 $this->setFilterCommand('filterEvaluation');
98 $this->setResetCommand('resetfilterEvaluation');
99 $this->initFilter();
100
101 if($this->isFieldEnabledEnoughByAdministration('sel_country'))
102 {
103 $this->lng->loadLanguageModule('meta');
104 }
105 }
106
112 function numericOrdering($a_field)
113 {
114 switch ($a_field)
115 {
116 case 'name':
117 if ($this->anonymity)
118 {
119 return true;
120 }
121 else
122 {
123 return false;
124 }
125 break;
126 case 'reached':
127 case 'hint_count':
128 case 'answered':
129 return true;
130 break;
131 default:
132 return false;
133 break;
134 }
135 }
136
138 {
139 global $lng;
140 if (!$this->anonymity)
141 {
142 $cols["gender"] = array(
143 "txt" => $lng->txt("gender"),
144 "default" => false
145 );
146 $cols["email"] = array(
147 "txt" => $lng->txt("email"),
148 "default" => false
149 );
150 $cols["institution"] = array(
151 "txt" => $lng->txt("institution"),
152 "default" => false
153 );
154 $cols["street"] = array(
155 "txt" => $lng->txt("street"),
156 "default" => false
157 );
158 $cols["city"] = array(
159 "txt" => $lng->txt("city"),
160 "default" => false
161 );
162 $cols["zipcode"] = array(
163 "txt" => $lng->txt("zipcode"),
164 "default" => false
165 );
166 if( $this->isFieldEnabledEnoughByAdministration('country') )
167 {
168 $cols["country"] = array(
169 "txt" => $lng->txt("country"),
170 "default" => false
171 );
172 }
173 if( $this->isFieldEnabledEnoughByAdministration('sel_country') )
174 {
175 $cols["sel_country"] = array(
176 "txt" => $lng->txt("country"),
177 "default" => false
178 );
179 }
180 $cols["department"] = array(
181 "txt" => $lng->txt("department"),
182 "default" => false
183 );
184 $cols["matriculation"] = array(
185 "txt" => $lng->txt("matriculation"),
186 "default" => false
187 );
188 }
189 if ($this->parent_obj->object->getECTSOutput())
190 {
191 $cols["ects_grade"] = array(
192 "txt" => $lng->txt("ects_grade"),
193 "default" => false
194 );
195 }
196 return $cols;
197 }
198
202 function initFilter()
203 {
204 global $lng, $rbacreview, $ilUser;
205
206 // name
207 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
208 $ti = new ilTextInputGUI($lng->txt("name"), "name");
209 $ti->setMaxLength(64);
210 $ti->setValidationRegexp('/^[^%]+$/is');
211 $ti->setSize(20);
212 $this->addFilterItem($ti);
213 $ti->readFromSession();
214 $this->filter["name"] = $ti->getValue();
215
216 // group
217 $ti = new ilTextInputGUI($lng->txt("grp"), "group");
218 $ti->setMaxLength(64);
219 $ti->setValidationRegexp('/^[^%]+$/is');
220 $ti->setSize(20);
221 $this->addFilterItem($ti);
222 $ti->readFromSession();
223 $this->filter["group"] = $ti->getValue();
224
225 // course
226 $ti = new ilTextInputGUI($lng->txt("course"), "course");
227 $ti->setMaxLength(64);
228 $ti->setSize(20);
229 $ti->setValidationRegexp('/^[^%]+$/is');
230 $this->addFilterItem($ti);
231 $ti->readFromSession();
232 $this->filter["course"] = $ti->getValue();
233
234 // passed tests
235 include_once("./Services/Form/classes/class.ilCheckboxInputGUI.php");
236 $si = new ilCheckboxInputGUI($this->lng->txt("passed_only"), "passed_only");
237// $si->setOptionTitle();
238 $this->addFilterItem($si);
239 $si->readFromSession();
240 $this->filter["passedonly"] = $si->getValue();
241 }
242
247 protected function fillRow($data)
248 {
249 $this->tpl->setVariable("NAME", $data['name']);
250 $this->tpl->setVariable("LOGIN", $data['login']);
251 foreach ($this->getSelectedColumns() as $c)
252 {
253 if (!$this->anonymity)
254 {
255 if (strcmp($c, 'gender') == 0)
256 {
257 $this->tpl->setCurrentBlock('gender');
258 $this->tpl->setVariable("GENDER", $this->lng->txt('gender_' . $data['gender']));
259 $this->tpl->parseCurrentBlock();
260 }
261 if (strcmp($c, 'email') == 0)
262 {
263 $this->tpl->setCurrentBlock('email');
264 $this->tpl->setVariable("EMAIL", strlen($data['email']) ? $data['email'] : '&nbsp;');
265 $this->tpl->parseCurrentBlock();
266 }
267 if (strcmp($c, 'institution') == 0)
268 {
269 $this->tpl->setCurrentBlock('institution');
270 $this->tpl->setVariable("INSTITUTION", strlen($data['institution']) ? $data['institution'] : '&nbsp;');
271 $this->tpl->parseCurrentBlock();
272 }
273 if (strcmp($c, 'street') == 0)
274 {
275 $this->tpl->setCurrentBlock('street');
276 $this->tpl->setVariable("STREET", strlen($data['street']) ? $data['street'] : '&nbsp;');
277 $this->tpl->parseCurrentBlock();
278 }
279 if (strcmp($c, 'city') == 0)
280 {
281 $this->tpl->setCurrentBlock('city');
282 $this->tpl->setVariable("CITY", strlen($data['city']) ? $data['city'] : '&nbsp;');
283 $this->tpl->parseCurrentBlock();
284 }
285 if (strcmp($c, 'zipcode') == 0)
286 {
287 $this->tpl->setCurrentBlock('zipcode');
288 $this->tpl->setVariable("ZIPCODE", strlen($data['zipcode']) ? $data['zipcode'] : '&nbsp;');
289 $this->tpl->parseCurrentBlock();
290 }
291 if( $this->isFieldEnabledEnoughByAdministration('country') && $c == 'country' )
292 {
293 $this->tpl->setCurrentBlock('country');
294 $this->tpl->setVariable("COUNTRY", strlen($data['country']) ? $data['country'] : '&nbsp;');
295 $this->tpl->parseCurrentBlock();
296 }
297 if( $this->isFieldEnabledEnoughByAdministration('sel_country') && $c == 'sel_country' )
298 {
299 $this->tpl->setCurrentBlock('country');
300 $this->tpl->setVariable("COUNTRY", strlen($data['sel_country']) ? $this->getCountryTranslation($data['sel_country']) : '&nbsp;');
301 $this->tpl->parseCurrentBlock();
302 }
303 if (strcmp($c, 'department') == 0)
304 {
305 $this->tpl->setCurrentBlock('department');
306 $this->tpl->setVariable("DEPARTMENT", strlen($data['department']) ? $data['department'] : '&nbsp;');
307 $this->tpl->parseCurrentBlock();
308 }
309 if (strcmp($c, 'matriculation') == 0)
310 {
311 $this->tpl->setCurrentBlock('matriculation');
312 $this->tpl->setVariable("MATRICULATION", strlen($data['matriculation']) ? $data['matriculation'] : '&nbsp;');
313 $this->tpl->parseCurrentBlock();
314 }
315 }
316 if ($this->parent_obj->object->getECTSOutput())
317 {
318 if (strcmp($c, 'ects_grade') == 0)
319 {
320 $this->tpl->setCurrentBlock('ects_grade');
321 $this->tpl->setVariable("ECTS_GRADE", $data['ects_grade']);
322 $this->tpl->parseCurrentBlock();
323 }
324 }
325 }
326 $this->tpl->setVariable("REACHED", $data['reached'] . " " . strtolower($this->lng->txt("of")) . " " . $data['max']);
327
328 if( $this->offeringQuestionHintsEnabled )
329 {
330 $this->tpl->setVariable("HINT_COUNT", $data['hint_count']);
331 }
332
333 $data['answered'] = $data['questions_worked_through'] . " " . strtolower($this->lng->txt("of")) . " " . $data['number_of_questions'] . " (" . sprintf("%2.2f", $data['answered']) . " %" . ")";
334
335 $this->tpl->setVariable("MARK", $data['mark']);
336 $this->tpl->setVariable("ANSWERED", $data['answered']);
337 $this->tpl->setVariable("WORKING_TIME", $data['working_time']);
338 $this->tpl->setVariable("DETAILED", $data['details']);
339 }
340
342 {
343 $scol = parent::getSelectedColumns();
344
345 $cols = $this->getSelectableColumns();
346 if (!is_array($cols)) {
347 $cols = array();
348 }
349
350 $fields_to_unset = array_diff(array_keys($scol), array_keys($cols));
351
352 foreach($fields_to_unset as $key) {
353 unset($scol[$key]);
354 }
355
356 return $scol;
357 }
358
359 protected function getCountryTranslation($countryCode)
360 {
361 return $this->lng->txt('meta_c_'.$countryCode);
362 }
363
364 protected function isFieldEnabledEnoughByAdministration($fieldIdentifier)
365 {
366 global $ilSetting;
367
368 if( $ilSetting->get("usr_settings_hide_".$fieldIdentifier) ) // visible
369 {
370 return false;
371 }
372
373 if( !$ilSetting->get('usr_settings_visib_reg_'.$fieldIdentifier) ) // visib_reg
374 {
375 return false;
376 }
377
378 if( !$ilSetting->get('usr_settings_visib_lua_'.$fieldIdentifier) ) // visib_lua
379 {
380 return false;
381 }
382
383 if ( $ilSetting->get("usr_settings_disable_".$fieldIdentifier) ) // changeable
384 {
385 return false;
386 }
387
388 if( !$ilSetting->get('usr_settings_changeable_lua_'.$fieldIdentifier) ) // changeable_lua
389 {
390 return false;
391 }
392
393 return true;
394 }
395}
396?>
This class represents a checkbox property in a property form.
TableGUI class for evaluation of all users.
getSelectedColumns()
Get selected columns.
__construct($a_parent_obj, $a_parent_cmd, $anonymity=false, $offeringQuestionHintsEnabled=false)
numericOrdering($a_field)
Should this field be sorted numeric?
isFieldEnabledEnoughByAdministration($fieldIdentifier)
getSelectableColumns()
Get selectable columns.
fillRow($data)
Standard Version of Fill Row.
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.
setResetCommand($a_val, $a_caption=null)
Set reset filter command.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
setFormName($a_formname)
Set Form name.
addFilterItem($a_input_item, $a_optional=false)
Add filter item.
setDefaultOrderField($a_defaultorderfield)
Set Default order field.
setId($a_val)
Set id.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
setDefaultOrderDirection($a_defaultorderdirection)
Set Default order direction.
setFilterCommand($a_val, $a_caption=null)
Set filter command.
setStyle($a_element, $a_style)
enable($a_module_name)
enables particular modules of table
This class represents a text property in a property form.
global $ilCtrl
Definition: ilias.php:18
global $lng
Definition: privfeed.php:40
global $ilSetting
Definition: privfeed.php:40
global $ilUser
Definition: imgupload.php:15