5 include_once
"./Modules/Test/classes/inc.AssessmentConstants.php";
6 include_once
"./Modules/Test/classes/class.ilTestServiceGUI.php";
41 $this->ref_id =
$_GET[
"ref_id"];
52 include_once(
"./Services/Tagging/classes/class.ilTaggingGUI.php");
54 $tagging_gui->setObject($this->object->getId(), $this->
object->getType());
55 $tagging_gui->saveInput();
56 $this->ctrl->redirectByClass(
"ilobjtestgui",
"infoScreen");
64 $cmd = $this->ctrl->getCmd();
65 $next_class = $this->ctrl->getNextClass($this);
66 $this->ctrl->saveParameter($this,
"sequence");
67 $this->ctrl->saveParameter($this,
"active_id");
68 if (preg_match(
"/^gotoquestion_(\\d+)$/",
$cmd, $matches))
70 $cmd =
"gotoquestion";
71 if (strlen($matches[1]))
73 $this->ctrl->setParameter($this,
'gotosequence', $matches[1]);
77 if (
$_GET[
"active_id"])
79 $this->
object->setTestSession(
$_GET[
"active_id"]);
83 $this->
object->setTestSession();
85 include_once
'Services/jQuery/classes/class.iljQueryUtil.php';
87 include_once
"./Services/YUI/classes/class.ilYuiUtil.php";
107 $this->
object->updateWorkingTime(
$_SESSION[
"active_time_id"]);
117 $this->saveResult = FALSE;
120 $formtimestamp =
$_POST[
"formtimestamp"];
121 if (strlen($formtimestamp) == 0) $formtimestamp =
$_GET[
"formtimestamp"];
122 if ($formtimestamp !=
$_SESSION[
"formtimestamp"])
124 $_SESSION[
"formtimestamp"] = $formtimestamp;
135 $q_id = $this->
object->getTestSequence()->getQuestionForSequence(
$_GET[
"sequence"]);
136 if (is_numeric($q_id))
140 $question_gui = $this->
object->createQuestionGUI(
"", $q_id);
141 if ($this->object->getJavaScriptOutput())
146 $active_id = $this->
object->getTestSession()->getActiveId();
147 if ($this->object->isRandomTest())
149 $pass = $this->
object->_getPass($active_id);
151 $this->saveResult = $question_gui->object->saveWorkingData($active_id,
$pass);
158 if ($this->saveResult == FALSE)
160 $this->ctrl->setParameter($this,
"save_error",
"1");
188 $this->ctrl->redirectByClass(
"ilobjtestgui",
"infoScreen");
202 $active_id = $this->
object->getTestSession()->getActiveId();
203 $starting_time = $this->
object->getStartingTimeOfUser($active_id);
204 if ($starting_time === FALSE)
210 return $this->
object->isMaxProcessingTimeReached($starting_time);
222 $active_time_id = $this->
object->startWorkingTime($this->object->getTestSession()->getActiveId(), $this->
object->getTestSession()->getPass());
223 $_SESSION[
"active_time_id"] = $active_time_id;
225 include_once(
"./Services/Style/classes/class.ilObjStyleSheet.php");
226 $this->tpl->setCurrentBlock(
"ContentStyle");
227 $this->tpl->setVariable(
"LOCATION_CONTENT_STYLESHEET",
229 $this->tpl->parseCurrentBlock();
232 $this->tpl->setCurrentBlock(
"SyntaxStyle");
233 $this->tpl->setVariable(
"LOCATION_SYNTAX_STYLESHEET",
235 $this->tpl->parseCurrentBlock();
237 if ($this->object->getListOfQuestions())
239 $show_side_list = $ilUser->getPref(
'side_list_of_questions');
240 $this->tpl->setCurrentBlock(
'view_sidelist');
242 $this->tpl->setVariable(
'TEXT_SIDELIST', ($show_side_list) ? $this->lng->txt(
'tst_hide_side_list') : $this->lng->txt(
'tst_show_side_list'));
243 $this->tpl->parseCurrentBlock();
251 $question_gui = $this->
object->createQuestionGUI(
"", $this->object->getTestSequence()->getQuestionForSequence(
$sequence));
252 if ($this->object->getJavaScriptOutput())
257 $is_postponed = $this->
object->getTestSequence()->isPostponedQuestion($question_gui->object->getId());
258 $this->ctrl->setParameter($this,
"sequence",
"$sequence");
259 $formaction = $this->ctrl->getFormAction($this,
"gotoQuestion");
261 $question_gui->setSequenceNumber($this->object->getTestSequence()->getPositionOfSequence(
$sequence));
262 $question_gui->setQuestionCount($this->object->getTestSequence()->getUserQuestionCount());
264 $user_post_solution = FALSE;
265 if (array_key_exists(
"previouspost",
$_SESSION))
267 $user_post_solution =
$_SESSION[
"previouspost"];
270 $answer_feedback = FALSE;
271 if (($directfeedback) && ($this->object->getAnswerFeedback()))
273 $answer_feedback = TRUE;
275 global $ilNavigationHistory;
276 $ilNavigationHistory->addItem(
$_GET[
"ref_id"], $this->ctrl->getLinkTarget($this,
"resume"),
"tst");
277 $question_gui->outQuestionForTest($formaction, $this->object->getTestSession()->getActiveId(), NULL, $is_postponed, $user_post_solution, $answer_feedback);
280 if ($this->object->getInstantFeedbackSolution())
282 $solutionoutput = $question_gui->getSolutionOutput($this->object->getTestSession()->getActiveId(), NULL, FALSE, FALSE, FALSE, FALSE, TRUE);
283 $this->tpl->setCurrentBlock(
"solution_output");
284 $this->tpl->setVariable(
"CORRECT_SOLUTION", $this->lng->txt(
"tst_best_solution_is"));
285 $this->tpl->setVariable(
"QUESTION_FEEDBACK", $solutionoutput);
286 $this->tpl->parseCurrentBlock();
288 if ($this->object->getAnswerFeedbackPoints())
290 $this->tpl->setCurrentBlock(
"solution_output");
291 $this->tpl->setVariable(
"RECEIVED_POINTS_INFORMATION", sprintf($this->lng->txt(
"you_received_a_of_b_points"), $question_gui->object->calculateReachedPoints($this->object->getTestSession()->getActiveId(), NULL), $question_gui->object->getMaximumPoints()));
292 $this->tpl->parseCurrentBlock();
294 if ($this->object->getAnswerFeedback())
296 $this->tpl->setCurrentBlock(
"answer_feedback");
297 $this->tpl->setVariable(
"ANSWER_FEEDBACK", $question_gui->getAnswerFeedbackOutput($this->object->getTestSession()->getActiveId(), NULL));
298 $this->tpl->parseCurrentBlock();
302 if (
$sequence == $this->object->getTestSequence()->getFirstSequence())
304 $this->tpl->setCurrentBlock(
"prev");
305 $this->tpl->setVariable(
"BTN_PREV",
"<< " . $this->lng->txt(
"save_introduction"));
306 $this->tpl->parseCurrentBlock();
307 $this->tpl->setCurrentBlock(
"prev_bottom");
308 $this->tpl->setVariable(
"BTN_PREV",
"<< " . $this->lng->txt(
"save_introduction"));
309 $this->tpl->parseCurrentBlock();
313 $this->tpl->setCurrentBlock(
"prev");
314 $this->tpl->setVariable(
"BTN_PREV",
"<< " . $this->lng->txt(
"save_previous"));
315 $this->tpl->parseCurrentBlock();
316 $this->tpl->setCurrentBlock(
"prev_bottom");
317 $this->tpl->setVariable(
"BTN_PREV",
"<< " . $this->lng->txt(
"save_previous"));
318 $this->tpl->parseCurrentBlock();
321 if ($postpone_allowed)
327 $this->tpl->setCurrentBlock(
"postpone");
328 $this->tpl->setVariable(
"BTN_POSTPONE", $this->lng->txt(
"postpone"));
329 $this->tpl->parseCurrentBlock();
330 $this->tpl->setCurrentBlock(
"postpone_bottom");
331 $this->tpl->setVariable(
"BTN_POSTPONE", $this->lng->txt(
"postpone"));
332 $this->tpl->parseCurrentBlock();
337 if ($this->object->getListOfQuestions())
339 if (!(($finish) && ($this->object->getListOfQuestionsEnd())))
341 $this->tpl->setCurrentBlock(
"summary");
342 $this->tpl->setVariable(
"BTN_SUMMARY", $this->lng->txt(
"question_summary"));
343 $this->tpl->parseCurrentBlock();
344 $this->tpl->setCurrentBlock(
"summary_bottom");
345 $this->tpl->setVariable(
"BTN_SUMMARY", $this->lng->txt(
"question_summary"));
346 $this->tpl->parseCurrentBlock();
350 if ($this->object->getShowCancel())
352 $this->tpl->setCurrentBlock(
"cancel_test");
353 $this->tpl->setVariable(
"TEXT_CANCELTEST", $this->lng->txt(
"cancel_test"));
354 $this->tpl->setVariable(
"TEXT_ALTCANCELTEXT", $this->lng->txt(
"cancel_test"));
355 $this->tpl->setVariable(
"TEXT_TITLECANCELTEXT", $this->lng->txt(
"cancel_test"));
356 $this->tpl->setVariable(
"HREF_IMGCANCELTEST", $this->ctrl->getLinkTargetByClass(get_class($this),
"outIntroductionPage") .
"&cancelTest=true");
357 $this->tpl->setVariable(
"HREF_CANCELTEXT", $this->ctrl->getLinkTargetByClass(get_class($this),
"outIntroductionPage") .
"&cancelTest=true");
359 $this->tpl->parseCurrentBlock();
362 if ($this->object->getTestSequence()->getQuestionForSequence($this->object->getTestSequence()->getLastSequence()) == $question_gui->object->getId())
364 if ($this->object->getListOfQuestionsEnd())
366 $this->tpl->setCurrentBlock(
"next");
367 $this->tpl->setVariable(
"BTN_NEXT", $this->lng->txt(
"question_summary") .
" >>");
368 $this->tpl->parseCurrentBlock();
369 $this->tpl->setCurrentBlock(
"next_bottom");
370 $this->tpl->setVariable(
"BTN_NEXT", $this->lng->txt(
"question_summary") .
" >>");
371 $this->tpl->parseCurrentBlock();
375 $this->tpl->setCurrentBlock(
"next");
376 $this->tpl->setVariable(
"BTN_NEXT", $this->lng->txt(
"save_finish") .
" >>");
377 $this->tpl->parseCurrentBlock();
378 $this->tpl->setCurrentBlock(
"next_bottom");
379 $this->tpl->setVariable(
"BTN_NEXT", $this->lng->txt(
"save_finish") .
" >>");
380 $this->tpl->parseCurrentBlock();
385 $this->tpl->setCurrentBlock(
"next");
386 $this->tpl->setVariable(
"BTN_NEXT", $this->lng->txt(
"save_next") .
" >>");
387 $this->tpl->parseCurrentBlock();
388 $this->tpl->setCurrentBlock(
"next_bottom");
389 $this->tpl->setVariable(
"BTN_NEXT", $this->lng->txt(
"save_next") .
" >>");
390 $this->tpl->parseCurrentBlock();
393 if ($this->object->getShowMarker())
395 include_once
"./Modules/Test/classes/class.ilObjTest.php";
399 if (count ($solved_array) > 0)
401 $solved = array_pop($solved_array);
402 $solved = $solved[
"solved"];
407 $this->tpl->setCurrentBlock(
"ismarked");
409 $this->tpl->setVariable(
"TEXT_SET", $this->lng->txt(
"tst_remove_mark"));
410 $this->tpl->parseCurrentBlock();
414 $this->tpl->setCurrentBlock(
"isnotmarked");
416 $this->tpl->setVariable(
"TEXT_UNSET", $this->lng->txt(
"tst_question_mark"));
417 $this->tpl->parseCurrentBlock();
421 if ($this->object->getJavaScriptOutput())
424 $this->tpl->setVariable(
"JAVASCRIPT_IMAGE_ALT", $this->lng->txt(
"disable_javascript"));
425 $this->tpl->setVariable(
"JAVASCRIPT_IMAGE_TITLE", $this->lng->txt(
"disable_javascript"));
426 $this->ctrl->setParameter($this,
"tst_javascript",
"0");
427 $this->tpl->setVariable(
"JAVASCRIPT_URL", $this->ctrl->getLinkTarget($this,
"gotoQuestion"));
432 $this->tpl->setVariable(
"JAVASCRIPT_IMAGE_ALT", $this->lng->txt(
"enable_javascript"));
433 $this->tpl->setVariable(
"JAVASCRIPT_IMAGE_TITLE", $this->lng->txt(
"enable_javascript"));
434 $this->ctrl->setParameter($this,
"tst_javascript",
"1");
435 $this->tpl->setVariable(
"JAVASCRIPT_URL", $this->ctrl->getLinkTarget($this,
"gotoQuestion"));
438 if ($question_gui->object->supportsJavascriptOutput())
440 $this->tpl->touchBlock(
"jsswitch");
444 $this->tpl->setVariable(
"AUTOSAVE_URL", $this->ctrl->getFormAction($this,
"autosave",
"",
true));
454 $template =
new ilTemplate(
"tpl.il_as_tst_password_protection.html", TRUE, TRUE,
"Modules/Test");
455 $template->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this,
"checkPassword"));
456 $template->setVariable(
"PASSWORD_INTRODUCTION", $this->lng->txt(
"tst_password_introduction"));
457 $template->setVariable(
"TEXT_PASSWORD", $this->lng->txt(
"tst_password"));
458 $template->setVariable(
"SUBMIT", $this->lng->txt(
"submit"));
469 if (strcmp($this->object->getPassword(),
$_POST[
"password"]) == 0)
472 if (
$_SESSION[
"AccountId"] != ANONYMOUS_USER_ID)
474 $ilUser->setPref(
"tst_password_".$this->object->getTestId(), $this->
object->getPassword());
475 $ilUser->writePref(
"tst_password_".$this->object->getTestId(), $this->
object->getPassword());
479 $_SESSION[
'tst_password_'.$this->object->getTestId()] = $this->
object->getPassword();
481 $this->ctrl->redirect($this,
"start");
486 $this->ctrl->redirectByClass(
"ilobjtestgui",
"infoScreen");
499 if (
$_SESSION[
"AccountId"] == ANONYMOUS_USER_ID)
501 $this->
object->setAccessCodeSession(
$_POST[
"anonymous_id"]);
503 $this->ctrl->redirectByClass(
"ilobjtestgui",
"infoScreen");
520 $this->ctrl->redirect($this,
"startTest");
524 $this->ctrl->redirectByClass(
"ilobjtestgui",
"redirectToInfoScreen");
535 if ($this->object->checkMaximumAllowedUsers() == FALSE)
539 if (
$_SESSION[
"AccountId"] == ANONYMOUS_USER_ID)
541 $this->
object->setAccessCodeSession($this->object->createNewAccessCode());
545 $this->
object->unsetAccessCodeSession();
547 if (strlen($this->object->getPassword()))
553 if(
$_SESSION[
"AccountId"] != ANONYMOUS_USER_ID )
555 $pwd = $ilUser->getPref(
"tst_password_".$this->object->getTestId());
557 elseif( isset(
$_SESSION[
'tst_password_'.$this->object->getTestId()]) )
559 $pwd =
$_SESSION[
'tst_password_'.$this->object->getTestId()];
562 if ((strcmp($pwd, $this->object->getPassword()) != 0) && (!$rbacsystem->checkAccess(
"write", $this->object->getRefId())))
567 if (
$_SESSION[
"AccountId"] == ANONYMOUS_USER_ID)
569 $this->ctrl->redirect($this,
"displayCode");
573 $this->ctrl->setParameter($this,
"activecommand",
"start");
574 $this->ctrl->redirect($this,
"redirectQuestion");
580 $this->tpl->addBlockFile($this->
getContentBlockName(),
"adm_content",
"tpl.il_as_tst_anonymous_code_presentation.html",
"Modules/Test");
581 $this->tpl->setCurrentBlock(
"adm_content");
582 $this->tpl->setVariable(
"TEXT_ANONYMOUS_CODE_CREATED", $this->lng->txt(
"tst_access_code_created"));
583 $this->tpl->setVariable(
"TEXT_ANONYMOUS_CODE", $this->object->getAccessCodeSession());
584 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
585 $this->tpl->setVariable(
"CONTINUE", $this->lng->txt(
"continue_work"));
586 $this->tpl->parseCurrentBlock();
591 $this->ctrl->setParameter($this,
"activecommand",
"start");
592 $this->ctrl->redirect($this,
"redirectQuestion");
604 if ($this->object->checkMaximumAllowedUsers() == FALSE)
609 $this->ctrl->setParameter($this,
"activecommand",
"resume");
610 $this->ctrl->redirect($this,
"redirectQuestion");
620 if (
$_POST[
"chb_javascript"])
622 $ilUser->writePref(
"tst_javascript", 1);
626 $ilUser->writePref(
"tst_javascript", 0);
630 if ($this->object->getNrOfTries() != 1)
632 if ($this->object->getUsePreviousAnswers() == 1)
634 if (
$_POST[
"chb_use_previous_answers"])
636 $ilUser->writePref(
"tst_use_previous_answers", 1);
640 $ilUser->writePref(
"tst_use_previous_answers", 0);
664 $executable = $this->
object->isExecutable($ilUser->getId());
665 if (!$executable[
"executable"])
668 $this->ctrl->redirectByClass(
"ilobjtestgui",
"infoScreen");
670 switch (
$_GET[
"activecommand"])
674 if ($this->sequence === FALSE)
676 if ($this->object->getListOfQuestionsEnd())
682 $this->ctrl->redirect($this,
"finishTest");
687 $this->
object->getTestSession()->setLastSequence($this->sequence);
688 $this->
object->getTestSession()->saveToDb();
694 $this->
object->getTestSession()->setLastSequence($this->sequence);
695 $this->
object->getTestSession()->saveToDb();
696 if ($this->sequence === FALSE)
698 $this->ctrl->redirect($this,
"outIntroductionPage");
707 $nextSequence = $this->
object->getTestSequence()->getNextSequence($this->sequence);
708 $this->
object->getTestSequence()->postponeSequence($this->sequence);
709 $this->
object->getTestSequence()->saveToDb();
710 $this->
object->getTestSession()->setLastSequence($nextSequence);
711 $this->
object->getTestSession()->saveToDb();
712 $this->sequence = $nextSequence;
717 $this->
object->getTestSession()->setLastSequence($this->sequence);
718 $this->
object->getTestSession()->saveToDb();
719 $q_id = $this->
object->getTestSequence()->getQuestionForSequence(
$_GET[
"sequence"]);
720 $this->
object->setQuestionSetSolved(1, $q_id, $ilUser->getId());
725 $this->
object->getTestSession()->setLastSequence($this->sequence);
726 $this->
object->getTestSession()->saveToDb();
727 $q_id = $this->
object->getTestSequence()->getQuestionForSequence(
$_GET[
"sequence"]);
728 $this->
object->setQuestionSetSolved(0, $q_id, $ilUser->getId());
731 case "directfeedback":
733 $this->
object->getTestSession()->setLastSequence($this->sequence);
734 $this->
object->getTestSession()->saveToDb();
737 case "selectImagemapRegion":
739 $this->
object->getTestSession()->setLastSequence($this->sequence);
740 $this->
object->getTestSession()->saveToDb();
744 $this->ctrl->redirect($this,
"outQuestionSummary");
748 $this->
object->createTestSession();
749 $active_id = $this->
object->getTestSession()->getActiveId();
750 $this->ctrl->setParameter($this,
"active_id", $active_id);
751 $shuffle = $this->
object->getShuffleQuestions();
752 if ($this->object->isRandomTest())
754 $this->
object->generateRandomQuestions($this->object->getTestSession()->getActiveId());
755 $this->
object->loadQuestions();
758 require_once
'Modules/TestQuestionPool/classes/class.assQuestion.php';
760 $active_id, $this->object->getTestSession()->getPass()
763 $this->
object->createTestSequence($active_id, 0, $shuffle);
764 $active_time_id = $this->
object->startWorkingTime($this->object->getTestSession()->getActiveId(), $this->
object->getTestSession()->getPass());
765 $_SESSION[
"active_time_id"] = $active_time_id;
766 if ($this->object->getListOfQuestionsStart())
768 $this->ctrl->setParameter($this,
"activecommand",
"summary");
769 $this->ctrl->redirect($this,
"redirectQuestion");
773 $this->ctrl->setParameter($this,
"sequence", $this->sequence);
774 $this->ctrl->setParameter($this,
"activecommand",
"gotoquestion");
775 $this->ctrl->saveParameter($this,
"tst_javascript");
776 $this->ctrl->redirect($this,
"redirectQuestion");
781 $active_id = $this->
object->getTestSession()->getActiveId();
782 $this->ctrl->setParameter($this,
"active_id", $active_id);
784 if ($this->object->isRandomTest())
786 if (!$this->object->hasRandomQuestionsForPass($active_id, $this->object->getTestSession()->getPass()))
789 $this->
object->generateRandomQuestions($active_id, $this->object->getTestSession()->getPass());
792 $shuffle = $this->
object->getShuffleQuestions();
793 if ($this->object->isRandomTest())
798 require_once
'Modules/TestQuestionPool/classes/class.assQuestion.php';
800 $active_id, $this->object->getTestSession()->getPass()
803 $this->
object->createTestSequence($active_id, $this->object->getTestSession()->getPass(), $shuffle);
805 $this->sequence = $this->
object->getTestSession()->getLastSequence();
806 $active_time_id = $this->
object->startWorkingTime($active_id, $this->object->getTestSession()->getPass());
807 $_SESSION[
"active_time_id"] = $active_time_id;
808 if ($this->object->getListOfQuestionsStart())
810 $this->ctrl->setParameter($this,
"activecommand",
"summary");
811 $this->ctrl->redirect($this,
"redirectQuestion");
815 $this->ctrl->setParameter($this,
"sequence", $this->sequence);
816 $this->ctrl->setParameter($this,
"activecommand",
"gotoquestion");
817 $this->ctrl->saveParameter($this,
"tst_javascript");
818 $this->ctrl->redirect($this,
"redirectQuestion");
825 if (array_key_exists(
"tst_javascript",
$_GET))
827 $ilUser->writePref(
"tst_javascript",
$_GET[
"tst_javascript"]);
830 if (strlen(
$_GET[
'gotosequence'])) $this->sequence =
$_GET[
'gotosequence'];
831 $this->
object->getTestSession()->setLastSequence($this->sequence);
832 $this->
object->getTestSession()->saveToDb();
847 if (array_key_exists(
"save_error",
$_GET))
849 if (
$_GET[
"save_error"] == 1)
854 switch (
$_GET[
"activecommand"])
868 $this->tpl->addBlockFile($this->
getContentBlockName(),
"adm_content",
"tpl.il_as_tst_redirect_autosave.html",
"Modules/Test");
869 $this->tpl->setVariable(
"TEXT_REDIRECT", $this->lng->txt(
"redirectAfterSave"));
870 $this->tpl->setCurrentBlock(
"HeadContent");
871 $this->tpl->setVariable(
"CONTENT_BLOCK",
"<meta http-equiv=\"refresh\" content=\"5; url=" . $this->ctrl->getLinkTarget($this,
"redirectBack") .
"\">");
872 $this->tpl->parseCurrentBlock();
884 $result = $this->lng->txt(
"autosave_success");
888 $result = $this->lng->txt(
"autosave_failed");
894 $result = $this->ctrl->getLinkTarget($this,
"redirectAfterAutosave",
"",
true);
907 $show_side_list = $ilUser->getPref(
'side_list_of_questions');
908 $ilUser->writePref(
'side_list_of_questions', !$show_side_list);
910 $this->ctrl->redirect($this,
"redirectQuestion");
923 $this->ctrl->setParameter($this,
"activecommand",
"next");
924 $this->ctrl->redirect($this,
"redirectQuestion");
937 $this->ctrl->setParameter($this,
"activecommand",
"previous");
938 $this->ctrl->redirect($this,
"redirectQuestion");
951 $this->ctrl->setParameter($this,
"activecommand",
"postpone");
952 $this->ctrl->redirect($this,
"redirectQuestion");
965 if ($this->saveResult == FALSE)
967 $this->ctrl->setParameter($this,
"activecommand",
"");
968 $this->ctrl->redirect($this,
"redirectQuestion");
972 $this->ctrl->setParameter($this,
"activecommand",
"summary");
973 $this->ctrl->redirect($this,
"redirectQuestion");
987 $this->ctrl->setParameter($this,
"activecommand",
"setmarked");
988 $this->ctrl->redirect($this,
"redirectQuestion");
1001 $this->ctrl->setParameter($this,
"activecommand",
"resetmarked");
1002 $this->ctrl->redirect($this,
"redirectQuestion");
1015 $this->ctrl->setParameter($this,
"activecommand",
"directfeedback");
1016 $this->ctrl->redirect($this,
"redirectQuestion");
1029 $activecommand =
"selectImagemapRegion";
1030 if (array_key_exists(
'cmd',
$_POST))
1032 $activecommand = key(
$_POST[
"cmd"]);
1034 if (preg_match(
"/^gotoquestion_(\\d+)$/", $activecommand, $matches))
1036 $activecommand =
"gotoquestion";
1037 if (strlen($matches[1]))
1039 $this->ctrl->setParameter($this,
'gotosequence', $matches[1]);
1042 if (strcmp($activecommand,
"togglesidelist") == 0)
1048 $this->ctrl->setParameter($this,
"activecommand", $activecommand);
1049 $this->ctrl->redirect($this,
"redirectQuestion");
1063 $this->ctrl->setParameter($this,
"sequence",
$_GET[
"sequence"]);
1064 $this->ctrl->setParameter($this,
"activecommand",
"gotoquestion");
1065 $this->ctrl->saveParameter($this,
"tst_javascript");
1067 $this->ctrl->redirect($this,
"redirectQuestion");
1079 $this->ctrl->setParameter($this,
"activecommand",
"back");
1080 $this->ctrl->redirect($this,
"redirectQuestion");
1106 $template =
new ilTemplate(
"tpl.il_as_tst_finish_confirmation.html", TRUE, TRUE,
"Modules/Test");
1107 $template->setVariable(
"FINISH_QUESTION", $this->lng->txt(
"tst_finish_confirmation_question"));
1108 $template->setVariable(
"BUTTON_CONFIRM", $this->lng->txt(
"tst_finish_confirm_button"));
1109 if ($this->object->canShowSolutionPrintview($ilUser->getId()))
1111 $template->setVariable(
"BUTTON_CANCEL", $this->lng->txt(
"tst_finish_confirm_list_of_answers_button"));
1115 $template->setVariable(
"BUTTON_CANCEL", $this->lng->txt(
"tst_finish_confirm_cancel_button"));
1117 $template->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
1136 $active_id = $this->
object->getTestSession()->getActiveId();
1137 $actualpass = $this->
object->_getPass($active_id);
1138 if (($actualpass == $this->object->getNrOfTries() - 1) && (!$confirm))
1141 $ilAuth->setExpire(0);
1142 switch ($this->object->getMailNotification())
1145 $this->
object->sendSimpleNotification($active_id);
1148 $this->
object->sendAdvancedNotification($active_id);
1153 if (($confirm) && ($actualpass == $this->object->getNrOfTries() - 1))
1155 if ($this->object->canShowSolutionPrintview($ilUser->getId()))
1157 $template =
new ilTemplate(
"tpl.il_as_tst_finish_navigation.html", TRUE, TRUE,
"Modules/Test");
1158 $template->setVariable(
"BUTTON_FINISH", $this->lng->txt(
"btn_next"));
1159 $template->setVariable(
"BUTTON_CANCEL", $this->lng->txt(
"btn_previous"));
1161 $template_top =
new ilTemplate(
"tpl.il_as_tst_list_of_answers_topbuttons.html", TRUE, TRUE,
"Modules/Test");
1162 $template_top->setCurrentBlock(
"button_print");
1163 $template_top->setVariable(
"BUTTON_PRINT", $this->lng->txt(
"print"));
1164 $template_top->parseCurrentBlock();
1166 $this->
showListOfAnswers($active_id, NULL, $template_top->get(), $template->get());
1179 if ($this->object->getMailNotificationType() == 1)
1181 switch ($this->object->getMailNotification())
1184 $this->
object->sendSimpleNotification($active_id);
1187 $this->
object->sendAdvancedNotification($active_id);
1191 if( !$this->object->getTestSession()->isSubmitted() )
1193 $this->
object->setActiveTestSubmitted($ilUser->getId());
1195 $this->
object->getTestSession()->increaseTestPass();
1202 if (!
$_GET[
"skipfinalstatement"])
1204 if ($this->object->getShowFinalStatement())
1206 $this->ctrl->redirect($this,
"showFinalStatement");
1209 if(
$_GET[
'crs_show_result'])
1211 $this->ctrl->redirectByClass(
"ilobjtestgui",
"backToCourse");
1214 if (!$this->object->canViewResults())
1220 $this->ctrl->redirectByClass(
"ilTestEvaluationGUI",
"outUserResultsOverview");
1229 $template =
new ilTemplate(
"tpl.il_as_tst_final_statement.html", TRUE, TRUE,
"Modules/Test");
1230 $this->ctrl->setParameter($this,
"crs_show_result",
$_GET[
'crs_show_result']);
1231 $this->ctrl->setParameter($this,
"skipfinalstatement", 1);
1232 $template->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this,
"redirectBack"));
1233 $template->setVariable(
"FINALSTATEMENT", $this->object->getFinalStatement());
1234 $template->setVariable(
"BUTTON_CONTINUE", $this->lng->txt(
"btn_next"));
1242 $template =
new ilTemplate(
'tpl.il_as_tst_kiosk_head.html',
true,
true,
'Modules/Test');
1243 if ($this->object->getShowKioskModeTitle())
1245 $template->setCurrentBlock(
"kiosk_show_title");
1246 $template->setVariable(
"TEST_TITLE", $this->object->getTitle());
1247 $template->parseCurrentBlock();
1249 if ($this->object->getShowKioskModeParticipant())
1251 $template->setCurrentBlock(
"kiosk_show_participant");
1252 $template->setVariable(
"PARTICIPANT_NAME", $this->lng->txt(
"login_as") .
" " . $ilUser->getFullname());
1253 $template->parseCurrentBlock();
1255 return $template->get();
1263 global $rbacsystem, $ilUser;
1265 $this->tpl->addBlockFile($this->
getContentBlockName(),
"adm_content",
"tpl.il_as_tst_output.html",
"Modules/Test");
1266 if (!$rbacsystem->checkAccess(
"read", $this->object->getRefId()))
1269 $this->ilias->raiseError($this->lng->txt(
"cannot_execute_test"),$this->ilias->error_obj->MESSAGE);
1278 if ($this->object->endingTimeReached())
1284 if ($this->object->getKioskMode())
1290 $this->tpl->setCurrentBlock(
"kiosk_options");
1291 $this->tpl->setVariable(
"KIOSK_HEAD", $head);
1292 $this->tpl->parseCurrentBlock();
1296 if (($this->object->getInstantFeedbackSolution() == 1) || ($this->object->getAnswerFeedback() == 1) || ($this->object->getAnswerFeedbackPoints() == 1))
1298 $this->tpl->setCurrentBlock(
"direct_feedback");
1299 $this->tpl->setVariable(
"TEXT_DIRECT_FEEDBACK", $this->lng->txt(
"check"));
1300 $this->tpl->parseCurrentBlock();
1309 if ($this->object->getEnableProcessingTime())
1314 $this->tpl->setVariable(
"FORM_TIMESTAMP", time());
1315 $directfeedback = 0;
1316 if (strcmp(
$_GET[
"activecommand"],
"directfeedback") == 0) $directfeedback = 1;
1317 $this->
outWorkingForm($this->sequence, $this->object->getTestId(), $postpone, $directfeedback, $show_summary);
1318 $this->tpl->setVariable(
"PAGETITLE",
"- " . $this->object->getTitle());
1333 $user = $this->
object->getInvitedUsers($ilUser->getId());
1334 if (!is_array ($user) || count($user)!=1)
1337 $this->ctrl->redirectByClass(
"ilobjtestgui",
"backToRepository");
1340 $user = array_pop($user);
1342 if (strcmp($user[
"clientip"],
"")!=0 && strcmp($user[
"clientip"],$_SERVER[
"REMOTE_ADDR"])!=0)
1345 $this->ctrl->redirectByClass(
"ilobjtestgui",
"backToRepository");
1357 and $this->
object->startingTimeReached()
1358 and !$this->
object->endingTimeReached();
1366 return $this->
object->hasNrOfTriesRestriction() && $this->
object->isNrOfTriesReached($this->object->getTestSession()->getPass());
1378 if (array_key_exists(
"pass",
$_GET) && (strlen(
$_GET[
"pass"]) > 0))
1380 $this->ctrl->saveParameter($this,
"pass");
1381 $this->ctrl->saveParameter($this,
"active_id");
1382 $this->outTestResults(
false,
$_GET[
"pass"]);
1386 $this->outTestResults(
false);
1398 $this->
object->getTestSession()->increasePass();
1399 $this->
object->getTestSession()->setLastSequence(0);
1400 $this->
object->getTestSession()->saveToDb();
1401 if (!$this->object->canViewResults())
1407 $this->ctrl->redirectByClass(
"ilTestEvaluationGUI",
"outUserResultsOverview");
1430 $this->tpl->addBlockFile($this->
getContentBlockName(),
"adm_content",
"tpl.il_as_tst_submit_answers_confirm.html",
"Modules/Test");
1431 $this->tpl->setCurrentBlock(
"adm_content");
1432 if ($this->object->isTestFinished($this->object->getTestSession()->getActiveId()))
1434 $this->tpl->setCurrentBlock(
"not_submit_allowed");
1435 $this->tpl->setVariable(
"TEXT_ALREADY_SUBMITTED", $this->lng->txt(
"tst_already_submitted"));
1436 $this->tpl->setVariable(
"BTN_OK", $this->lng->txt(
"tst_show_answer_sheet"));
1439 $this->tpl->setCurrentBlock(
"submit_allowed");
1440 $this->tpl->setVariable(
"TEXT_CONFIRM_SUBMIT_RESULTS", $this->lng->txt(
"tst_confirm_submit_answers"));
1441 $this->tpl->setVariable(
"BTN_OK", $this->lng->txt(
"tst_submit_results"));
1443 $this->tpl->setVariable(
"BTN_BACK", $this->lng->txt(
"back"));
1444 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this,
"finalSubmission"));
1445 $this->tpl->parseCurrentBlock();
1452 $starting_time = $this->
object->getStartingTimeOfUser($active_id);
1453 $processing_time = $this->
object->getProcessingTimeInSeconds();
1454 $processing_time_minutes = floor($processing_time / 60);
1455 $processing_time_seconds = $processing_time - $processing_time_minutes * 60;
1456 $str_processing_time =
"";
1457 if ($processing_time_minutes > 0)
1459 $str_processing_time = $processing_time_minutes .
" " . $this->lng->txt(
"minutes");
1461 if ($processing_time_seconds > 0)
1463 if (strlen($str_processing_time) > 0) $str_processing_time .=
" " . $this->lng->txt(
"and") .
" ";
1464 $str_processing_time .= $processing_time_seconds .
" " . $this->lng->txt(
"seconds");
1466 $time_left = $starting_time + $processing_time - mktime();
1467 $time_left_minutes = floor($time_left / 60);
1468 $time_left_seconds = $time_left - $time_left_minutes * 60;
1469 $str_time_left =
"";
1470 if ($time_left_minutes > 0)
1472 $str_time_left = $time_left_minutes .
" " . $this->lng->txt(
"minutes");
1474 if ($time_left < 300)
1476 if ($time_left_seconds > 0)
1478 if (strlen($str_time_left) > 0) $str_time_left .=
" " . $this->lng->txt(
"and") .
" ";
1479 $str_time_left .= $time_left_seconds .
" " . $this->lng->txt(
"seconds");
1482 $date = getdate($starting_time);
1494 $datenow = getdate();
1495 $this->tpl->setCurrentBlock(
"enableprocessingtime");
1496 $this->tpl->setVariable(
"USER_WORKING_TIME",
1498 $this->lng->txt(
"tst_time_already_spent"),
1499 $formattedStartingTime,
1500 $str_processing_time
1503 $this->tpl->setVariable(
"USER_REMAINING_TIME", sprintf($this->lng->txt(
"tst_time_already_spent_left"), $str_time_left));
1504 $this->tpl->parseCurrentBlock();
1505 $template =
new ilTemplate(
"tpl.workingtime.js.html", TRUE, TRUE, TRUE);
1506 $template->setVariable(
"STRING_MINUTE", $this->lng->txt(
"minute"));
1507 $template->setVariable(
"STRING_MINUTES", $this->lng->txt(
"minutes"));
1508 $template->setVariable(
"STRING_SECOND", $this->lng->txt(
"second"));
1509 $template->setVariable(
"STRING_SECONDS", $this->lng->txt(
"seconds"));
1510 $template->setVariable(
"STRING_TIMELEFT", $this->lng->txt(
"tst_time_already_spent_left"));
1511 $template->setVariable(
"AND", strtolower($this->lng->txt(
"and")));
1512 $template->setVariable(
"YEAR", $date[
"year"]);
1513 $template->setVariable(
"MONTH", $date[
"mon"]-1);
1514 $template->setVariable(
"DAY", $date[
"mday"]);
1515 $template->setVariable(
"HOUR", $date[
"hours"]);
1516 $template->setVariable(
"MINUTE", $date[
"minutes"]);
1517 $template->setVariable(
"SECOND", $date[
"seconds"]);
1518 if (preg_match(
"/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/", $this->object->getEndingTime(), $matches))
1520 $template->setVariable(
"ENDYEAR", $matches[1]);
1521 $template->setVariable(
"ENDMONTH", $matches[2]-1);
1522 $template->setVariable(
"ENDDAY", $matches[3]);
1523 $template->setVariable(
"ENDHOUR", $matches[4]);
1524 $template->setVariable(
"ENDMINUTE", $matches[5]);
1525 $template->setVariable(
"ENDSECOND", $matches[6]);
1527 $template->setVariable(
"YEARNOW", $datenow[
"year"]);
1528 $template->setVariable(
"MONTHNOW", $datenow[
"mon"]-1);
1529 $template->setVariable(
"DAYNOW", $datenow[
"mday"]);
1530 $template->setVariable(
"HOURNOW", $datenow[
"hours"]);
1531 $template->setVariable(
"MINUTENOW", $datenow[
"minutes"]);
1532 $template->setVariable(
"SECONDNOW", $datenow[
"seconds"]);
1533 $template->setVariable(
"PTIME_M", $processing_time_minutes);
1534 $template->setVariable(
"PTIME_S", $processing_time_seconds);
1536 $this->tpl->setCurrentBlock(
"HeadContent");
1537 $this->tpl->setVariable(
"CONTENT_BLOCK", $template->get());
1538 $this->tpl->parseCurrentBlock();
1546 if ($fullpage) $this->tpl->addBlockFile($this->
getContentBlockName(),
"adm_content",
"tpl.il_as_tst_question_summary.html",
"Modules/Test");
1547 $active_id = $this->
object->getTestSession()->getActiveId();
1548 $result_array = & $this->
object->getTestSequence()->getSequenceSummary();
1549 $marked_questions = array();
1550 if ($this->object->getKioskMode() && $fullpage)
1555 $this->tpl->setCurrentBlock(
"kiosk_options");
1556 $this->tpl->setVariable(
"KIOSK_HEAD", $head);
1557 $this->tpl->parseCurrentBlock();
1560 if ($this->object->getShowMarker())
1562 include_once
"./Modules/Test/classes/class.ilObjTest.php";
1566 foreach ($result_array as $key => $value)
1568 $this->ctrl->setParameter($this,
"sequence", $value[
"sequence"]);
1569 $href = $this->ctrl->getLinkTargetByClass(get_class($this),
"gotoQuestion");
1570 $this->tpl->setVariable(
"VALUE_QUESTION_TITLE",
"<a href=\"".$this->ctrl->getLinkTargetByClass(get_class($this),
"gotoQuestion").
"\">" . $this->
object->getQuestionTitle($value[
"title"]) .
"</a>");
1571 $this->ctrl->setParameter($this,
"sequence",
$_GET[
"sequence"]);
1573 if ($this->object->getListOfQuestionsDescription())
1575 $description = $value[
"description"];
1578 if (!$this->object->getTitleOutput())
1580 $points = $value[
"points"].
" ".$this->lng->txt(
"points_short");
1583 if (count($marked_questions))
1585 if (array_key_exists($value[
"qid"], $marked_questions))
1587 $obj = $marked_questions[$value[
"qid"]];
1588 if ($obj[
"solved"] == 1)
1594 array_push(
$data, array(
1595 'order' => $value[
"nr"],
1597 'title' => $this->object->getQuestionTitle($value[
"title"]),
1598 'description' => $description,
1599 'worked_through' => ($value[
"worked_through"]) ?
true :
false,
1600 'postponed' => ($value[
"postponed"]) ? $this->lng->txt(
"postponed") :
'',
1601 'points' => $points,
1602 'marked' => $marked,
1603 'sequence' => $value[
"sequence"]
1606 $this->ctrl->setParameter($this,
"sequence",
$_GET[
"sequence"]);
1609 include_once
"./Modules/Test/classes/tables/class.ilListOfQuestionsTableGUI.php";
1610 $table_gui =
new ilListOfQuestionsTableGUI($this,
'backFromSummary', !$this->object->getTitleOutput(), $this->
object->getShowMarker());
1612 $this->tpl->setVariable(
'TABLE_LIST_OF_QUESTIONS', $table_gui->getHTML());
1613 if ($this->object->getEnableProcessingTime()) $this->
outProcessingTime($active_id);
1617 $template =
new ilTemplate(
'tpl.il_as_tst_list_of_questions_short.html',
true,
true,
'Modules/Test');
1620 if (strlen($row[
'description']))
1622 $template->setCurrentBlock(
'description');
1623 $template->setVariable(
"DESCRIPTION", $row[
'description']);
1624 $template->parseCurrentBlock();
1626 $template->setCurrentBlock(
'item');
1628 $template->setVariable(
'CLASS', ($row[
'walked_through']) ? (
'answered'.$active) : (
'unanswered'.$active));
1630 $template->setVariable(
'SEQUENCE', $row[
'sequence']);
1631 $template->parseCurrentBlock();
1633 $template->setVariable(
'LIST_OF_QUESTIONS', $this->lng->txt(
'list_of_questions'));
1634 $this->tpl->setVariable(
'LIST_OF_QUESTIONS', $template->get());
1640 $this->tpl->addBlockFile($this->
getContentBlockName(),
"adm_content",
"tpl.il_as_tst_max_allowed_users_reached.html",
"Modules/Test");
1641 $this->tpl->setCurrentBlock(
"adm_content");
1642 $this->tpl->setVariable(
"MAX_ALLOWED_USERS_MESSAGE", sprintf($this->lng->txt(
"tst_max_allowed_users_message"), $this->
object->getAllowedUsersTimeGap()));
1643 $this->tpl->setVariable(
"MAX_ALLOWED_USERS_HEADING", sprintf($this->lng->txt(
"tst_max_allowed_users_heading"), $this->
object->getAllowedUsersTimeGap()));
1644 $this->tpl->setVariable(
"BACK_TO_INTRODUCTION", $this->lng->txt(
"tst_results_back_introduction"));
1645 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
1646 $this->tpl->parseCurrentBlock();
1652 if ($this->object->canShowSolutionPrintview($ilUser->getId()))
1654 $template =
new ilTemplate(
"tpl.il_as_tst_finish_navigation.html", TRUE, TRUE,
"Modules/Test");
1655 $template->setVariable(
"BUTTON_FINISH", $this->lng->txt(
"btn_next"));
1656 $template->setVariable(
"BUTTON_CANCEL", $this->lng->txt(
"btn_previous"));
1658 $template_top =
new ilTemplate(
"tpl.il_as_tst_list_of_answers_topbuttons.html", TRUE, TRUE,
"Modules/Test");
1659 $template_top->setCurrentBlock(
"button_print");
1660 $template_top->setVariable(
"BUTTON_PRINT", $this->lng->txt(
"print"));
1661 $template_top->parseCurrentBlock();
1662 $active_id = $this->
object->getTestSession()->getActiveId();
1663 return $this->
showListOfAnswers($active_id, NULL, $template_top->get(), $template->get());
1667 $this->ctrl->redirect($this,
'gotoQuestion');
1683 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_as_tst_correct_solution.html",
"Modules/Test");
1685 include_once(
"./Services/Style/classes/class.ilObjStyleSheet.php");
1686 $this->tpl->setCurrentBlock(
"ContentStyle");
1688 $this->tpl->parseCurrentBlock();
1690 $this->tpl->setCurrentBlock(
"SyntaxStyle");
1692 $this->tpl->parseCurrentBlock();
1695 if ($this->object->getShowSolutionAnswersOnly())
1700 $this->tpl->setCurrentBlock(
"adm_content");
1702 $this->tpl->setVariable(
"OUTPUT_SOLUTION", $solution);
1703 $this->tpl->setVariable(
"TEXT_BACK", $this->lng->txt(
"back"));
1704 $this->ctrl->saveParameter($this,
"pass");
1705 $this->ctrl->saveParameter($this,
"active_id");
1706 $this->tpl->setVariable(
"URL_BACK", $this->ctrl->getLinkTarget($this,
"outUserResultsOverview"));
1707 $this->tpl->parseCurrentBlock();
1723 $this->tpl->addBlockFile($this->
getContentBlockName(),
"adm_content",
"tpl.il_as_tst_finish_list_of_answers.html",
"Modules/Test");
1725 $result_array =& $this->
object->getTestResult($active_id,
$pass);
1729 foreach ($result_array as $question_data)
1731 $question = $question_data[
"qid"];
1732 if (is_numeric($question))
1734 $this->tpl->setCurrentBlock(
"printview_question");
1735 $question_gui = $this->
object->createQuestionGUI(
"", $question);
1736 $template =
new ilTemplate(
"tpl.il_as_qpl_question_printview.html", TRUE, TRUE,
"Modules/TestQuestionPool");
1737 $template->setVariable(
"COUNTER_QUESTION", $counter.
". ");
1738 $template->setVariable(
"QUESTION_TITLE", $question_gui->object->getTitle());
1740 $show_question_only = ($this->
object->getShowSolutionAnswersOnly()) ? TRUE : FALSE;
1741 $result_output = $question_gui->getSolutionOutput($active_id,
$pass, FALSE, FALSE, $show_question_only, $this->object->getShowSolutionFeedback());
1742 $template->setVariable(
"SOLUTION_OUTPUT", $result_output);
1743 $this->tpl->setVariable(
"QUESTION_OUTPUT", $template->get());
1744 $this->tpl->parseCurrentBlock();
1750 if ($this->object->getShowSolutionAnswersOnly())
1754 if (strlen($top_data))
1756 $this->tpl->setCurrentBlock(
"top_data");
1757 $this->tpl->setVariable(
"TOP_DATA", $top_data);
1758 $this->tpl->parseCurrentBlock();
1761 if (strlen($bottom_data))
1763 $this->tpl->setCurrentBlock(
"bottom_data");
1764 $this->tpl->setVariable(
"FORMACTION", $this->ctrl->getFormAction($this));
1765 $this->tpl->setVariable(
"BOTTOM_DATA", $bottom_data);
1766 $this->tpl->parseCurrentBlock();
1769 $this->tpl->setCurrentBlock(
"adm_content");
1770 $this->tpl->setVariable(
"TXT_ANSWER_SHEET", $this->lng->txt(
"tst_list_of_answers"));
1773 $this->tpl->setVariable(
"USER_DETAILS", $user_data);
1774 $this->tpl->setVariable(
"SIGNATURE", $signature);
1775 $this->tpl->setVariable(
"TITLE", $this->object->getTitle());
1776 $this->tpl->setVariable(
"TXT_TEST_PROLOG", $this->lng->txt(
"tst_your_answers"));
1777 $invited_user =& $this->
object->getInvitedUsers($ilUser->getId());
1778 $pagetitle = $this->
object->getTitle() .
" - " . $this->lng->txt(
"clientip") .
1779 ": " . $invited_user[$ilUser->getId()][
"clientip"] .
" - " .
1780 $this->lng->txt(
"matriculation") .
": " .
1781 $invited_user[$ilUser->getId()][
"matriculation"];
1782 $this->tpl->setVariable(
"PAGETITLE", $pagetitle);
1783 $this->tpl->parseCurrentBlock();
1794 if ($this->object->getKioskMode())
1796 $this->tpl->setBodyClass(
"kiosk");
1797 $this->tpl->setAddFooter(FALSE);
1802 return "ADM_CONTENT";
1808 $this->ctrl->redirectByClass(
"iltestevaluationgui",
"outUserResultsOverview");
1813 $this->ctrl->redirectByClass(
"iltestevaluationgui",
"outUserListOfAnswerPasses");