ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
class.ilTestSettingsTemplateConfig.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 'Services/Administration/classes/class.ilSettingsTemplateConfig.php';
5require_once 'Modules/Test/classes/inc.AssessmentConstants.php';
6
14{
18 protected $lng;
19
23 public function __construct(ilLanguage $lng)
24 {
25 $this->lng = $lng;
26 parent::__construct('tst');
27 }
28
29 public function init()
30 {
31 $this->initLanguage();
32 $this->initHidableTabs();
33 $this->initSettings();
34 }
35
36 private function initLanguage()
37 {
38 $this->lng->loadLanguageModule("tst");
39 $this->lng->loadLanguageModule("assessment");
40 }
41
42 private function initHidableTabs()
43 {
44 $this->addHidableTab("questions", $this->lng->txt('assQuestions').' - '.$this->lng->txt('edit_test_questions'));
45 $this->addHidableTab("mark_schema", $this->lng->txt('settings').' - '.$this->lng->txt("mark_schema"));
46 $this->addHidableTab("certificate", $this->lng->txt('settings').' - '.$this->lng->txt("certificate"));
47 $this->addHidableTab("defaults", $this->lng->txt('settings').' - '.$this->lng->txt("tst_default_settings"));
48
49 $this->addHidableTab("learning_progress", $this->lng->txt("learning_progress"));
50 $this->addHidableTab("manscoring", $this->lng->txt("manscoring"));
51 $this->addHidableTab("statistics", $this->lng->txt("statistics"));
52 $this->addHidableTab("history", $this->lng->txt("history"));
53 $this->addHidableTab("meta_data", $this->lng->txt("meta_data"));
54 $this->addHidableTab("export", $this->lng->txt("export"));
55 $this->addHidableTab("permissions", $this->lng->txt("permission"));
56 }
57
58 private function initSettings()
59 {
63 $this->addTestRunProperties();
71 }
72
73 private function addGeneralPropertySettings()
74 {
75 $this->addSetting(
76 "use_pool",
78 $this->lng->txt("test_question_pool_usage"),
79 true,
80 0,
81 array(
82 1 => $this->lng->txt('test_question_pool_usage_optional'),
83 0 => $this->lng->txt('test_question_pool_usage_tst_directly')
84 )
85 );
86
87 $this->addSetting(
88 "question_set_type",
90 $this->lng->txt("tst_question_set_type"),
91 true,
92 0,
93 array(
94 ilObjTest::QUESTION_SET_TYPE_FIXED => $this->lng->txt("tst_question_set_type_fixed"),
95 ilObjTest::QUESTION_SET_TYPE_RANDOM => $this->lng->txt("tst_question_set_type_random"),
96 ilObjTest::QUESTION_SET_TYPE_DYNAMIC => $this->lng->txt("tst_question_set_type_dynamic"),
97 )
98 );
99 }
100
101 private function addTestIntroProperties()
102 {
103 // Test Introduction
104 $this->addSetting(
105 "intro_enabled",
107 $this->lng->txt("tst_introduction"),
108 false
109 );
110
111 // All Details on Info Screen
112 $this->addSetting(
113 "showinfo",
115 $this->lng->txt("showinfo"),
116 true
117 );
118 }
119
120 private function addTestAccessProperties()
121 {
122 $this->addSetting(
123 "chb_starting_time",
125 $this->lng->txt("tst_starting_time"),
126 false
127 );
128
129 $this->addSetting(
130 "chb_ending_time",
132 $this->lng->txt("tst_ending_time"),
133 false
134 );
135
136 $this->addSetting(
137 "password_enabled",
139 $this->lng->txt("tst_password"),
140 false
141 );
142
143 $this->addSetting(
144 "fixedparticipants",
146 $this->lng->txt("participants_invitation"),
147 true
148 );
149
150 $this->addSetting(
151 "limitUsers",
153 $this->lng->txt("tst_allowed_users"),
154 false
155 );
156 }
157
158 private function addTestRunProperties()
159 {
160 $this->addSetting(
161 "nr_of_tries",
163 $this->lng->txt("tst_nr_of_tries"),
164 false,
165 3
166 );
167
168 $this->addSetting(
169 "chb_processing_time",
171 $this->lng->txt("tst_processing_time"),
172 false
173 );
174
175 $this->addSetting(
176 "kiosk",
178 $this->lng->txt("kiosk"),
179 false
180 );
181
182 $this->addSetting(
183 "examid_in_test_pass",
185 $this->lng->txt("examid_in_test_pass"),
186 false
187 );
188 }
189
191 {
192 $this->addSetting(
193 "title_output",
195 $this->lng->txt("tst_title_output"),
196 true,
197 0,
198 array(
199 '0' => $this->lng->txt("tst_title_output_full"),
200 '1' => $this->lng->txt("tst_title_output_hide_points"),
201 '2' => $this->lng->txt("tst_title_output_no_title"),
202 )
203 );
204
205 $this->addSetting(
206 "autosave",
208 $this->lng->txt("autosave"),
209 true,
210 5
211 );
212
213 $this->addSetting(
214 "chb_shuffle_questions",
216 $this->lng->txt("tst_shuffle_questions"),
217 true
218 );
219
220 $this->addSetting(
221 "offer_hints",
223 $this->lng->txt("tst_setting_offer_hints_label"),
224 true
225 );
226
227 $this->addSetting(
228 "instant_feedback",
230 $this->lng->txt("tst_instant_feedback"),
231 true,
232 0,
233 array(
234 'instant_feedback_points' => $this->lng->txt("tst_instant_feedback_results"),
235 'instant_feedback_generic' => $this->lng->txt("tst_instant_feedback_answer_generic"),
236 'instant_feedback_specific' => $this->lng->txt("tst_instant_feedback_answer_specific"),
237 'instant_feedback_solution' => $this->lng->txt("tst_instant_feedback_solution"),
238 'instant_feedback_answer_fixation' => $this->lng->txt("tst_instant_feedback_fix_usr_answer")
239 )
240 );
241
242 $this->addSetting(
243 "obligations_enabled",
245 $this->lng->txt("tst_setting_enable_obligations_label"),
246 true
247 );
248 }
249
250 private function addTestSequenceProperties()
251 {
252 $this->addSetting(
253 "chb_use_previous_answers",
255 $this->lng->txt("tst_use_previous_answers"),
256 true
257 );
258
259 $this->addSetting(
260 "chb_show_cancel",
262 $this->lng->txt("tst_show_cancel"),
263 true
264 );
265
266 $this->addSetting(
267 "chb_postpone",
269 $this->lng->txt("tst_postpone"),
270 true
271 );
272
273 $this->addSetting(
274 "list_of_questions",
276 $this->lng->txt("tst_show_summary"),
277 false
278 );
279
280 $this->addSetting(
281 "chb_show_marker",
283 $this->lng->txt("question_marking"),
284 true
285 );
286 }
287
288 private function addTestFinishProperties()
289 {
290 $this->addSetting(
291 "enable_examview",
293 $this->lng->txt("enable_examview"),
294 false
295 );
296
297 $this->addSetting(
298 "showfinalstatement",
300 $this->lng->txt("final_statement"),
301 false
302 );
303
304 /* $this->addSetting(
305 "redirection_enabled",
306 ilSettingsTemplateConfig::SELECT,
307 $this->lng->txt("redirect_after_finishing_tst"),
308 false,
309 0,
310 array(
311 REDIRECT_NONE => $this->lng->txt("redirect_none"),
312 REDIRECT_ALWAYS => $this->lng->txt("redirect_always"),
313 REDIRECT_KIOSK => $this->lng->txt("redirect_in_kiosk_mode"),
314 )
315 ); */
316 $this->addSetting(
317 "redirection_enabled",
319 $this->lng->txt("redirect_after_finishing_tst"),
320 false
321 );
322
323 $this->addSetting(
324 "sign_submission",
326 $this->lng->txt("sign_submission"),
327 true
328 );
329
330 $this->addSetting(
331 "mailnotification",
333 $this->lng->txt("tst_finish_notification"),
334 false,
335 0,
336 array(
337 '0' => $this->lng->txt("tst_finish_notification_no"),
338 '1' => $this->lng->txt("tst_finish_notification_simple"),
339 '2' => $this->lng->txt("tst_finish_notification_advanced"),
340 )
341 );
342 }
343
345 {
346 $this->addSetting(
347 "count_system",
349 $this->lng->txt("tst_text_count_system"),
350 true,
351 0,
352 array(
353 '0' => $this->lng->txt("tst_count_partial_solutions"),
354 '1' => $this->lng->txt("tst_count_correct_solutions")
355 )
356 );
357
358 $this->addSetting(
359 "mc_scoring",
361 $this->lng->txt("tst_score_mcmr_questions"),
362 true,
363 0,
364 array(
365 '0' => $this->lng->txt("tst_score_mcmr_zero_points_when_unanswered"),
366 '1' => $this->lng->txt("tst_score_mcmr_use_scoring_system")
367 )
368 );
369
370 $this->addSetting(
371 "score_cutting",
373 $this->lng->txt("tst_score_cutting"),
374 true,
375 0,
376 array(
377 '0' => $this->lng->txt("tst_score_cut_question"),
378 '1' => $this->lng->txt("tst_score_cut_test")
379 )
380 );
381
382 $this->addSetting(
383 "pass_scoring",
385 $this->lng->txt("tst_pass_scoring"),
386 true,
387 0,
388 array(
389 '0' => $this->lng->txt("tst_pass_last_pass"),
390 '1' => $this->lng->txt("tst_pass_best_pass")
391 )
392 );
393
394 $this->addSetting(
395 "pass_deletion_allowed",
397 $this->lng->txt("tst_pass_deletion"),
398 true,
399 0,
400 array(
401 '0' => $this->lng->txt("tst_pass_deletion_not_allowed"),
402 '1' => $this->lng->txt("tst_pass_deletion_allowed")
403 )
404 );
405 }
406
407 private function addResultSummaryProperties()
408 {
409 $this->addSetting(
410 "results_access_enabled",
412 $this->lng->txt("tst_results_access_enabled"),
413 false,
414 0,
415 array(
416 '0' => $this->lng->txt("tst_results_access_never"),
417 '2' => $this->lng->txt("tst_results_access_always"),
418 '1' => $this->lng->txt("tst_results_access_finished"),
419 '3' => $this->lng->txt("tst_results_access_date")
420 )
421 );
422
423 $this->addSetting(
424 "grading_status",
426 $this->lng->txt("tst_results_grading_opt_show_status"),
427 true
428 );
429
430 $this->addSetting(
431 "grading_mark",
433 $this->lng->txt("tst_results_grading_opt_show_mark"),
434 true
435 );
436 }
437
438 private function addResultDetailsProperties()
439 {
440 $this->addSetting(
441 "solution_details",
443 $this->lng->txt("tst_show_solution_details"),
444 false
445 );
446
447 $this->addSetting(
448 "solution_feedback",
450 $this->lng->txt("tst_show_solution_feedback"),
451 true
452 );
453
454 $this->addSetting(
455 "solution_suggested",
457 $this->lng->txt("tst_show_solution_suggested"),
458 true
459 );
460
461 $this->addSetting(
462 "solution_printview",
464 $this->lng->txt("tst_show_solution_printview"),
465 false
466 );
467
468 $this->addSetting(
469 "highscore_enabled",
471 $this->lng->txt("tst_highscore_enabled"),
472 false
473 );
474
475 $this->addSetting(
476 "solution_signature",
478 $this->lng->txt("tst_show_solution_signature"),
479 true
480 );
481
482 $this->addSetting(
483 "examid_in_test_res",
485 $this->lng->txt("examid_in_test_res"),
486 true
487 );
488
489 $this->addSetting(
490 "exp_sc_short",
492 $this->lng->txt("tst_exp_sc_short"),
493 true
494 );
495 }
496
498 {
499 $this->addSetting(
500 "anonymity",
502 $this->lng->txt("tst_anonymity"),
503 true,
504 0,
505 array(
506 '0' => $this->lng->txt("tst_anonymity_no_anonymization"),
507 '1' => $this->lng->txt("tst_anonymity_anonymous_test"),
508 )
509 );
510
511 $this->addSetting(
512 "enable_archiving",
514 $this->lng->txt("test_enable_archiving"),
515 true
516 );
517 }
518}
language handling
const QUESTION_SET_TYPE_DYNAMIC
type setting value for dynamic question set (continues testing mode)
const QUESTION_SET_TYPE_RANDOM
type setting value for random question set
const QUESTION_SET_TYPE_FIXED
type setting value for fixed question set
Settings template config class.
addSetting($a_id, $a_type, $a_text, $a_hidable, $a_length=0, $a_options=array())
Add setting.
addHidableTab($a_tab_id, $a_text)
Add hidable tabs.