ILIAS  Release_5_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
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 
4 require_once 'Services/Administration/classes/class.ilSettingsTemplateConfig.php';
5 require_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  {
61  $this->addTestIntroProperties();
62  $this->addTestAccessProperties();
63  $this->addTestRunProperties();
66  $this->addTestFinishProperties();
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 
344  private function addScoringOptionsProperties()
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 }