ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
ilTestPlayerAbstractGUI Class Reference

Output class for assessment test execution. More...

+ Inheritance diagram for ilTestPlayerAbstractGUI:
+ Collaboration diagram for ilTestPlayerAbstractGUI:

Public Member Functions

 __construct ($a_object)
 ilTestOutputGUI constructor More...
 
 saveTagsCmd ()
 Save tags for tagging gui. More...
 
 outResultsToplistCmd ()
 
 updateWorkingTime ()
 updates working time and stores state saveresult to see if question has to be stored or not More...
 
 saveQuestionSolution ($force=FALSE)
 saves the user input of a question More...
 
 outIntroductionPageCmd ()
 Creates the introduction page for a test. More...
 
 isMaxProcessingTimeReached ()
 Checks wheather the maximum processing time is reached or not. More...
 
 setAnonymousIdCmd ()
 Sets a session variable with the test access code for an anonymous test user. More...
 
 getLockParameter ()
 
 displayCodeCmd ()
 
 codeConfirmedCmd ()
 
 handleUserSettings ()
 Handles some form parameters on starting and resuming a test. More...
 
 calculateSequence ()
 Calculates the sequence to determine the next question. More...
 
 redirectAfterAutosaveCmd ()
 
 autosaveCmd ()
 
 togglesidelistCmd ()
 Toggle side list. More...
 
 backFromSummaryCmd ()
 Go back to the last active question from the summary. More...
 
 finishTestCmd ($requires_confirmation=true)
 
 redirectBackCmd ()
 
 showFinalStatementCmd ()
 
 getKioskHead ()
 
 outTestPage ($directfeedback)
 Outputs the question of the active sequence. More...
 
 checkOnlineTestAccess ()
 check access restrictions like client ip, partipating user etc. More...
 
 isTestAccessible ()
 test accessible returns true if the user can perform the test More...
 
 isNrOfTriesReached ()
 nr of tries exceeded More...
 
 passDetails ()
 Output of the learners view of an existing test pass. More...
 
 maxProcessingTimeReached ()
 Outputs a message when the maximum processing time is reached. More...
 
 confirmSubmitAnswers ()
 confirm submit results if confirm then results are submitted and the screen will be redirected to the startpage of the test public More...
 
 outProcessingTime ($active_id)
 
 outQuestionSummaryCmd ($fullpage=true, $contextFinishTest=false, $obligationsNotAnswered=false, $obligationsFilter=false)
 Output of a summary of all test questions for test participants. More...
 
 outQuestionSummaryWithObligationsInfoCmd ()
 
 outObligationsOnlySummaryCmd ()
 
 showMaximumAllowedUsersReachedMessage ()
 
 backConfirmFinishCmd ()
 
 outCorrectSolution ()
 Creates an output of the solution of an answer compared to the correct solution. More...
 
 showListOfAnswers ($active_id, $pass=NULL, $top_data="", $bottom_data="")
 Creates an output of the list of answers for a test participant during the test (only the actual pass will be shown) More...
 
 getContentBlockName ()
 Returns the name of the current content block (depends on the kiosk mode setting) More...
 
 outUserResultsOverviewCmd ()
 
 outUserListOfAnswerPassesCmd ()
 
- Public Member Functions inherited from ilTestServiceGUI
 isContextWithinTestPass ()
 
 setContextWithinTestPass ($contextWithinTestPass)
 
 ilTestServiceGUI (ilObjTest $a_object)
 The constructor takes the test object reference as parameter. More...
 
 setParticipantData ($participantData)
 
 getParticipantData ()
 
executeCommand ()
 execute command More...
 
 getCommand ($cmd)
 Retrieves the ilCtrl command. More...
 
 getPassOverview ($active_id, $targetclass="", $targetcommand="", $short=FALSE, $hide_details=FALSE, $adminMode=false)
 Returns the pass overview for a given active ID. More...
 
 getPassListOfAnswers (&$result_array, $active_id, $pass, $show_solutions=FALSE, $only_answered_questions=FALSE, $show_question_only=FALSE, $show_reached_points=FALSE, $anchorNav=false)
 Returns the list of answers of a users test pass. More...
 
 getPassListOfAnswersWithScoring (&$result_array, $active_id, $pass, $show_solutions=FALSE)
 Returns the list of answers of a users test pass and offers a scoring option. More...
 
 getResultsSignature ()
 Returns HTML code for a signature field. More...
 
 getResultsUserdata ($testSession, $active_id, $overwrite_anonymity=FALSE)
 Returns the user data for a test results output. More...
 
 getCorrectSolutionOutput ($question_id, $active_id, $pass)
 Returns an output of the solution to an answer compared to the correct solution. More...
 
 getResultsOfUserOutput ($testSession, $active_id, $pass, $targetGUI, $show_pass_details=TRUE, $show_answers=TRUE, $show_question_only=FALSE, $show_reached_points=FALSE)
 Output of the pass overview for a test called by a test participant. More...
 
 getResultsHeadUserAndPass ($active_id, $pass)
 Returns the user and pass data for a test results output. More...
 
 getQuestionResultForTestUsers ($question_id, $test_id)
 Creates a HTML representation for the results of a given question in a test. More...
 

Data Fields

 $ref_id
 
 $saveResult
 
 $sequence
 
 $cmdCtrl
 
 $maxProcessingTimeReached
 
 $endingTimeReached
 
- Data Fields inherited from ilTestServiceGUI
 $object = null
 
 $service = null
 
 $lng
 
 $tpl
 
 $ctrl
 
 $ilias
 
 $tree
 
 $ref_id
 

Protected Member Functions

 ensureExistingTestSession (ilTestSession $testSession)
 
 initProcessLocker ($activeId)
 
 canSaveResult ()
 
 outWorkingForm ($sequence="", $test_id, $postpone_allowed, $directfeedback=false)
 
 determineInlineScoreDisplay ()
 
 populatePreviousButtons ($sequence)
 
 populateQuestionMarkingBlockAsUnmarked ()
 
 populateQuestionMarkingBlockAsMarked ()
 
 populateNextButtonsLeadingToQuestion ()
 
 populateLowerNextButtonBlockLeadingToQuestion ()
 
 populateUpperNextButtonBlockLeadingToQuestion ()
 
 populateNextButtonsLeadingToEndOfTest ()
 
 populateLowerNextButtonBlockLeadingToEndOfTest ()
 
 populateUpperNextButtonBlockLeadingToEndOfTest ()
 
 populateNextButtonsLeadingToSummary ()
 
 populateLowerNextButtonBlockLeadingToSummary ()
 
 populateUpperNextButtonBlockLeadingToSummary ()
 
 populateCancelButtonBlock ()
 
 populateSummaryButtons ()
 
 populateLowerSummaryButtonBlock ()
 
 populateUpperSummaryButtonBlock ()
 
 populateQuestionSelectionButtons ()
 
 populateLowerQuestionSelectionButtonBlock ()
 
 populateUpperQuestionSelectionButtonBlock ()
 
 populatePostponeButtons ()
 
 populateLowerPostponeButtonBlock ()
 
 populateUpperPostponeButtonBlock ()
 
 populatePreviousButtonsLeadingToQuestion ()
 
 populatePreviousButtonsLeadingToIntroduction ()
 
 populateLowerPreviousButtonBlock ($cmd, $label)
 
 populateUpperPreviousButtonBlock ($cmd, $label)
 
 populateSpecificFeedbackBlock ($question_gui)
 
 populateGenericFeedbackBlock ($question_gui)
 
 populateScoreBlock ($reachedPoints, $maxPoints)
 
 populateSolutionBlock ($solutionoutput)
 
 populateCharSelector ()
 
 showSideList ()
 
 populateSyntaxStyleBlock ()
 
 populateContentStyleBlock ()
 
 startPlayerCmd ()
 Start a test for the first time. More...
 
 resumePlayerCmd ()
 Resume a test at the last position. More...
 
 initTestCmd ()
 Start a test for the first time after a redirect. More...
 
 getCurrentQuestionId ()
 
 markQuestionCmd ()
 Set a question solved. More...
 
 unmarkQuestionCmd ()
 Set a question unsolved. More...
 
 gotoQuestionCmd ()
 Go to the question with the active sequence. More...
 
 confirmFinishCmd ()
 The final submission of a test was confirmed. More...
 
 performTestPassFinishedTasks ($finishedPass)
 
 afterTestPassFinishedCmd ()
 
 isTestSignRedirectRequired ($activeId, $lastFinishedPass)
 
 archiveParticipantSubmission ( $active, $pass)
 
 showRequestedHintListCmd ()
 Go to requested hint list. More...
 
 confirmHintRequestCmd ()
 Go to hint request confirmation. More...
 
 fillQuestionRelatedNavigation (assQuestionGUI $questionGUI)
 renders the elements for the question related navigation More...
 
 isFirstPageInSequence ($sequence)
 
 isLastQuestionInSequence (assQuestionGUI $questionGUI)
 
 handleQuestionActionCmd ()
 
 showInstantResponseCmd ()
 
 nextQuestionCmd ()
 
 previousQuestionCmd ()
 
 postponeQuestionCmd ()
 
 getMarkedQuestions ()
 
 prepareSummaryPage ()
 
 prepareTestPageOutput ()
 
 populateKioskHead ()
 
 handlePasswordProtectionRedirect ()
 
 isParticipantsAnswerFixed ($questionId)
 
 customRedirectRequired ()
 
 performCustomRedirect ()
 
 getIntroductionPageButtonLabel ()
 
- Protected Member Functions inherited from ilTestServiceGUI
 isPdfDeliveryRequest ()
 
 getPassDetailsOverview ($result_array, $active_id, $pass, $targetGUI, $targetCMD, $questionDetailsCMD, $questionAnchorNav)
 
 buildPassDetailsOverviewTableGUI ($targetGUI, $targetCMD)
 
 isGradingMessageRequired ()
 
 getGradingMessage ($activeId)
 

Protected Attributes

 $passwordChecker
 
 $processLocker
 
 $testSession
 
- Protected Attributes inherited from ilTestServiceGUI
 $db
 
 $testSessionFactory = null
 
 $testSequenceFactory = null
 
 $participantData
 

Private Member Functions

 endingTimeReached ()
 handle endingTimeReached More...
 

Detailed Description

Output class for assessment test execution.

The ilTestOutputGUI class creates the output for the ilObjTestGUI class when learners execute a test. This saves some heap space because the ilObjTestGUI class will be much smaller then

Author
Helmut Schottmüller helmu.nosp@m.t.sc.nosp@m.hottm.nosp@m.uell.nosp@m.er@ma.nosp@m.c.co.nosp@m.m
Björn Heyser bheys.nosp@m.er@d.nosp@m.ataba.nosp@m.y.de
Maximilian Becker mbeck.nosp@m.er@d.nosp@m.ataba.nosp@m.y.de
Maximilian Becker mbeck.nosp@m.er@d.nosp@m.ataba.nosp@m.y.de
Version
$Id$

ModulesTest

Definition at line 25 of file class.ilTestPlayerAbstractGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilTestPlayerAbstractGUI::__construct (   $a_object)

ilTestOutputGUI constructor

Parameters
ilObjTest$a_object

Definition at line 54 of file class.ilTestPlayerAbstractGUI.php.

References $_GET, and $ilUser.

55  {
56  parent::ilTestServiceGUI($a_object);
57  $this->ref_id = $_GET["ref_id"];
58 
59  global $rbacsystem, $ilUser;
60  require_once 'Modules/Test/classes/class.ilTestPasswordChecker.php';
61  $this->passwordChecker = new ilTestPasswordChecker($rbacsystem, $ilUser, $this->object);
62 
63  $this->processLocker = null;
64  $this->testSession = null;
65  }
$_GET["client_id"]
global $ilUser
Definition: imgupload.php:15

Member Function Documentation

◆ afterTestPassFinishedCmd()

ilTestPlayerAbstractGUI::afterTestPassFinishedCmd ( )
protected

Definition at line 956 of file class.ilTestPlayerAbstractGUI.php.

References $_GET, customRedirectRequired(), isTestSignRedirectRequired(), performCustomRedirect(), ilUtil\redirect(), REDIRECT_KIOSK, and redirectBackCmd().

957  {
958  $activeId = $this->testSession->getActiveId();
959  $lastFinishedPass = $this->testSession->getLastFinishedPass();
960 
961  // handle test signature
962 
963  if ( $this->isTestSignRedirectRequired($activeId, $lastFinishedPass) )
964  {
965  $this->ctrl->redirectByClass('ilTestSignatureGUI', 'invokeSignaturePlugin');
966  }
967 
968  if(!$_GET['skipfinalstatement'])
969  {
970  if ($this->object->getShowFinalStatement())
971  {
972  $this->ctrl->redirect($this, 'showFinalStatement');
973  }
974  }
975 
976  // redirect after test
977  $redirection_mode = $this->object->getRedirectionMode();
978  $redirection_url = $this->object->getRedirectionUrl();
979  if( $redirection_url && $redirection_mode && !$this->object->canViewResults() )
980  {
981  if( $redirection_mode == REDIRECT_KIOSK )
982  {
983  if( $this->object->getKioskMode() )
984  {
985  ilUtil::redirect($redirection_url);
986  }
987  }
988  else
989  {
990  ilUtil::redirect($redirection_url);
991  }
992  }
993 
994  // custom after test redirect (ilTestOutput - objective oriented sessions)
995  if( $this->customRedirectRequired() )
996  {
997  $this->performCustomRedirect();
998  }
999 
1000  // default redirect (pass results)
1001  $this->redirectBackCmd();
1002  }
$_GET["client_id"]
isTestSignRedirectRequired($activeId, $lastFinishedPass)
const REDIRECT_KIOSK
static redirect($a_script)
http redirect to other script
+ Here is the call graph for this function:

◆ archiveParticipantSubmission()

ilTestPlayerAbstractGUI::archiveParticipantSubmission (   $active,
  $pass 
)
protected
Parameters
$active
Returns
void

Definition at line 1033 of file class.ilTestPlayerAbstractGUI.php.

References $file, $filename, ilTestServiceGUI\$ilias, $ilSetting, $pass, $path, $results, ilTestArchiver\DIR_SEP, ilTestPDFGenerator\generatePDF(), ilUtil\getWebspaceDir(), ilUtil\makeDirParents(), and ilTestPDFGenerator\PDF_OUTPUT_FILE.

Referenced by ilTestPlayerFixedQuestionSetGUI\performTestPassFinishedTasks().

1034  {
1035  require_once 'class.ilTestEvaluationGUI.php';
1036  $testevaluationgui = new ilTestEvaluationGUI($this->object);
1037  $results = $this->object->getTestResult($active,$pass);
1038  $results_output = $testevaluationgui->getPassListOfAnswers($results, $active, $pass, false, false, false, false);
1039 
1040  require_once './Modules/Test/classes/class.ilTestArchiver.php';
1041  global $ilSetting;
1042  $inst_id = $ilSetting->get('inst_id', null);
1043  $archiver = new ilTestArchiver($this->object->getId());
1044 
1045  $path = ilUtil::getWebspaceDir() . '/assessment/'. $this->object->getId() . '/exam_pdf';
1046  if (!is_dir($path))
1047  {
1048  ilUtil::makeDirParents($path);
1049  }
1050  $filename = $path . '/exam_N' . $inst_id . '-' . $this->object->getId()
1051  . '-' . $active . '-' . $pass . '.pdf';
1052 
1053  require_once 'class.ilTestPDFGenerator.php';
1055  //$template->setVariable("PDF_FILE_LOCATION", $filename);
1056  // Participant submission
1057  $archiver->handInParticipantSubmission( $active, $pass, $filename, $results_output );
1058  //$archiver->handInParticipantMisc( $active, $pass, 'signature_gedoens.sig', $filename );
1059  //$archiver->handInParticipantQuestionMaterial( $active, $pass, 123, 'file_upload.pdf', $filename );
1060 
1061  global $ilias;
1062  $questions = $this->object->getQuestions();
1063  foreach ($questions as $question_id)
1064  {
1065  $question_object = $this->object->getQuestionDataset( $question_id );
1066  if ($question_object->type_tag == 'assFileUpload')
1067  {
1068  // Pfad: /data/default/assessment/tst_2/14/21/files/file_14_4_1370417414.png
1069  // /data/ - klar
1070  // /assessment/ - Konvention
1071  // /tst_2/ = /tst_<test_id> (ilObjTest)
1072  // /14/ = /<active_fi>/
1073  // /21/ = /<question_id>/ (question_object)
1074  // /files/ - Konvention
1075  // file_14_4_1370417414.png = file_<active_fi>_<pass>_<some timestamp>.<ext>
1076 
1077  $candidate_path =
1078  $ilias->ini_ilias->readVariable( 'server', 'absolute_path' ) . ilTestArchiver::DIR_SEP
1079  . $ilias->ini_ilias->readVariable( 'clients', 'path' ) . ilTestArchiver::DIR_SEP
1080  . $ilias->client_id . ilTestArchiver::DIR_SEP
1081  . 'assessment' . ilTestArchiver::DIR_SEP
1082  . 'tst_' . $this->object->test_id . ilTestArchiver::DIR_SEP
1083  . $active . ilTestArchiver::DIR_SEP
1084  . $question_id . ilTestArchiver::DIR_SEP
1085  . 'files' . ilTestArchiver::DIR_SEP;
1086  $handle = opendir( $candidate_path );
1087  while ($handle !== false && ($file = readdir( $handle )) !== false)
1088  {
1089  if ($file != null)
1090  {
1091  $filename_start = 'file_' . $active . '_' . $pass . '_';
1092 
1093  if (strpos( $file, $filename_start ) === 0)
1094  {
1095  $archiver->handInParticipantQuestionMaterial( $active, $pass, $question_id, $file, $file );
1096  }
1097  }
1098  }
1099  }
1100  }
1101  $passdata = $this->object->getTestResult($active, $pass);
1102  $overview = $testevaluationgui->getPassListOfAnswers($passdata, $active, $pass, true, false, false, true);
1103  $filename = ilUtil::getWebspaceDir() . '/assessment/scores-'.$this->object->getId() . '-' . $active . '-' . $pass . '.pdf';
1105  $archiver->handInTestResult($active, $pass, $filename);
1106  unlink($filename);
1107 
1108  return;
1109  }
static makeDirParents($a_dir)
Create a new directory and all parent directories.
print $file
Output class for assessment test evaluation.
$results
$filename
Definition: buildRTE.php:89
Class ilTestArchiver.
global $ilSetting
Definition: privfeed.php:40
$path
Definition: index.php:22
static generatePDF($pdf_output, $output_mode, $filename=null)
static getWebspaceDir($mode="filesystem")
get webspace directory
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ autosaveCmd()

ilTestPlayerAbstractGUI::autosaveCmd ( )

Definition at line 724 of file class.ilTestPlayerAbstractGUI.php.

References $_POST, $res, $result, canSaveResult(), exit, getCurrentQuestionId(), isParticipantsAnswerFixed(), and saveQuestionSolution().

725  {
726  $result = "";
727  if (is_array($_POST) && count($_POST) > 0)
728  {
729  if( $this->isParticipantsAnswerFixed($this->getCurrentQuestionId()) )
730  {
731  $result = '-IGNORE-';
732  }
733  else
734  {
735  $res = $this->saveQuestionSolution(TRUE);
736  if ($res)
737  {
738  $result = $this->lng->txt("autosave_success");
739  }
740  else
741  {
742  $result = $this->lng->txt("autosave_failed");
743  }
744  }
745  }
746  if (!$this->canSaveResult())
747  {
748  // this was the last action in the test, saving is no longer allowed
749  $result = $this->ctrl->getLinkTarget($this, "redirectAfterAutosave", "", true);
750  }
751  echo $result;
752  exit;
753  }
exit
Definition: login.php:54
$_POST['username']
Definition: cron.php:12
saveQuestionSolution($force=FALSE)
saves the user input of a question
$result
+ Here is the call graph for this function:

◆ backConfirmFinishCmd()

ilTestPlayerAbstractGUI::backConfirmFinishCmd ( )

Definition at line 1619 of file class.ilTestPlayerAbstractGUI.php.

1620  {
1621  $this->ctrl->redirect($this, 'gotoQuestion');
1622  }

◆ backFromSummaryCmd()

ilTestPlayerAbstractGUI::backFromSummaryCmd ( )

Go back to the last active question from the summary.

Go back to the last active question from the summary

Definition at line 806 of file class.ilTestPlayerAbstractGUI.php.

807  {
808  $this->ctrl->setParameter($this, "activecommand", "back");
809  $this->ctrl->redirect($this, "redirectQuestion");
810  }

◆ calculateSequence()

ilTestPlayerAbstractGUI::calculateSequence ( )

Calculates the sequence to determine the next question.

Definition at line 682 of file class.ilTestPlayerAbstractGUI.php.

References $_GET, and $sequence.

Referenced by ilTestOutputGUI\executeCommand(), ilTestPlayerDynamicQuestionSetGUI\executeCommand(), and ilTestOutputGUI\redirectQuestionCmd().

683  {
684  $sequence = $_GET["sequence"];
685  if (!$sequence) $sequence = $this->testSequence->getFirstSequence();
686  if (array_key_exists("save_error", $_GET))
687  {
688  if ($_GET["save_error"] == 1)
689  {
690  return $sequence;
691  }
692  }
693  switch ($_GET["activecommand"])
694  {
695  case "next":
696  $sequence = $this->testSequence->getNextSequence($sequence);
697  break;
698  case "previous":
699  $sequence = $this->testSequence->getPreviousSequence($sequence);
700  break;
701  }
702  return $sequence;
703  }
$_GET["client_id"]
+ Here is the caller graph for this function:

◆ canSaveResult()

ilTestPlayerAbstractGUI::canSaveResult ( )
abstractprotected

Referenced by autosaveCmd(), and updateWorkingTime().

+ Here is the caller graph for this function:

◆ checkOnlineTestAccess()

ilTestPlayerAbstractGUI::checkOnlineTestAccess ( )

check access restrictions like client ip, partipating user etc.

check access restrictions like client ip, partipating user etc.

public

Definition at line 1239 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser, and ilUtil\sendInfo().

1240  {
1241  global $ilUser;
1242 
1243  // check if user is invited to participate
1244  $user = $this->object->getInvitedUsers($ilUser->getId());
1245  if (!is_array ($user) || count($user)!=1)
1246  {
1247  ilUtil::sendInfo($this->lng->txt("user_not_invited"), true);
1248  $this->ctrl->redirectByClass("ilobjtestgui", "backToRepository");
1249  }
1250 
1251  $user = array_pop($user);
1252  // check if client ip is set and if current remote addr is equal to stored client-ip
1253  if (strcmp($user["clientip"],"")!=0 && strcmp($user["clientip"],$_SERVER["REMOTE_ADDR"])!=0)
1254  {
1255  ilUtil::sendInfo($this->lng->txt("user_wrong_clientip"), true);
1256  $this->ctrl->redirectByClass("ilobjtestgui", "backToRepository");
1257  }
1258  }
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:

◆ codeConfirmedCmd()

ilTestPlayerAbstractGUI::codeConfirmedCmd ( )

Definition at line 640 of file class.ilTestPlayerAbstractGUI.php.

641  {
642  $this->ctrl->setParameter($this, "activecommand", "start");
643  $this->ctrl->redirect($this, "redirectQuestion");
644  }

◆ confirmFinishCmd()

ilTestPlayerAbstractGUI::confirmFinishCmd ( )
protected

The final submission of a test was confirmed.

Definition at line 815 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser, finishTestCmd(), and getContentBlockName().

816  {
817  $this->finishTestCmd(false);
818  }
finishTestCmd($requires_confirmation=true)
+ Here is the call graph for this function:

◆ confirmHintRequestCmd()

ilTestPlayerAbstractGUI::confirmHintRequestCmd ( )
protected

Go to hint request confirmation.

Definition at line 1781 of file class.ilTestPlayerAbstractGUI.php.

References ilAssQuestionHintRequestGUI\CMD_CONFIRM_REQUEST, and saveQuestionSolution().

1782  {
1783  $this->saveQuestionSolution();
1784 
1785  require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionHintRequestGUI.php';
1786  $this->ctrl->redirectByClass('ilAssQuestionHintRequestGUI', ilAssQuestionHintRequestGUI::CMD_CONFIRM_REQUEST);
1787  }
saveQuestionSolution($force=FALSE)
saves the user input of a question
+ Here is the call graph for this function:

◆ confirmSubmitAnswers()

ilTestPlayerAbstractGUI::confirmSubmitAnswers ( )

confirm submit results if confirm then results are submitted and the screen will be redirected to the startpage of the test public

Definition at line 1339 of file class.ilTestPlayerAbstractGUI.php.

References getContentBlockName().

1340  {
1341  $this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_submit_answers_confirm.html", "Modules/Test");
1342  $this->tpl->setCurrentBlock("adm_content");
1343  if ($this->object->isTestFinished($this->testSession->getActiveId()))
1344  {
1345  $this->tpl->setCurrentBlock("not_submit_allowed");
1346  $this->tpl->setVariable("TEXT_ALREADY_SUBMITTED", $this->lng->txt("tst_already_submitted"));
1347  $this->tpl->setVariable("BTN_OK", $this->lng->txt("tst_show_answer_sheet"));
1348  } else
1349  {
1350  $this->tpl->setCurrentBlock("submit_allowed");
1351  $this->tpl->setVariable("TEXT_CONFIRM_SUBMIT_RESULTS", $this->lng->txt("tst_confirm_submit_answers"));
1352  $this->tpl->setVariable("BTN_OK", $this->lng->txt("tst_submit_results"));
1353  }
1354  $this->tpl->setVariable("BTN_BACK", $this->lng->txt("back"));
1355  $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this, "finalSubmission"));
1356  $this->tpl->parseCurrentBlock();
1357  }
getContentBlockName()
Returns the name of the current content block (depends on the kiosk mode setting) ...
+ Here is the call graph for this function:

◆ customRedirectRequired()

ilTestPlayerAbstractGUI::customRedirectRequired ( )
protected

Definition at line 1971 of file class.ilTestPlayerAbstractGUI.php.

Referenced by afterTestPassFinishedCmd(), and outIntroductionPageCmd().

1972  {
1973  return false;
1974  }
+ Here is the caller graph for this function:

◆ determineInlineScoreDisplay()

ilTestPlayerAbstractGUI::determineInlineScoreDisplay ( )
protected

Definition at line 183 of file class.ilTestPlayerAbstractGUI.php.

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

184  {
185  $show_question_inline_score = FALSE;
186  if ($this->object->getAnswerFeedbackPoints())
187  {
188  $show_question_inline_score = TRUE;
189  return $show_question_inline_score;
190  }
191  return $show_question_inline_score;
192  }
+ Here is the caller graph for this function:

◆ displayCodeCmd()

ilTestPlayerAbstractGUI::displayCodeCmd ( )

Definition at line 629 of file class.ilTestPlayerAbstractGUI.php.

References getContentBlockName().

630  {
631  $this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_anonymous_code_presentation.html", "Modules/Test");
632  $this->tpl->setCurrentBlock("adm_content");
633  $this->tpl->setVariable("TEXT_ANONYMOUS_CODE_CREATED", $this->lng->txt("tst_access_code_created"));
634  $this->tpl->setVariable("TEXT_ANONYMOUS_CODE", $this->testSession->getAccessCodeFromSession());
635  $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
636  $this->tpl->setVariable("CONTINUE", $this->lng->txt("continue_work"));
637  $this->tpl->parseCurrentBlock();
638  }
getContentBlockName()
Returns the name of the current content block (depends on the kiosk mode setting) ...
+ Here is the call graph for this function:

◆ endingTimeReached()

ilTestPlayerAbstractGUI::endingTimeReached ( )
private

handle endingTimeReached

Definition at line 1306 of file class.ilTestPlayerAbstractGUI.php.

References ilFormat\ftimestamp2datetimeDB(), and ilUtil\sendInfo().

Referenced by outTestPage().

1307  {
1308  ilUtil::sendInfo(sprintf($this->lng->txt("detail_ending_time_reached"), ilFormat::ftimestamp2datetimeDB($this->object->getEndingTime())));
1309  $this->testSession->increasePass();
1310  $this->testSession->setLastSequence(0);
1311  $this->testSession->saveToDb();
1312  if (!$this->object->canViewResults())
1313  {
1314  $this->outIntroductionPage();
1315  }
1316  else
1317  {
1318  $this->ctrl->redirectByClass("ilTestEvaluationGUI", "outUserResultsOverview");
1319  }
1320  }
ftimestamp2datetimeDB($aTimestamp)
Timestamp to database datetime.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ensureExistingTestSession()

ilTestPlayerAbstractGUI::ensureExistingTestSession ( ilTestSession  $testSession)
protected

Definition at line 67 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser, ilTestSession\doesAccessCodeInSessionExists(), ilTestSession\getAccessCodeFromSession(), ilTestSession\getActiveId(), ilTestSession\isAnonymousUser(), ilTestSession\saveToDb(), ilTestSession\setAnonymousId(), and ilTestSession\setUserId().

Referenced by ilTestOutputGUI\executeCommand(), and ilTestPlayerDynamicQuestionSetGUI\executeCommand().

68  {
69  if( $testSession->getActiveId() )
70  {
71  return;
72  }
73 
74  global $ilUser;
75 
76  $testSession->setUserId($ilUser->getId());
77 
78  if( $testSession->isAnonymousUser() )
79  {
80  if( !$testSession->doesAccessCodeInSessionExists() )
81  {
82  return;
83  }
84 
85  $testSession->setAnonymousId($testSession->getAccessCodeFromSession());
86  }
87 
88  $testSession->saveToDb();
89  }
setAnonymousId($anonymous_id)
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fillQuestionRelatedNavigation()

ilTestPlayerAbstractGUI::fillQuestionRelatedNavigation ( assQuestionGUI  $questionGUI)
protected

renders the elements for the question related navigation

private ilTemplate $tpl ilLanguage $lng

Parameters
assQuestionGUI$questionGUI

Definition at line 1797 of file class.ilTestPlayerAbstractGUI.php.

References ilTestServiceGUI\$lng, $pass, ilTestServiceGUI\$tpl, handleQuestionActionCmd(), isFirstPageInSequence(), isLastQuestionInSequence(), nextQuestionCmd(), postponeQuestionCmd(), previousQuestionCmd(), and showInstantResponseCmd().

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

1798  {
1799  global $tpl, $lng;
1800 
1801  $parseQuestionRelatedNavigation = false;
1802 
1803  switch( 1 )
1804  {
1805  case $this->object->getSpecificAnswerFeedback():
1806  case $this->object->getGenericAnswerFeedback():
1807  case $this->object->getAnswerFeedbackPoints():
1808  case $this->object->getInstantFeedbackSolution():
1809 
1810  $tpl->setCurrentBlock("direct_feedback");
1811  $tpl->setVariable("CMD_SHOW_INSTANT_RESPONSE", 'showInstantResponse');
1812  $tpl->setVariable("TEXT_SHOW_INSTANT_RESPONSE", $lng->txt("check"));
1813  $tpl->parseCurrentBlock();
1814 
1815  $parseQuestionRelatedNavigation = true;
1816  }
1817 
1818  if( $this->object->isOfferingQuestionHintsEnabled() )
1819  {
1820  $questionId = $questionGUI->object->getId();
1821  $activeId = $this->testSession->getActiveId();
1822  $pass = $this->testSession->getPass();
1823 
1824  require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionHintTracking.php';
1825  $questionHintTracking = new ilAssQuestionHintTracking($questionId, $activeId, $pass);
1826 
1827  $requestsExist = $questionHintTracking->requestsExist();
1828  $requestsPossible = $questionHintTracking->requestsPossible();
1829 
1830  if( $requestsPossible )
1831  {
1832  if( $requestsExist )
1833  {
1834  $buttonText = $lng->txt("button_request_next_question_hint");
1835  }
1836  else
1837  {
1838  $buttonText = $lng->txt("button_request_question_hint");
1839  }
1840 
1841  $tpl->setCurrentBlock("button_request_next_question_hint");
1842  $tpl->setVariable("CMD_REQUEST_NEXT_QUESTION_HINT", 'confirmHintRequest');
1843  $tpl->setVariable("TEXT_REQUEST_NEXT_QUESTION_HINT", $buttonText);
1844  $tpl->parseCurrentBlock();
1845 
1846  $parseQuestionRelatedNavigation = true;
1847  }
1848 
1849  if( $requestsExist )
1850  {
1851  $tpl->setCurrentBlock("button_show_requested_question_hints");
1852  $tpl->setVariable("CMD_SHOW_REQUESTED_QUESTION_HINTS", 'showRequestedHintList');
1853  $tpl->setVariable("TEXT_SHOW_REQUESTED_QUESTION_HINTS", $lng->txt("button_show_requested_question_hints"));
1854  $tpl->parseCurrentBlock();
1855 
1856  $parseQuestionRelatedNavigation = true;
1857  }
1858  }
1859 
1860  if( $parseQuestionRelatedNavigation )
1861  {
1862  $tpl->setCurrentBlock("question_related_navigation");
1863  $tpl->parseCurrentBlock();
1864  }
1865  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ finishTestCmd()

ilTestPlayerAbstractGUI::finishTestCmd (   $requires_confirmation = true)

Definition at line 848 of file class.ilTestPlayerAbstractGUI.php.

References $_GET, $_SESSION, $ilUser, ilObjTest\allObligationsAnswered(), ilSession\getIdleValue(), and performTestPassFinishedTasks().

Referenced by confirmFinishCmd().

849  {
850  global $ilUser, $ilAuth;
851 
852  unset($_SESSION["tst_next"]);
853 
854  $active_id = $this->testSession->getActiveId();
855  $actualpass = $this->object->_getPass($active_id);
856 
857  $allObligationsAnswered = ilObjTest::allObligationsAnswered($this->testSession->getTestId(), $active_id, $actualpass);
858 
859  /*
860  * The following "endgames" are possible prior to actually finishing the test:
861  * - Obligations (Ability to finish the test.)
862  * If not all obligatory questions are answered, the user is presented a list
863  * showing the deficits.
864  * - Examview (Will to finish the test.)
865  * With the examview, the participant can review all answers given in ILIAS or a PDF prior to
866  * commencing to the finished test.
867  * - Last pass allowed (Reassuring the will to finish the test.)
868  * If passes are limited, on the last pass, an additional confirmation is to be displayed.
869  */
870 
871  // Obligations fulfilled? redirectQuestion : one or the other summary -> no finish
872  if( $this->object->areObligationsEnabled() && !$allObligationsAnswered )
873  {
874  if( $this->object->getListOfQuestions() )
875  {
876  $_GET['activecommand'] = 'summary_obligations';
877  }
878  else
879  {
880  $_GET['activecommand'] = 'summary_obligations_only';
881  }
882 
883  $this->redirectQuestionCmd();
884  return;
885  }
886 
887  // Examview enabled & !reviewed & requires_confirmation? test_submission_overview (review gui)
888  if ($this->object->getEnableExamview() && !isset($_GET['reviewed']) && $requires_confirmation)
889  {
890  $_GET['activecommand'] = 'test_submission_overview';
891  $this->redirectQuestionCmd();
892  return;
893  }
894 
895  // Last try in limited tries & !confirmed
896  if (($requires_confirmation) && ($actualpass == $this->object->getNrOfTries() - 1))
897  {
898  // show confirmation page
899  return $this->confirmFinishTestCmd();
900  }
901 
902  // Last try in limited tries & confirmed?
903  if(($actualpass == $this->object->getNrOfTries() - 1) && (!$requires_confirmation))
904  {
905  $ilAuth->setIdle(ilSession::getIdleValue(), false);
906  $ilAuth->setExpire(0);
907  switch($this->object->getMailNotification())
908  {
909  case 1:
910  $this->object->sendSimpleNotification($active_id);
911  break;
912  case 2:
913  $this->object->sendAdvancedNotification($active_id);
914  break;
915  }
916  }
917 
918  // Non-last try finish
919  if(!$_SESSION['tst_pass_finish'])
920  {
921  if(!$_SESSION['tst_pass_finish']) $_SESSION['tst_pass_finish'] = 1;
922  if($this->object->getMailNotificationType() == 1)
923  {
924  switch($this->object->getMailNotification())
925  {
926  case 1:
927  $this->object->sendSimpleNotification($active_id);
928  break;
929  case 2:
930  $this->object->sendAdvancedNotification($active_id);
931  break;
932  }
933  }
934  }
935 
936  // no redirect request loops after test pass finished tasks has been performed
937 
938  $this->performTestPassFinishedTasks($actualpass);
939 
940  $this->testSession->setLastFinishedPass($this->testSession->getPass());
941  $this->testSession->increaseTestPass();
942 
943  $this->ctrl->redirect($this, 'afterTestPassFinished');
944  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
static allObligationsAnswered($test_id, $active_id, $pass)
checks wether all questions marked as obligatory were answered within the test pass with given testId...
$_GET["client_id"]
static getIdleValue($fixedMode=false)
Returns the idle time in seconds.
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getContentBlockName()

ilTestPlayerAbstractGUI::getContentBlockName ( )

Returns the name of the current content block (depends on the kiosk mode setting)

Returns
string The name of the content block

Definition at line 1739 of file class.ilTestPlayerAbstractGUI.php.

Referenced by confirmFinishCmd(), confirmSubmitAnswers(), displayCodeCmd(), outQuestionSummaryCmd(), prepareSummaryPage(), prepareTestPageOutput(), redirectAfterAutosaveCmd(), showFinalStatementCmd(), showListOfAnswers(), and showMaximumAllowedUsersReachedMessage().

1740  {
1741  if ($this->object->getKioskMode())
1742  {
1743  $this->tpl->setBodyClass("kiosk");
1744  $this->tpl->setAddFooter(FALSE);
1745  return "CONTENT";
1746  }
1747  else
1748  {
1749  return "ADM_CONTENT";
1750  }
1751  }
+ Here is the caller graph for this function:

◆ getCurrentQuestionId()

ilTestPlayerAbstractGUI::getCurrentQuestionId ( )
abstractprotected

Referenced by autosaveCmd(), and redirectAfterAutosaveCmd().

+ Here is the caller graph for this function:

◆ getIntroductionPageButtonLabel()

ilTestPlayerAbstractGUI::getIntroductionPageButtonLabel ( )
protected
Returns
string

Definition at line 1984 of file class.ilTestPlayerAbstractGUI.php.

Referenced by populatePreviousButtonsLeadingToIntroduction().

1985  {
1986  if( $this->testSession->isObjectiveOriented() )
1987  {
1988  return $this->lng->txt("save_back_to_objective_container");
1989  }
1990 
1991  return $this->lng->txt("save_introduction");
1992  }
+ Here is the caller graph for this function:

◆ getKioskHead()

ilTestPlayerAbstractGUI::getKioskHead ( )

Definition at line 1136 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser, and ilObjTest\buildExamId().

Referenced by outQuestionSummaryCmd(), and populateKioskHead().

1137  {
1138  global $ilUser;
1139 
1140  $template = new ilTemplate('tpl.il_as_tst_kiosk_head.html', true, true, 'Modules/Test');
1141  if ($this->object->getShowKioskModeTitle())
1142  {
1143  $template->setCurrentBlock("kiosk_show_title");
1144  $template->setVariable("TEST_TITLE", $this->object->getTitle());
1145  $template->parseCurrentBlock();
1146  }
1147  if ($this->object->getShowKioskModeParticipant())
1148  {
1149  $template->setCurrentBlock("kiosk_show_participant");
1150  $template->setVariable("PARTICIPANT_NAME_TXT", $this->lng->txt("login_as"));
1151  $template->setVariable("PARTICIPANT_NAME", $ilUser->getFullname());
1152  $template->setVariable("PARTICIPANT_LOGIN", $ilUser->getLogin());
1153  $template->setVariable("PARTICIPANT_MATRICULATION", $ilUser->getMatriculation());
1154  $template->setVariable("PARTICIPANT_EMAIL", $ilUser->getEmail());
1155  $template->parseCurrentBlock();
1156  }
1157  if ($this->object->isShowExamIdInTestPassEnabled())
1158  {
1159  $exam_id = ilObjTest::buildExamId(
1160  $this->testSession->getActiveId() , $this->testSession->getPass(), $this->object->getId()
1161  );
1162 
1163  $template->setCurrentBlock("kiosk_show_exam_id");
1164  $template->setVariable("EXAM_ID_TXT", $this->lng->txt("exam_id"));
1165  $template->setVariable( "EXAM_ID", $exam_id);
1166  $template->parseCurrentBlock();
1167  }
1168  return $template->get();
1169  }
special template class to simplify handling of ITX/PEAR
global $ilUser
Definition: imgupload.php:15
static buildExamId($active_id, $pass, $test_obj_id=null)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getLockParameter()

ilTestPlayerAbstractGUI::getLockParameter ( )

Definition at line 580 of file class.ilTestPlayerAbstractGUI.php.

References $_GET, and $_POST.

Referenced by handlePasswordProtectionRedirect(), and startPlayerCmd().

581  {
582  if( isset($_POST['lock']) && strlen($_POST['lock']) )
583  {
584  return $_POST['lock'];
585  }
586  elseif( isset($_GET['lock']) && strlen($_GET['lock']) )
587  {
588  return $_GET['lock'];
589  }
590 
591  return null;
592  }
$_POST['username']
Definition: cron.php:12
$_GET["client_id"]
+ Here is the caller graph for this function:

◆ getMarkedQuestions()

ilTestPlayerAbstractGUI::getMarkedQuestions ( )
protected

Definition at line 1884 of file class.ilTestPlayerAbstractGUI.php.

References ilObjTest\_getSolvedQuestions().

Referenced by ilTestPlayerDynamicQuestionSetGUI\showQuestionSelectionCmd(), and ilTestPlayerDynamicQuestionSetGUI\showTrackedQuestionListCmd().

1885  {
1886  if( $this->object->getShowMarker() )
1887  {
1888  include_once "./Modules/Test/classes/class.ilObjTest.php";
1889  $marked_questions = ilObjTest::_getSolvedQuestions($this->testSession->getActiveId());
1890  }
1891  else
1892  {
1893  $marked_questions = array();
1894  }
1895 
1896  return $marked_questions;
1897  }
_getSolvedQuestions($active_id, $question_fi=null)
get solved questions
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ gotoQuestionCmd()

ilTestPlayerAbstractGUI::gotoQuestionCmd ( )
protected

Go to the question with the active sequence.

Definition at line 791 of file class.ilTestPlayerAbstractGUI.php.

References $_GET, $_POST, $_SESSION, and saveQuestionSolution().

792  {
793  if (is_array($_POST) && count($_POST) > 0) $this->saveQuestionSolution();
794  $this->ctrl->setParameter($this, "sequence", $_GET["sequence"]);
795  $this->ctrl->setParameter($this, "activecommand", "gotoquestion");
796  $this->ctrl->saveParameter($this, "tst_javascript");
797  if (strlen($_GET['qst_selection'])) $_SESSION['qst_selection'] = $_GET['qst_selection'];
798  $this->ctrl->redirect($this, "redirectQuestion");
799  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
$_POST['username']
Definition: cron.php:12
saveQuestionSolution($force=FALSE)
saves the user input of a question
$_GET["client_id"]
+ Here is the call graph for this function:

◆ handlePasswordProtectionRedirect()

ilTestPlayerAbstractGUI::handlePasswordProtectionRedirect ( )
protected

Definition at line 1937 of file class.ilTestPlayerAbstractGUI.php.

References getLockParameter().

Referenced by ilTestOutputGUI\executeCommand(), and ilTestPlayerDynamicQuestionSetGUI\executeCommand().

1938  {
1939  if( $this->ctrl->getNextClass() == 'iltestpasswordprotectiongui' )
1940  {
1941  return;
1942  }
1943 
1944  if( !$this->passwordChecker->isPasswordProtectionPageRedirectRequired() )
1945  {
1946  return;
1947  }
1948 
1949  $this->ctrl->setParameter($this, 'lock', $this->getLockParameter());
1950 
1951  $nextCommand = $this->ctrl->getCmdClass().'::'.$this->ctrl->getCmd();
1952  $this->ctrl->setParameterByClass('ilTestPasswordProtectionGUI', 'nextCommand', $nextCommand);
1953  $this->ctrl->redirectByClass('ilTestPasswordProtectionGUI', 'showPasswordForm');
1954  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ handleQuestionActionCmd()

ilTestPlayerAbstractGUI::handleQuestionActionCmd ( )
abstractprotected

Referenced by fillQuestionRelatedNavigation().

+ Here is the caller graph for this function:

◆ handleUserSettings()

ilTestPlayerAbstractGUI::handleUserSettings ( )

Handles some form parameters on starting and resuming a test.

Definition at line 649 of file class.ilTestPlayerAbstractGUI.php.

References $_POST, and $ilUser.

Referenced by ilTestPlayerDynamicQuestionSetGUI\resumePlayerCmd(), resumePlayerCmd(), and startPlayerCmd().

650  {
651  global $ilUser;
652 
653  if ($_POST["chb_javascript"])
654  {
655  $ilUser->writePref("tst_javascript", 1);
656  }
657  else
658  {
659  $ilUser->writePref("tst_javascript", 0);
660  }
661 
662  // hide previous results
663  if ($this->object->getNrOfTries() != 1)
664  {
665  if ($this->object->getUsePreviousAnswers() == 1)
666  {
667  if ($_POST["chb_use_previous_answers"])
668  {
669  $ilUser->writePref("tst_use_previous_answers", 1);
670  }
671  else
672  {
673  $ilUser->writePref("tst_use_previous_answers", 0);
674  }
675  }
676  }
677  }
$_POST['username']
Definition: cron.php:12
global $ilUser
Definition: imgupload.php:15
+ Here is the caller graph for this function:

◆ initProcessLocker()

ilTestPlayerAbstractGUI::initProcessLocker (   $activeId)
protected

Definition at line 91 of file class.ilTestPlayerAbstractGUI.php.

References $ilDB.

Referenced by ilTestOutputGUI\executeCommand(), and ilTestPlayerDynamicQuestionSetGUI\executeCommand().

92  {
93  global $ilDB;
94 
95  $settings = new ilSetting('assessment');
96 
97  require_once 'Modules/Test/classes/class.ilTestProcessLockerFactory.php';
98  $processLockerFactory = new ilTestProcessLockerFactory($settings, $ilDB);
99 
100  $processLockerFactory->setActiveId($activeId);
101 
102  $this->processLocker = $processLockerFactory->getLocker();
103  }
ILIAS Setting Class.
global $ilDB
+ Here is the caller graph for this function:

◆ initTestCmd()

ilTestPlayerAbstractGUI::initTestCmd ( )
protected

Start a test for the first time after a redirect.

Definition at line 608 of file class.ilTestPlayerAbstractGUI.php.

References showMaximumAllowedUsersReachedMessage().

609  {
610  if ($this->object->checkMaximumAllowedUsers() == FALSE)
611  {
613  }
614 
615  if( $this->testSession->isAnonymousUser() && !$this->testSession->getActiveId() )
616  {
617  $accessCode = $this->testSession->createNewAccessCode();
618 
619  $this->testSession->setAccessCodeToSession($accessCode);
620  $this->testSession->setAnonymousId($accessCode);
621  $this->testSession->saveToDb();
622 
623  $this->ctrl->redirect($this, 'displayCode');
624  }
625 
626  $this->ctrl->redirect($this, 'startTest');
627  }
+ Here is the call graph for this function:

◆ isFirstPageInSequence()

ilTestPlayerAbstractGUI::isFirstPageInSequence (   $sequence)
abstractprotected

Referenced by fillQuestionRelatedNavigation(), and populatePreviousButtons().

+ Here is the caller graph for this function:

◆ isLastQuestionInSequence()

ilTestPlayerAbstractGUI::isLastQuestionInSequence ( assQuestionGUI  $questionGUI)
abstractprotected

Referenced by fillQuestionRelatedNavigation().

+ Here is the caller graph for this function:

◆ isMaxProcessingTimeReached()

ilTestPlayerAbstractGUI::isMaxProcessingTimeReached ( )

Checks wheather the maximum processing time is reached or not.

Checks wheather the maximum processing time is reached or not

Returns
bool TRUE if the maximum processing time is reached, FALSE otherwise

Definition at line 168 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser.

Referenced by ilTestOutputGUI\canSaveResult(), isTestAccessible(), and outTestPage().

169  {
170  global $ilUser;
171  $active_id = $this->testSession->getActiveId();
172  $starting_time = $this->object->getStartingTimeOfUser($active_id);
173  if ($starting_time === FALSE)
174  {
175  return FALSE;
176  }
177  else
178  {
179  return $this->object->isMaxProcessingTimeReached($starting_time, $active_id);
180  }
181  }
global $ilUser
Definition: imgupload.php:15
+ Here is the caller graph for this function:

◆ isNrOfTriesReached()

ilTestPlayerAbstractGUI::isNrOfTriesReached ( )

nr of tries exceeded

Definition at line 1275 of file class.ilTestPlayerAbstractGUI.php.

Referenced by ilTestOutputGUI\canSaveResult(), and isTestAccessible().

1276  {
1277  return $this->object->hasNrOfTriesRestriction() && $this->object->isNrOfTriesReached($this->testSession->getPass());
1278  }
+ Here is the caller graph for this function:

◆ isParticipantsAnswerFixed()

◆ isTestAccessible()

ilTestPlayerAbstractGUI::isTestAccessible ( )

test accessible returns true if the user can perform the test

Definition at line 1264 of file class.ilTestPlayerAbstractGUI.php.

References isMaxProcessingTimeReached(), and isNrOfTriesReached().

1265  {
1266  return !$this->isNrOfTriesReached()
1267  and !$this->isMaxProcessingTimeReached()
1268  and $this->object->startingTimeReached()
1269  and !$this->object->endingTimeReached();
1270  }
endingTimeReached()
handle endingTimeReached
isMaxProcessingTimeReached()
Checks wheather the maximum processing time is reached or not.
+ Here is the call graph for this function:

◆ isTestSignRedirectRequired()

ilTestPlayerAbstractGUI::isTestSignRedirectRequired (   $activeId,
  $lastFinishedPass 
)
protected

Definition at line 1004 of file class.ilTestPlayerAbstractGUI.php.

References ilSession\get(), and IL_COMP_MODULE.

Referenced by afterTestPassFinishedCmd().

1005  {
1006  if( !$this->object->getSignSubmission() )
1007  {
1008  return false;
1009  }
1010 
1011  if( !is_null(ilSession::get("signed_{$activeId}_{$lastFinishedPass}")) )
1012  {
1013  return false;
1014  }
1015 
1016  global $ilPluginAdmin;
1017 
1018  $activePlugins = $ilPluginAdmin->getActivePluginsForSlot(IL_COMP_MODULE, 'Test', 'tsig');
1019 
1020  if( !count($activePlugins) )
1021  {
1022  return false;
1023  }
1024 
1025  return true;
1026  }
static get($a_var)
Get a value.
const IL_COMP_MODULE
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ markQuestionCmd()

ilTestPlayerAbstractGUI::markQuestionCmd ( )
protected

Set a question solved.

Definition at line 771 of file class.ilTestPlayerAbstractGUI.php.

References saveQuestionSolution().

772  {
773  $this->saveQuestionSolution();
774  $this->ctrl->setParameter($this, "activecommand", "setmarked");
775  $this->ctrl->redirect($this, "redirectQuestion");
776  }
saveQuestionSolution($force=FALSE)
saves the user input of a question
+ Here is the call graph for this function:

◆ maxProcessingTimeReached()

ilTestPlayerAbstractGUI::maxProcessingTimeReached ( )

Outputs a message when the maximum processing time is reached.

Outputs a message when the maximum processing time is reached

public

Definition at line 1329 of file class.ilTestPlayerAbstractGUI.php.

Referenced by outTestPage().

1330  {
1331  $this->outIntroductionPage();
1332  }
+ Here is the caller graph for this function:

◆ nextQuestionCmd()

ilTestPlayerAbstractGUI::nextQuestionCmd ( )
abstractprotected

Referenced by fillQuestionRelatedNavigation().

+ Here is the caller graph for this function:

◆ outCorrectSolution()

ilTestPlayerAbstractGUI::outCorrectSolution ( )

Creates an output of the solution of an answer compared to the correct solution.

public

Definition at line 1629 of file class.ilTestPlayerAbstractGUI.php.

References $_GET, ilObjStyleSheet\getContentStylePath(), ilTestServiceGUI\getCorrectSolutionOutput(), ilUtil\getStyleSheetLocation(), and ilObjStyleSheet\getSyntaxStylePath().

1630  {
1631  $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_as_tst_correct_solution.html", "Modules/Test");
1632 
1633  include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
1634  $this->tpl->setCurrentBlock("ContentStyle");
1635  $this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", ilObjStyleSheet::getContentStylePath(0));
1636  $this->tpl->parseCurrentBlock();
1637 
1638  $this->tpl->setCurrentBlock("SyntaxStyle");
1639  $this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET", ilObjStyleSheet::getSyntaxStylePath());
1640  $this->tpl->parseCurrentBlock();
1641 
1642  $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "Modules/Test"), "print");
1643  if ($this->object->getShowSolutionAnswersOnly())
1644  {
1645  $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "Modules/Test"), "print");
1646  }
1647 
1648  $this->tpl->setCurrentBlock("adm_content");
1649  $solution = $this->getCorrectSolutionOutput($_GET["evaluation"], $_GET["active_id"], $_GET["pass"]);
1650  $this->tpl->setVariable("OUTPUT_SOLUTION", $solution);
1651  $this->tpl->setVariable("TEXT_BACK", $this->lng->txt("back"));
1652  $this->ctrl->saveParameter($this, "pass");
1653  $this->ctrl->saveParameter($this, "active_id");
1654  $this->tpl->setVariable("URL_BACK", $this->ctrl->getLinkTarget($this, "outUserResultsOverview"));
1655  $this->tpl->parseCurrentBlock();
1656  }
getCorrectSolutionOutput($question_id, $active_id, $pass)
Returns an output of the solution to an answer compared to the correct solution.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
$_GET["client_id"]
getSyntaxStylePath()
get syntax style path
getContentStylePath($a_style_id)
get content style path
+ Here is the call graph for this function:

◆ outIntroductionPageCmd()

ilTestPlayerAbstractGUI::outIntroductionPageCmd ( )

Creates the introduction page for a test.

Creates the introduction page for a test

Definition at line 151 of file class.ilTestPlayerAbstractGUI.php.

References customRedirectRequired(), and performCustomRedirect().

Referenced by redirectBackCmd().

152  {
153  if( $this->customRedirectRequired() )
154  {
155  $this->performCustomRedirect();
156  }
157 
158  $this->ctrl->redirectByClass("ilobjtestgui", "infoScreen");
159  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ outObligationsOnlySummaryCmd()

ilTestPlayerAbstractGUI::outObligationsOnlySummaryCmd ( )

Definition at line 1603 of file class.ilTestPlayerAbstractGUI.php.

References outQuestionSummaryCmd().

1604  {
1605  return $this->outQuestionSummaryCmd(true, true, true, true);
1606  }
outQuestionSummaryCmd($fullpage=true, $contextFinishTest=false, $obligationsNotAnswered=false, $obligationsFilter=false)
Output of a summary of all test questions for test participants.
+ Here is the call graph for this function:

◆ outProcessingTime()

ilTestPlayerAbstractGUI::outProcessingTime (   $active_id)

Definition at line 1359 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser, ilDatePresentation\formatDate(), and IL_CAL_FKT_GETDATE.

Referenced by ilTestPlayerDynamicQuestionSetGUI\outCurrentlyFinishedPage(), outQuestionSummaryCmd(), outTestPage(), ilTestPlayerDynamicQuestionSetGUI\showQuestionSelectionCmd(), and ilTestPlayerDynamicQuestionSetGUI\showTrackedQuestionListCmd().

1360  {
1361  global $ilUser;
1362 
1363  $starting_time = $this->object->getStartingTimeOfUser($active_id);
1364  $processing_time = $this->object->getProcessingTimeInSeconds($active_id);
1365  $processing_time_minutes = floor($processing_time / 60);
1366  $processing_time_seconds = $processing_time - $processing_time_minutes * 60;
1367  $str_processing_time = "";
1368  if ($processing_time_minutes > 0)
1369  {
1370  $str_processing_time = $processing_time_minutes . " " . ($processing_time_minutes == 1 ? $this->lng->txt("minute") : $this->lng->txt("minutes"));
1371  }
1372  if ($processing_time_seconds > 0)
1373  {
1374  if (strlen($str_processing_time) > 0) $str_processing_time .= " " . $this->lng->txt("and") . " ";
1375  $str_processing_time .= $processing_time_seconds . " " . ($processing_time_seconds == 1 ? $this->lng->txt("second") : $this->lng->txt("seconds"));
1376  }
1377  $time_left = $starting_time + $processing_time - mktime();
1378  $time_left_minutes = floor($time_left / 60);
1379  $time_left_seconds = $time_left - $time_left_minutes * 60;
1380  $str_time_left = "";
1381  if ($time_left_minutes > 0)
1382  {
1383  $str_time_left = $time_left_minutes . " " . ($time_left_minutes == 1 ? $this->lng->txt("minute") : $this->lng->txt("minutes"));
1384  }
1385  if ($time_left < 300)
1386  {
1387  if ($time_left_seconds > 0)
1388  {
1389  if (strlen($str_time_left) > 0) $str_time_left .= " " . $this->lng->txt("and") . " ";
1390  $str_time_left .= $time_left_seconds . " " . ($time_left_seconds == 1 ? $this->lng->txt("second") : $this->lng->txt("seconds"));
1391  }
1392  }
1393  $date = getdate($starting_time);
1394  $formattedStartingTime = ilDatePresentation::formatDate(new ilDateTime($date,IL_CAL_FKT_GETDATE));
1395  /*
1396  $formattedStartingTime = ilFormat::formatDate(
1397  $date["year"]."-".
1398  sprintf("%02d", $date["mon"])."-".
1399  sprintf("%02d", $date["mday"])." ".
1400  sprintf("%02d", $date["hours"]).":".
1401  sprintf("%02d", $date["minutes"]).":".
1402  sprintf("%02d", $date["seconds"])
1403  );
1404  */
1405  $datenow = getdate();
1406  $this->tpl->setCurrentBlock("enableprocessingtime");
1407  $this->tpl->setVariable("USER_WORKING_TIME",
1408  sprintf(
1409  $this->lng->txt("tst_time_already_spent"),
1410  $formattedStartingTime,
1411  $str_processing_time
1412  )
1413  );
1414  $this->tpl->setVariable("USER_REMAINING_TIME", sprintf($this->lng->txt("tst_time_already_spent_left"), $str_time_left));
1415  $this->tpl->parseCurrentBlock();
1416  $template = new ilTemplate("tpl.workingtime.js.html", TRUE, TRUE, 'Modules/Test');
1417  $template->setVariable("STRING_MINUTE", $this->lng->txt("minute"));
1418  $template->setVariable("STRING_MINUTES", $this->lng->txt("minutes"));
1419  $template->setVariable("STRING_SECOND", $this->lng->txt("second"));
1420  $template->setVariable("STRING_SECONDS", $this->lng->txt("seconds"));
1421  $template->setVariable("STRING_TIMELEFT", $this->lng->txt("tst_time_already_spent_left"));
1422  $template->setVariable("AND", strtolower($this->lng->txt("and")));
1423  $template->setVariable("YEAR", $date["year"]);
1424  $template->setVariable("MONTH", $date["mon"]-1);
1425  $template->setVariable("DAY", $date["mday"]);
1426  $template->setVariable("HOUR", $date["hours"]);
1427  $template->setVariable("MINUTE", $date["minutes"]);
1428  $template->setVariable("SECOND", $date["seconds"]);
1429  if ($this->object->isEndingTimeEnabled() && preg_match("/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/", $this->object->getEndingTime(), $matches))
1430  {
1431  $template->setVariable("ENDYEAR", $matches[1]);
1432  $template->setVariable("ENDMONTH", $matches[2]-1);
1433  $template->setVariable("ENDDAY", $matches[3]);
1434  $template->setVariable("ENDHOUR", $matches[4]);
1435  $template->setVariable("ENDMINUTE", $matches[5]);
1436  $template->setVariable("ENDSECOND", $matches[6]);
1437  }
1438  $template->setVariable("YEARNOW", $datenow["year"]);
1439  $template->setVariable("MONTHNOW", $datenow["mon"]-1);
1440  $template->setVariable("DAYNOW", $datenow["mday"]);
1441  $template->setVariable("HOURNOW", $datenow["hours"]);
1442  $template->setVariable("MINUTENOW", $datenow["minutes"]);
1443  $template->setVariable("SECONDNOW", $datenow["seconds"]);
1444  $template->setVariable("PTIME_M", $processing_time_minutes);
1445  $template->setVariable("PTIME_S", $processing_time_seconds);
1446 
1447  $this->tpl->setCurrentBlock("HeadContent");
1448  $this->tpl->setVariable("CONTENT_BLOCK", $template->get());
1449  $this->tpl->parseCurrentBlock();
1450  }
special template class to simplify handling of ITX/PEAR
static formatDate(ilDateTime $date)
Format a date public.
Date and time handling
const IL_CAL_FKT_GETDATE
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ outQuestionSummaryCmd()

ilTestPlayerAbstractGUI::outQuestionSummaryCmd (   $fullpage = true,
  $contextFinishTest = false,
  $obligationsNotAnswered = false,
  $obligationsFilter = false 
)

Output of a summary of all test questions for test participants.

Definition at line 1455 of file class.ilTestPlayerAbstractGUI.php.

References $_GET, $data, $row, $sequence, ilObjTest\_getSolvedQuestions(), getContentBlockName(), ilPanelGUI\getInstance(), getKioskHead(), ilPanelGUI\HEADING_STYLE_SUBHEADING, outProcessingTime(), ilPanelGUI\PANEL_STYLE_SECONDARY, ilUtil\prepareFormOutput(), and ilUtil\sendFailure().

Referenced by outObligationsOnlySummaryCmd(), outQuestionSummaryWithObligationsInfoCmd(), ilTestOutputGUI\redirectQuestionCmd(), and showSideList().

1456  {
1457  if( $fullpage )
1458  {
1459  $this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_question_summary.html", "Modules/Test");
1460  }
1461 
1462  if( $obligationsNotAnswered )
1463  {
1464  ilUtil::sendFailure($this->lng->txt('not_all_obligations_answered'));
1465  }
1466 
1467  $active_id = $this->testSession->getActiveId();
1468  $result_array = & $this->testSequence->getSequenceSummary($obligationsFilter);
1469 
1470  $marked_questions = array();
1471 
1472  if( $this->object->getKioskMode() && $fullpage )
1473  {
1474  $head = $this->getKioskHead();
1475  if( strlen($head) )
1476  {
1477  $this->tpl->setCurrentBlock("kiosk_options");
1478  $this->tpl->setVariable("KIOSK_HEAD", $head);
1479  $this->tpl->parseCurrentBlock();
1480  }
1481  }
1482 
1483  if( $this->object->getShowMarker() )
1484  {
1485  include_once "./Modules/Test/classes/class.ilObjTest.php";
1486  $marked_questions = ilObjTest::_getSolvedQuestions($active_id);
1487  }
1488 
1489  $data = array();
1490 
1491  foreach( $result_array as $key => $value )
1492  {
1493  $this->ctrl->setParameter($this, "sequence", $value["sequence"]);
1494 
1495  $href = $this->ctrl->getLinkTargetByClass(get_class($this), "gotoQuestion");
1496 
1497  $this->tpl->setVariable("VALUE_QUESTION_TITLE", "<a href=\"".$this->ctrl->getLinkTargetByClass(get_class($this), "gotoQuestion")."\">" . $this->object->getQuestionTitle($value["title"]) . "</a>");
1498 
1499  $this->ctrl->setParameter($this, "sequence", $_GET["sequence"]);
1500 
1501  $description = "";
1502  if( $this->object->getListOfQuestionsDescription() )
1503  {
1504  $description = $value["description"];
1505  }
1506 
1507  $points = "";
1508  if( !$this->object->getTitleOutput() )
1509  {
1510  $points = $value["points"]."&nbsp;".$this->lng->txt("points_short");
1511  }
1512 
1513  $marked = false;
1514  if( count($marked_questions) )
1515  {
1516  if( array_key_exists($value["qid"], $marked_questions) )
1517  {
1518  $obj = $marked_questions[$value["qid"]];
1519  if( $obj["solved"] == 1 )
1520  {
1521  $marked = true;
1522  }
1523  }
1524  }
1525 
1526  array_push($data, array(
1527  'order' => $value["nr"],
1528  'href' => $href,
1529  'title' => $this->object->getQuestionTitle($value["title"]),
1530  'description' => $description,
1531  'worked_through' => ($value["worked_through"]) ? true : false,
1532  'postponed' => ($value["postponed"]) ? $this->lng->txt("postponed") : '',
1533  'points' => $points,
1534  'marked' => $marked,
1535  'sequence' => $value["sequence"],
1536  'obligatory' => $value['obligatory'],
1537  'isAnswered' => $value['isAnswered']
1538  ));
1539  }
1540 
1541  $this->ctrl->setParameter($this, "sequence", $_GET["sequence"]);
1542 
1543  if( $fullpage )
1544  {
1545  include_once "./Modules/Test/classes/tables/class.ilListOfQuestionsTableGUI.php";
1546  $table_gui = new ilListOfQuestionsTableGUI($this, 'backFromSummary');
1547 
1548  $table_gui->setShowPointsEnabled( !$this->object->getTitleOutput() );
1549  $table_gui->setShowMarkerEnabled( $this->object->getShowMarker() );
1550  $table_gui->setObligationsNotAnswered( $obligationsNotAnswered );
1551  $table_gui->setShowObligationsEnabled( $this->object->areObligationsEnabled() );
1552  $table_gui->setObligationsFilterEnabled( $obligationsFilter );
1553 
1554  $table_gui->init();
1555 
1556  $table_gui->setData($data);
1557 
1558  $this->tpl->setVariable('TABLE_LIST_OF_QUESTIONS', $table_gui->getHTML());
1559 
1560  if( $this->object->getEnableProcessingTime() )
1561  {
1562  $this->outProcessingTime($active_id);
1563  }
1564  }
1565  else
1566  {
1567  $template = new ilTemplate('tpl.il_as_tst_list_of_questions_short.html', true, true, 'Modules/Test');
1568 
1569  foreach( $data as $row )
1570  {
1571  if( strlen($row['description']) )
1572  {
1573  $template->setCurrentBlock('description');
1574  $template->setVariable("DESCRIPTION", $row['description']);
1575  $template->parseCurrentBlock();
1576  }
1577 
1578  $active = ($row['sequence'] == $this->sequence) ? ' active' : '';
1579 
1580  $template->setCurrentBlock('item');
1581  $template->setVariable('CLASS', ($row['walked_through']) ? ('answered'.$active) : ('unanswered'.$active));
1582  $template->setVariable('ITEM', ilUtil::prepareFormOutput($row['title']));
1583  $template->setVariable('SEQUENCE', $row['sequence']);
1584  $template->parseCurrentBlock();
1585  }
1586 
1587  require_once 'Services/UIComponent/Panel/classes/class.ilPanelGUI.php';
1588  $panel = ilPanelGUI::getInstance();
1589  $panel->setHeadingStyle(ilPanelGUI::HEADING_STYLE_SUBHEADING);
1590  $panel->setPanelStyle(ilPanelGUI::PANEL_STYLE_SECONDARY);
1591  $panel->setHeading($this->lng->txt('list_of_questions'));
1592  $panel->setBody($template->get());
1593 
1594  $this->tpl->setVariable('LIST_OF_QUESTIONS', $panel->getHTML());
1595  }
1596  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
$_GET["client_id"]
_getSolvedQuestions($active_id, $question_fi=null)
get solved questions
getContentBlockName()
Returns the name of the current content block (depends on the kiosk mode setting) ...
special template class to simplify handling of ITX/PEAR
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const HEADING_STYLE_SUBHEADING
static getInstance()
Get instance.
const PANEL_STYLE_SECONDARY
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ outQuestionSummaryWithObligationsInfoCmd()

ilTestPlayerAbstractGUI::outQuestionSummaryWithObligationsInfoCmd ( )

Definition at line 1598 of file class.ilTestPlayerAbstractGUI.php.

References outQuestionSummaryCmd().

1599  {
1600  return $this->outQuestionSummaryCmd(true, true, true, false);
1601  }
outQuestionSummaryCmd($fullpage=true, $contextFinishTest=false, $obligationsNotAnswered=false, $obligationsFilter=false)
Output of a summary of all test questions for test participants.
+ Here is the call graph for this function:

◆ outResultsToplistCmd()

ilTestPlayerAbstractGUI::outResultsToplistCmd ( )

Definition at line 120 of file class.ilTestPlayerAbstractGUI.php.

References $ilCtrl.

121  {
122  global $ilCtrl;
123  $ilCtrl->redirectByClass('ilTestToplistGUI', 'outResultsToplist');
124  }
global $ilCtrl
Definition: ilias.php:18

◆ outTestPage()

ilTestPlayerAbstractGUI::outTestPage (   $directfeedback)

Outputs the question of the active sequence.

Definition at line 1174 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser, endingTimeReached(), isMaxProcessingTimeReached(), ilObjTest\lookupExamId(), maxProcessingTimeReached(), outProcessingTime(), outWorkingForm(), populateKioskHead(), prepareTestPageOutput(), and TEST_POSTPONE.

Referenced by ilTestOutputGUI\redirectQuestionCmd(), ilTestPlayerDynamicQuestionSetGUI\showInstantResponseCmd(), and ilTestPlayerDynamicQuestionSetGUI\showQuestionCmd().

1175  {
1176  global $rbacsystem, $ilUser;
1177 
1178  $this->prepareTestPageOutput();
1179 
1180  if (!$rbacsystem->checkAccess("read", $this->object->getRefId()))
1181  {
1182  // only with read access it is possible to run the test
1183  $this->ilias->raiseError($this->lng->txt("cannot_execute_test"),$this->ilias->error_obj->MESSAGE);
1184  }
1185 
1186  if ($this->isMaxProcessingTimeReached())
1187  {
1188  $this->maxProcessingTimeReached();
1189  return;
1190  }
1191 
1192  if ($this->object->endingTimeReached())
1193  {
1194  $this->endingTimeReached();
1195  return;
1196  }
1197 
1198  if ($this->object->getKioskMode())
1199  {
1200  $this->populateKioskHead();
1201  }
1202 
1203  $this->tpl->setVariable("TEST_ID", $this->object->getTestId());
1204  $this->tpl->setVariable("LOGIN", $ilUser->getLogin());
1205  $this->tpl->setVariable("SEQ_ID", $this->sequence);
1206  $this->tpl->setVariable("QUEST_ID", $this->testSequence->questions[$this->sequence]);
1207 
1208  if ($this->object->getEnableProcessingTime())
1209  {
1210  $this->outProcessingTime($this->testSession->getActiveId());
1211  }
1212 
1213  $this->tpl->setVariable("FORM_TIMESTAMP", time());
1214 
1215  $this->tpl->setVariable("PAGETITLE", "- " . $this->object->getTitle());
1216 
1217  $postpone = ( $this->object->getSequenceSettings() == TEST_POSTPONE );
1218 
1219  if ($this->object->isShowExamIdInTestPassEnabled() && !$this->object->getKioskMode())
1220  {
1221  $this->tpl->setCurrentBlock('exam_id_footer');
1222  $this->tpl->setVariable('EXAM_ID_VAL', ilObjTest::lookupExamId(
1223  $this->testSession->getActiveId(), $this->testSession->getPass(), $this->object->getId()
1224  ));
1225  $this->tpl->setVariable('EXAM_ID_TXT', $this->lng->txt('exam_id'));
1226  $this->tpl->parseCurrentBlock();
1227  }
1228 
1229  $this->outWorkingForm($this->sequence, $this->object->getTestId(), $postpone, $directfeedback);
1230  }
const TEST_POSTPONE
maxProcessingTimeReached()
Outputs a message when the maximum processing time is reached.
endingTimeReached()
handle endingTimeReached
lookupExamId($active_id, $pass)
redirection script todo: (a better solution should control the processing via a xml file) ...
outWorkingForm($sequence="", $test_id, $postpone_allowed, $directfeedback=false)
global $ilUser
Definition: imgupload.php:15
isMaxProcessingTimeReached()
Checks wheather the maximum processing time is reached or not.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ outUserListOfAnswerPassesCmd()

ilTestPlayerAbstractGUI::outUserListOfAnswerPassesCmd ( )

Definition at line 1760 of file class.ilTestPlayerAbstractGUI.php.

1761  {
1762  $this->ctrl->redirectByClass(
1763  array('ilRepositoryGUI', 'ilObjTestGUI', 'ilTestEvaluationGUI'), "outUserListOfAnswerPasses"
1764  );
1765  }

◆ outUserResultsOverviewCmd()

ilTestPlayerAbstractGUI::outUserResultsOverviewCmd ( )

Definition at line 1753 of file class.ilTestPlayerAbstractGUI.php.

1754  {
1755  $this->ctrl->redirectByClass(
1756  array('ilRepositoryGUI', 'ilObjTestGUI', 'ilTestEvaluationGUI'), "outUserResultsOverview"
1757  );
1758  }

◆ outWorkingForm()

ilTestPlayerAbstractGUI::outWorkingForm (   $sequence = "",
  $test_id,
  $postpone_allowed,
  $directfeedback = false 
)
abstractprotected

Referenced by outTestPage(), and updateWorkingTime().

+ Here is the caller graph for this function:

◆ passDetails()

ilTestPlayerAbstractGUI::passDetails ( )

Output of the learners view of an existing test pass.

Output of the learners view of an existing test pass

public

Definition at line 1287 of file class.ilTestPlayerAbstractGUI.php.

References $_GET.

1288  {
1289  if (array_key_exists("pass", $_GET) && (strlen($_GET["pass"]) > 0))
1290  {
1291  $this->ctrl->saveParameter($this, "pass");
1292  $this->ctrl->saveParameter($this, "active_id");
1293  $this->outTestResults(false, $_GET["pass"]);
1294  }
1295  else
1296  {
1297  $this->outTestResults(false);
1298  }
1299  }
$_GET["client_id"]

◆ performCustomRedirect()

ilTestPlayerAbstractGUI::performCustomRedirect ( )
protected

Definition at line 1976 of file class.ilTestPlayerAbstractGUI.php.

Referenced by afterTestPassFinishedCmd(), and outIntroductionPageCmd().

1977  {
1978  return;
1979  }
+ Here is the caller graph for this function:

◆ performTestPassFinishedTasks()

ilTestPlayerAbstractGUI::performTestPassFinishedTasks (   $finishedPass)
protected

Definition at line 946 of file class.ilTestPlayerAbstractGUI.php.

Referenced by finishTestCmd(), and redirectAfterAutosaveCmd().

947  {
948  if( !$this->testSession->isSubmitted() )
949  {
950  $this->testSession->setSubmitted(1);
951  $this->testSession->setSubmittedTimestamp(date('Y-m-d H:i:s'));
952  $this->testSession->saveToDb();
953  }
954  }
+ Here is the caller graph for this function:

◆ populateCancelButtonBlock()

ilTestPlayerAbstractGUI::populateCancelButtonBlock ( )
protected

Definition at line 320 of file class.ilTestPlayerAbstractGUI.php.

Referenced by ilTestPlayerDynamicQuestionSetGUI\outCurrentlyFinishedPage(), ilTestOutputGUI\outWorkingForm(), ilTestPlayerDynamicQuestionSetGUI\outWorkingForm(), and prepareSummaryPage().

321  {
322  $this->tpl->setCurrentBlock('cancel_test');
323  $this->tpl->setVariable('TEXT_CANCELTEST', $this->lng->txt('cancel_test'));
324  $this->ctrl->setParameterByClass(get_class($this), 'cancelTest', 'true');
325  $this->tpl->setVariable('HREF_CANCELTEXT', $this->ctrl->getLinkTargetByClass(get_class($this), 'outIntroductionPage'));
326  $this->ctrl->setParameterByClass(get_class($this), 'cancelTest', null);
327  $this->tpl->parseCurrentBlock();
328  }
+ Here is the caller graph for this function:

◆ populateCharSelector()

ilTestPlayerAbstractGUI::populateCharSelector ( )
protected

Definition at line 474 of file class.ilTestPlayerAbstractGUI.php.

References $ilSetting, ilCharSelectorGUI\_getCurrentGUI(), ilCharSelectorConfig\ENABLED, and ilUtil\getImagePath().

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

475  {
476  global $ilSetting;
477  if ($ilSetting->get('char_selector_availability') > 0)
478  {
479  require_once 'Services/UIComponent/CharSelector/classes/class.ilCharSelectorGUI.php';
480  $char_selector = ilCharSelectorGUI::_getCurrentGUI($this->object);
481  if ($char_selector->getConfig()->getAvailability() == ilCharSelectorConfig::ENABLED)
482  {
483  $char_selector->addToPage();
484  $this->tpl->setCurrentBlock('char_selector');
485  $this->tpl->setVariable("CHAR_SELECTOR_IMAGE", ilUtil::getImagePath('icon_omega_test.svg','Services/UIComponent/CharSelector'));
486  $this->tpl->setVariable("CHAR_SELECTOR_TEXT", $this->lng->txt('char_selector'));
487  $this->tpl->setVariable("CHAR_SELECTOR_TEMPLATE", $char_selector->getSelectorHtml());
488  $this->tpl->parseCurrentBlock();
489  }
490  }
491  }
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static _getCurrentGUI(ilObjTest $a_test_obj=null)
Get the GUI that is used for the currently available selector (other GUI instances may exist for conf...
global $ilSetting
Definition: privfeed.php:40
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateContentStyleBlock()

ilTestPlayerAbstractGUI::populateContentStyleBlock ( )
protected

Definition at line 524 of file class.ilTestPlayerAbstractGUI.php.

References ilObjStyleSheet\getContentStylePath().

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

525  {
526  include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
527  $this->tpl->setCurrentBlock( "ContentStyle" );
528  $this->tpl->setVariable( "LOCATION_CONTENT_STYLESHEET",
530  );
531  $this->tpl->parseCurrentBlock();
532  }
getContentStylePath($a_style_id)
get content style path
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateGenericFeedbackBlock()

ilTestPlayerAbstractGUI::populateGenericFeedbackBlock (   $question_gui)
protected

Definition at line 444 of file class.ilTestPlayerAbstractGUI.php.

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

445  {
446  $this->tpl->setCurrentBlock( "answer_feedback" );
447  $this->tpl->setVariable( "ANSWER_FEEDBACK",
448  $question_gui->getAnswerFeedbackOutput( $this->testSession->getActiveId(),
449  NULL
450  )
451  );
452  $this->tpl->parseCurrentBlock();
453  }
+ Here is the caller graph for this function:

◆ populateKioskHead()

ilTestPlayerAbstractGUI::populateKioskHead ( )
protected

Definition at line 1923 of file class.ilTestPlayerAbstractGUI.php.

References getKioskHead(), and ilUtil\sendInfo().

Referenced by ilTestPlayerDynamicQuestionSetGUI\outCurrentlyFinishedPage(), outTestPage(), and prepareSummaryPage().

1924  {
1925  ilUtil::sendInfo(); // ???
1926 
1927  $head = $this->getKioskHead();
1928 
1929  if (strlen($head))
1930  {
1931  $this->tpl->setCurrentBlock("kiosk_options");
1932  $this->tpl->setVariable("KIOSK_HEAD", $head);
1933  $this->tpl->parseCurrentBlock();
1934  }
1935  }
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateLowerNextButtonBlockLeadingToEndOfTest()

ilTestPlayerAbstractGUI::populateLowerNextButtonBlockLeadingToEndOfTest ( )
protected

Definition at line 262 of file class.ilTestPlayerAbstractGUI.php.

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToEndOfTest().

263  {
264  $button = ilSubmitButton::getInstance();
265  $button->setPrimary( true );
266  $button->setCommand( 'nextQuestion' );
267  $button->setCaption( 'save_finish' );
268  $button->setId( 'bottomnextbutton' );
269 
270  $this->tpl->setCurrentBlock( "next_bottom" );
271  $this->tpl->setVariable( "BTN_NEXT", $button->render());
272  $this->tpl->parseCurrentBlock();
273  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateLowerNextButtonBlockLeadingToQuestion()

ilTestPlayerAbstractGUI::populateLowerNextButtonBlockLeadingToQuestion ( )
protected

Definition at line 230 of file class.ilTestPlayerAbstractGUI.php.

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToQuestion().

231  {
232  $button = ilSubmitButton::getInstance();
233  $button->setPrimary( true );
234  $button->setCommand( 'nextQuestion' );
235  $button->setCaption( 'save_next' );
236  $button->setId( 'bottomnextbutton' );
237 
238  $this->tpl->setCurrentBlock( "next_bottom" );
239  $this->tpl->setVariable( "BTN_NEXT", $button->render());
240  $this->tpl->parseCurrentBlock();
241  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateLowerNextButtonBlockLeadingToSummary()

ilTestPlayerAbstractGUI::populateLowerNextButtonBlockLeadingToSummary ( )
protected

Definition at line 294 of file class.ilTestPlayerAbstractGUI.php.

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToSummary().

295  {
296  $button = ilSubmitButton::getInstance();
297  $button->setPrimary( true );
298  $button->setCommand( 'nextQuestion' );
299  $button->setCaption( 'question_summary' );
300  $button->setId( 'bottomnextbutton' );
301 
302  $this->tpl->setCurrentBlock( "next_bottom" );
303  $this->tpl->setVariable( "BTN_NEXT", $button->render());
304  $this->tpl->parseCurrentBlock();
305  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateLowerPostponeButtonBlock()

ilTestPlayerAbstractGUI::populateLowerPostponeButtonBlock ( )
protected

Definition at line 380 of file class.ilTestPlayerAbstractGUI.php.

Referenced by populatePostponeButtons().

381  {
382  $this->tpl->setCurrentBlock( "postpone_bottom" );
383  $this->tpl->setVariable( "CMD_POSTPONE", 'postponeQuestion' );
384  $this->tpl->setVariable( "BTN_POSTPONE", $this->lng->txt( "postpone" ) );
385  $this->tpl->parseCurrentBlock();
386  }
+ Here is the caller graph for this function:

◆ populateLowerPreviousButtonBlock()

ilTestPlayerAbstractGUI::populateLowerPreviousButtonBlock (   $cmd,
  $label 
)
protected

Definition at line 416 of file class.ilTestPlayerAbstractGUI.php.

References $cmd.

Referenced by ilTestPlayerDynamicQuestionSetGUI\populatePreviousButtons(), populatePreviousButtonsLeadingToIntroduction(), and populatePreviousButtonsLeadingToQuestion().

417  {
418  $this->tpl->setCurrentBlock( "prev_bottom" );
419  $this->tpl->setVariable("CMD_PREV", $cmd);
420  $this->tpl->setVariable("BTN_PREV", $label);
421  $this->tpl->parseCurrentBlock();
422  }
$cmd
Definition: sahs_server.php:35
+ Here is the caller graph for this function:

◆ populateLowerQuestionSelectionButtonBlock()

ilTestPlayerAbstractGUI::populateLowerQuestionSelectionButtonBlock ( )
protected

Definition at line 358 of file class.ilTestPlayerAbstractGUI.php.

Referenced by populateQuestionSelectionButtons().

359  {
360  $this->tpl->setCurrentBlock( "summary_bottom" );
361  $this->tpl->setVariable( "CMD_SUMMARY", 'showQuestionSelection' );
362  $this->tpl->setVariable( "BTN_SUMMARY", $this->lng->txt( "tst_change_dyn_test_question_selection" ) );
363  $this->tpl->parseCurrentBlock();
364  }
+ Here is the caller graph for this function:

◆ populateLowerSummaryButtonBlock()

ilTestPlayerAbstractGUI::populateLowerSummaryButtonBlock ( )
protected

Definition at line 336 of file class.ilTestPlayerAbstractGUI.php.

Referenced by populateSummaryButtons().

337  {
338  $this->tpl->setCurrentBlock( "summary_bottom" );
339  $this->tpl->setVariable( "CMD_SUMMARY", 'showQuestionList' );
340  $this->tpl->setVariable( "BTN_SUMMARY", $this->lng->txt( "question_summary" ) );
341  $this->tpl->parseCurrentBlock();
342  }
+ Here is the caller graph for this function:

◆ populateNextButtonsLeadingToEndOfTest()

ilTestPlayerAbstractGUI::populateNextButtonsLeadingToEndOfTest ( )
protected

◆ populateNextButtonsLeadingToQuestion()

ilTestPlayerAbstractGUI::populateNextButtonsLeadingToQuestion ( )
protected

◆ populateNextButtonsLeadingToSummary()

ilTestPlayerAbstractGUI::populateNextButtonsLeadingToSummary ( )
protected

◆ populatePostponeButtons()

ilTestPlayerAbstractGUI::populatePostponeButtons ( )
protected

Definition at line 374 of file class.ilTestPlayerAbstractGUI.php.

References populateLowerPostponeButtonBlock(), and populateUpperPostponeButtonBlock().

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populatePreviousButtons()

ilTestPlayerAbstractGUI::populatePreviousButtons (   $sequence)
protected

Definition at line 194 of file class.ilTestPlayerAbstractGUI.php.

References isFirstPageInSequence(), populatePreviousButtonsLeadingToIntroduction(), and populatePreviousButtonsLeadingToQuestion().

Referenced by ilTestOutputGUI\outWorkingForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populatePreviousButtonsLeadingToIntroduction()

ilTestPlayerAbstractGUI::populatePreviousButtonsLeadingToIntroduction ( )
protected

Definition at line 406 of file class.ilTestPlayerAbstractGUI.php.

References getIntroductionPageButtonLabel(), populateLowerPreviousButtonBlock(), and populateUpperPreviousButtonBlock().

Referenced by populatePreviousButtons().

407  {
409  'previousQuestion', $this->getIntroductionPageButtonLabel()
410  );
412  'previousQuestion', $this->getIntroductionPageButtonLabel()
413  );
414  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populatePreviousButtonsLeadingToQuestion()

ilTestPlayerAbstractGUI::populatePreviousButtonsLeadingToQuestion ( )
protected

Definition at line 396 of file class.ilTestPlayerAbstractGUI.php.

References populateLowerPreviousButtonBlock(), and populateUpperPreviousButtonBlock().

Referenced by populatePreviousButtons().

397  {
399  'previousQuestion', $this->lng->txt( "save_previous" )
400  );
402  'previousQuestion', $this->lng->txt( "save_previous" )
403  );
404  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateQuestionMarkingBlockAsMarked()

ilTestPlayerAbstractGUI::populateQuestionMarkingBlockAsMarked ( )
protected

Definition at line 215 of file class.ilTestPlayerAbstractGUI.php.

References ilUtil\getImagePath().

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

216  {
217  $this->tpl->setCurrentBlock( "ismarked" );
218  $this->tpl->setVariable( "CMD_MARKED", 'unmarkQuestion' );
219  $this->tpl->setVariable( "IMAGE_MARKED", ilUtil::getImagePath( "marked.svg" ) );
220  $this->tpl->setVariable( "TEXT_MARKED", $this->lng->txt( "tst_remove_mark" ) );
221  $this->tpl->parseCurrentBlock();
222  }
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateQuestionMarkingBlockAsUnmarked()

ilTestPlayerAbstractGUI::populateQuestionMarkingBlockAsUnmarked ( )
protected

Definition at line 206 of file class.ilTestPlayerAbstractGUI.php.

References ilUtil\getImagePath().

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

207  {
208  $this->tpl->setCurrentBlock( "isnotmarked" );
209  $this->tpl->setVariable( "CMD_UNMARKED", 'markQuestion' );
210  $this->tpl->setVariable( "IMAGE_UNMARKED", ilUtil::getImagePath( "marked_.svg" ) );
211  $this->tpl->setVariable( "TEXT_UNMARKED", $this->lng->txt( "tst_question_mark" ) );
212  $this->tpl->parseCurrentBlock();
213  }
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateQuestionSelectionButtons()

ilTestPlayerAbstractGUI::populateQuestionSelectionButtons ( )
protected

◆ populateScoreBlock()

ilTestPlayerAbstractGUI::populateScoreBlock (   $reachedPoints,
  $maxPoints 
)
protected

Definition at line 455 of file class.ilTestPlayerAbstractGUI.php.

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

456  {
457  $scoreInformation = sprintf(
458  $this->lng->txt( "you_received_a_of_b_points" ), $reachedPoints, $maxPoints
459  );
460 
461  $this->tpl->setCurrentBlock( "received_points_information" );
462  $this->tpl->setVariable("RECEIVED_POINTS_INFORMATION", $scoreInformation);
463  $this->tpl->parseCurrentBlock();
464  }
+ Here is the caller graph for this function:

◆ populateSolutionBlock()

ilTestPlayerAbstractGUI::populateSolutionBlock (   $solutionoutput)
protected

Definition at line 466 of file class.ilTestPlayerAbstractGUI.php.

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

467  {
468  $this->tpl->setCurrentBlock( "solution_output" );
469  $this->tpl->setVariable( "CORRECT_SOLUTION", $this->lng->txt( "tst_best_solution_is" ) );
470  $this->tpl->setVariable( "QUESTION_FEEDBACK", $solutionoutput );
471  $this->tpl->parseCurrentBlock();
472  }
+ Here is the caller graph for this function:

◆ populateSpecificFeedbackBlock()

ilTestPlayerAbstractGUI::populateSpecificFeedbackBlock (   $question_gui)
protected

Definition at line 432 of file class.ilTestPlayerAbstractGUI.php.

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

433  {
434  $this->tpl->setCurrentBlock( "specific_feedback" );
435  $this->tpl->setVariable( "SPECIFIC_FEEDBACK",
436  $question_gui->getSpecificFeedbackOutput(
437  $this->testSession->getActiveId(),
438  NULL
439  )
440  );
441  $this->tpl->parseCurrentBlock();
442  }
+ Here is the caller graph for this function:

◆ populateSummaryButtons()

ilTestPlayerAbstractGUI::populateSummaryButtons ( )
protected

Definition at line 330 of file class.ilTestPlayerAbstractGUI.php.

References populateLowerSummaryButtonBlock(), and populateUpperSummaryButtonBlock().

Referenced by ilTestOutputGUI\outWorkingForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateSyntaxStyleBlock()

ilTestPlayerAbstractGUI::populateSyntaxStyleBlock ( )
protected

Definition at line 515 of file class.ilTestPlayerAbstractGUI.php.

References ilObjStyleSheet\getSyntaxStylePath().

Referenced by ilTestOutputGUI\outWorkingForm(), and ilTestPlayerDynamicQuestionSetGUI\outWorkingForm().

516  {
517  $this->tpl->setCurrentBlock( "SyntaxStyle" );
518  $this->tpl->setVariable( "LOCATION_SYNTAX_STYLESHEET",
520  );
521  $this->tpl->parseCurrentBlock();
522  }
getSyntaxStylePath()
get syntax style path
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateUpperNextButtonBlockLeadingToEndOfTest()

ilTestPlayerAbstractGUI::populateUpperNextButtonBlockLeadingToEndOfTest ( )
protected

Definition at line 275 of file class.ilTestPlayerAbstractGUI.php.

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToEndOfTest().

276  {
277  $button = ilSubmitButton::getInstance();
278  $button->setPrimary( true );
279  $button->setCommand( 'nextQuestion' );
280  $button->setCaption( 'save_finish' );
281  $button->setId( 'nextbutton' );
282 
283  $this->tpl->setCurrentBlock( "next" );
284  $this->tpl->setVariable( "BTN_NEXT", $button->render());
285  $this->tpl->parseCurrentBlock();
286  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateUpperNextButtonBlockLeadingToQuestion()

ilTestPlayerAbstractGUI::populateUpperNextButtonBlockLeadingToQuestion ( )
protected

Definition at line 243 of file class.ilTestPlayerAbstractGUI.php.

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToQuestion().

244  {
245  $button = ilSubmitButton::getInstance();
246  $button->setPrimary( true );
247  $button->setCommand( 'nextQuestion' );
248  $button->setCaption( 'save_next' );
249  $button->setId( 'nextbutton' );
250 
251  $this->tpl->setCurrentBlock( "next" );
252  $this->tpl->setVariable( "BTN_NEXT", $button->render());
253  $this->tpl->parseCurrentBlock();
254  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateUpperNextButtonBlockLeadingToSummary()

ilTestPlayerAbstractGUI::populateUpperNextButtonBlockLeadingToSummary ( )
protected

Definition at line 307 of file class.ilTestPlayerAbstractGUI.php.

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToSummary().

308  {
309  $button = ilSubmitButton::getInstance();
310  $button->setPrimary( true );
311  $button->setCommand( 'nextQuestion' );
312  $button->setCaption( 'question_summary' );
313  $button->setId( 'nextbutton' );
314 
315  $this->tpl->setCurrentBlock( "next" );
316  $this->tpl->setVariable( "BTN_NEXT", $button->render());
317  $this->tpl->parseCurrentBlock();
318  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ populateUpperPostponeButtonBlock()

ilTestPlayerAbstractGUI::populateUpperPostponeButtonBlock ( )
protected

Definition at line 388 of file class.ilTestPlayerAbstractGUI.php.

Referenced by populatePostponeButtons().

389  {
390  $this->tpl->setCurrentBlock( "postpone" );
391  $this->tpl->setVariable( "CMD_POSTPONE", 'postponeQuestion' );
392  $this->tpl->setVariable( "BTN_POSTPONE", $this->lng->txt( "postpone" ) );
393  $this->tpl->parseCurrentBlock();
394  }
+ Here is the caller graph for this function:

◆ populateUpperPreviousButtonBlock()

ilTestPlayerAbstractGUI::populateUpperPreviousButtonBlock (   $cmd,
  $label 
)
protected

Definition at line 424 of file class.ilTestPlayerAbstractGUI.php.

References $cmd.

Referenced by ilTestPlayerDynamicQuestionSetGUI\populatePreviousButtons(), populatePreviousButtonsLeadingToIntroduction(), and populatePreviousButtonsLeadingToQuestion().

425  {
426  $this->tpl->setCurrentBlock( "prev" );
427  $this->tpl->setVariable("CMD_PREV", $cmd);
428  $this->tpl->setVariable("BTN_PREV", $label);
429  $this->tpl->parseCurrentBlock();
430  }
$cmd
Definition: sahs_server.php:35
+ Here is the caller graph for this function:

◆ populateUpperQuestionSelectionButtonBlock()

ilTestPlayerAbstractGUI::populateUpperQuestionSelectionButtonBlock ( )
protected

Definition at line 366 of file class.ilTestPlayerAbstractGUI.php.

Referenced by populateQuestionSelectionButtons().

367  {
368  $this->tpl->setCurrentBlock( "summary" );
369  $this->tpl->setVariable( "CMD_SUMMARY", 'showQuestionSelection' );
370  $this->tpl->setVariable( "BTN_SUMMARY", $this->lng->txt( "tst_change_dyn_test_question_selection" ) );
371  $this->tpl->parseCurrentBlock();
372  }
+ Here is the caller graph for this function:

◆ populateUpperSummaryButtonBlock()

ilTestPlayerAbstractGUI::populateUpperSummaryButtonBlock ( )
protected

Definition at line 344 of file class.ilTestPlayerAbstractGUI.php.

Referenced by populateSummaryButtons().

345  {
346  $this->tpl->setCurrentBlock( "summary" );
347  $this->tpl->setVariable( "CMD_SUMMARY", 'showQuestionList' );
348  $this->tpl->setVariable( "BTN_SUMMARY", $this->lng->txt( "question_summary" ) );
349  $this->tpl->parseCurrentBlock();
350  }
+ Here is the caller graph for this function:

◆ postponeQuestionCmd()

ilTestPlayerAbstractGUI::postponeQuestionCmd ( )
abstractprotected

Referenced by fillQuestionRelatedNavigation().

+ Here is the caller graph for this function:

◆ prepareSummaryPage()

ilTestPlayerAbstractGUI::prepareSummaryPage ( )
protected

Definition at line 1899 of file class.ilTestPlayerAbstractGUI.php.

References getContentBlockName(), populateCancelButtonBlock(), and populateKioskHead().

Referenced by ilTestPlayerDynamicQuestionSetGUI\showQuestionSelectionCmd(), and ilTestPlayerDynamicQuestionSetGUI\showTrackedQuestionListCmd().

1900  {
1901  $this->tpl->addBlockFile(
1902  $this->getContentBlockName(), 'adm_content', 'tpl.il_as_tst_question_summary.html', 'Modules/Test'
1903  );
1904 
1905  if ($this->object->getShowCancel())
1906  {
1907  $this->populateCancelButtonBlock();
1908  }
1909 
1910  if ($this->object->getKioskMode())
1911  {
1912  $this->populateKioskHead();
1913  }
1914  }
getContentBlockName()
Returns the name of the current content block (depends on the kiosk mode setting) ...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ prepareTestPageOutput()

ilTestPlayerAbstractGUI::prepareTestPageOutput ( )
protected

Definition at line 1916 of file class.ilTestPlayerAbstractGUI.php.

References getContentBlockName().

Referenced by ilTestPlayerDynamicQuestionSetGUI\outCurrentlyFinishedPage(), and outTestPage().

1917  {
1918  $this->tpl->addBlockFile(
1919  $this->getContentBlockName(), 'adm_content', 'tpl.il_as_tst_output.html', 'Modules/Test'
1920  );
1921  }
getContentBlockName()
Returns the name of the current content block (depends on the kiosk mode setting) ...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ previousQuestionCmd()

ilTestPlayerAbstractGUI::previousQuestionCmd ( )
abstractprotected

Referenced by fillQuestionRelatedNavigation().

+ Here is the caller graph for this function:

◆ redirectAfterAutosaveCmd()

ilTestPlayerAbstractGUI::redirectAfterAutosaveCmd ( )

Definition at line 705 of file class.ilTestPlayerAbstractGUI.php.

References getContentBlockName(), getCurrentQuestionId(), and performTestPassFinishedTasks().

706  {
707  $active_id = $this->testSession->getActiveId();
708  $actualpass = $this->object->_getPass($active_id);
709 
710  $this->performTestPassFinishedTasks($actualpass);
711 
712  $this->testSession->setLastFinishedPass($this->testSession->getPass());
713  $this->testSession->increaseTestPass();
714 
715  $this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_redirect_autosave.html", "Modules/Test");
716  $this->tpl->setVariable("TEXT_REDIRECT", $this->lng->txt("redirectAfterSave"));
717  $this->tpl->setCurrentBlock("HeadContent");
718  $this->tpl->setVariable("CONTENT_BLOCK", "<meta http-equiv=\"refresh\" content=\"5; url=" . $this->ctrl->getLinkTarget($this, "afterTestPassFinished") . "\">");
719  $this->tpl->parseCurrentBlock();
720  }
getContentBlockName()
Returns the name of the current content block (depends on the kiosk mode setting) ...
+ Here is the call graph for this function:

◆ redirectBackCmd()

ilTestPlayerAbstractGUI::redirectBackCmd ( )

Definition at line 1111 of file class.ilTestPlayerAbstractGUI.php.

References outIntroductionPageCmd().

Referenced by afterTestPassFinishedCmd().

1112  {
1113  if(!$this->object->canViewResults())
1114  {
1115  $this->outIntroductionPageCmd();
1116  }
1117  else
1118  {
1119  $this->ctrl->redirectByClass("ilTestEvaluationGUI", "outUserResultsOverview");
1120  }
1121  }
outIntroductionPageCmd()
Creates the introduction page for a test.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resumePlayerCmd()

ilTestPlayerAbstractGUI::resumePlayerCmd ( )
protected

Resume a test at the last position.

Definition at line 597 of file class.ilTestPlayerAbstractGUI.php.

References handleUserSettings().

598  {
599  $this->handleUserSettings();
600 
601  $this->ctrl->setParameter($this, "activecommand", "resume");
602  $this->ctrl->redirect($this, "redirectQuestion");
603  }
handleUserSettings()
Handles some form parameters on starting and resuming a test.
+ Here is the call graph for this function:

◆ saveQuestionSolution()

ilTestPlayerAbstractGUI::saveQuestionSolution (   $force = FALSE)
abstract

saves the user input of a question

Referenced by autosaveCmd(), confirmHintRequestCmd(), gotoQuestionCmd(), markQuestionCmd(), showRequestedHintListCmd(), togglesidelistCmd(), unmarkQuestionCmd(), and updateWorkingTime().

+ Here is the caller graph for this function:

◆ saveTagsCmd()

ilTestPlayerAbstractGUI::saveTagsCmd ( )

Save tags for tagging gui.

Needed this function here because the test info page uses another class to send its form results

Definition at line 111 of file class.ilTestPlayerAbstractGUI.php.

112  {
113  include_once("./Services/Tagging/classes/class.ilTaggingGUI.php");
114  $tagging_gui = new ilTaggingGUI();
115  $tagging_gui->setObject($this->object->getId(), $this->object->getType());
116  $tagging_gui->saveInput();
117  $this->ctrl->redirectByClass("ilobjtestgui", "infoScreen");
118  }
Class ilTaggingGUI.

◆ setAnonymousIdCmd()

ilTestPlayerAbstractGUI::setAnonymousIdCmd ( )

Sets a session variable with the test access code for an anonymous test user.

Sets a session variable with the test access code for an anonymous test user

Definition at line 539 of file class.ilTestPlayerAbstractGUI.php.

References $_POST.

540  {
541  if( $this->testSession->isAnonymousUser() )
542  {
543  $this->testSession->setAccessCodeToSession($_POST['anonymous_id']);
544  }
545 
546  $this->ctrl->redirectByClass("ilobjtestgui", "infoScreen");
547  }
$_POST['username']
Definition: cron.php:12

◆ showFinalStatementCmd()

ilTestPlayerAbstractGUI::showFinalStatementCmd ( )

Definition at line 1126 of file class.ilTestPlayerAbstractGUI.php.

References getContentBlockName().

1127  {
1128  $template = new ilTemplate("tpl.il_as_tst_final_statement.html", TRUE, TRUE, "Modules/Test");
1129  $this->ctrl->setParameter($this, "skipfinalstatement", 1);
1130  $template->setVariable("FORMACTION", $this->ctrl->getFormAction($this, "afterTestPassFinished"));
1131  $template->setVariable("FINALSTATEMENT", $this->object->prepareTextareaOutput($this->object->getFinalStatement(), true));
1132  $template->setVariable("BUTTON_CONTINUE", $this->lng->txt("btn_next"));
1133  $this->tpl->setVariable($this->getContentBlockName(), $template->get());
1134  }
getContentBlockName()
Returns the name of the current content block (depends on the kiosk mode setting) ...
special template class to simplify handling of ITX/PEAR
+ Here is the call graph for this function:

◆ showInstantResponseCmd()

ilTestPlayerAbstractGUI::showInstantResponseCmd ( )
abstractprotected

Referenced by fillQuestionRelatedNavigation().

+ Here is the caller graph for this function:

◆ showListOfAnswers()

ilTestPlayerAbstractGUI::showListOfAnswers (   $active_id,
  $pass = NULL,
  $top_data = "",
  $bottom_data = "" 
)

Creates an output of the list of answers for a test participant during the test (only the actual pass will be shown)

Parameters
integer$active_idActive id of the participant
integer$passTest pass of the participant
boolean$testnavigationDeceides wheather to show a navigation for tests or not public

Definition at line 1667 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser, $pass, getContentBlockName(), ilTestServiceGUI\getResultsSignature(), ilTestServiceGUI\getResultsUserdata(), and ilUtil\getStyleSheetLocation().

1668  {
1669  global $ilUser;
1670 
1671  $this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_finish_list_of_answers.html", "Modules/Test");
1672 
1673  $result_array =& $this->object->getTestResult($active_id, $pass);
1674 
1675  $counter = 1;
1676  // output of questions with solutions
1677  foreach ($result_array as $question_data)
1678  {
1679  $question = $question_data["qid"];
1680  if (is_numeric($question))
1681  {
1682  $this->tpl->setCurrentBlock("printview_question");
1683  $question_gui = $this->object->createQuestionGUI("", $question);
1684  $template = new ilTemplate("tpl.il_as_qpl_question_printview.html", TRUE, TRUE, "Modules/TestQuestionPool");
1685  $template->setVariable("COUNTER_QUESTION", $counter.". ");
1686  $template->setVariable("QUESTION_TITLE", $question_gui->object->getTitle());
1687 
1688  $show_question_only = ($this->object->getShowSolutionAnswersOnly()) ? TRUE : FALSE;
1689  $result_output = $question_gui->getSolutionOutput($active_id, $pass, FALSE, FALSE, $show_question_only, $this->object->getShowSolutionFeedback());
1690  $template->setVariable("SOLUTION_OUTPUT", $result_output);
1691  $this->tpl->setVariable("QUESTION_OUTPUT", $template->get());
1692  $this->tpl->parseCurrentBlock();
1693  $counter ++;
1694  }
1695  }
1696 
1697  $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "Modules/Test"), "print");
1698  if ($this->object->getShowSolutionAnswersOnly())
1699  {
1700  $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "Modules/Test"), "print");
1701  }
1702  if (strlen($top_data))
1703  {
1704  $this->tpl->setCurrentBlock("top_data");
1705  $this->tpl->setVariable("TOP_DATA", $top_data);
1706  $this->tpl->parseCurrentBlock();
1707  }
1708 
1709  if (strlen($bottom_data))
1710  {
1711  $this->tpl->setCurrentBlock("bottom_data");
1712  $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
1713  $this->tpl->setVariable("BOTTOM_DATA", $bottom_data);
1714  $this->tpl->parseCurrentBlock();
1715  }
1716 
1717  $this->tpl->setCurrentBlock("adm_content");
1718  $this->tpl->setVariable("TXT_ANSWER_SHEET", $this->lng->txt("tst_list_of_answers"));
1719  $user_data = $this->getResultsUserdata($this->testSession, $active_id, TRUE);
1720  $signature = $this->getResultsSignature();
1721  $this->tpl->setVariable("USER_DETAILS", $user_data);
1722  $this->tpl->setVariable("SIGNATURE", $signature);
1723  $this->tpl->setVariable("TITLE", $this->object->getTitle());
1724  $this->tpl->setVariable("TXT_TEST_PROLOG", $this->lng->txt("tst_your_answers"));
1725  $invited_user =& $this->object->getInvitedUsers($ilUser->getId());
1726  $pagetitle = $this->object->getTitle() . " - " . $this->lng->txt("clientip") .
1727  ": " . $invited_user[$ilUser->getId()]["clientip"] . " - " .
1728  $this->lng->txt("matriculation") . ": " .
1729  $invited_user[$ilUser->getId()]["matriculation"];
1730  $this->tpl->setVariable("PAGETITLE", $pagetitle);
1731  $this->tpl->parseCurrentBlock();
1732  }
getResultsUserdata($testSession, $active_id, $overwrite_anonymity=FALSE)
Returns the user data for a test results output.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
getResultsSignature()
Returns HTML code for a signature field.
getContentBlockName()
Returns the name of the current content block (depends on the kiosk mode setting) ...
special template class to simplify handling of ITX/PEAR
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:

◆ showMaximumAllowedUsersReachedMessage()

ilTestPlayerAbstractGUI::showMaximumAllowedUsersReachedMessage ( )

Definition at line 1608 of file class.ilTestPlayerAbstractGUI.php.

References getContentBlockName().

Referenced by initTestCmd(), and ilTestPlayerDynamicQuestionSetGUI\resumePlayerCmd().

1609  {
1610  $this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_max_allowed_users_reached.html", "Modules/Test");
1611  $this->tpl->setCurrentBlock("adm_content");
1612  $this->tpl->setVariable("MAX_ALLOWED_USERS_MESSAGE", sprintf($this->lng->txt("tst_max_allowed_users_message"), $this->object->getAllowedUsersTimeGap()));
1613  $this->tpl->setVariable("MAX_ALLOWED_USERS_HEADING", sprintf($this->lng->txt("tst_max_allowed_users_heading"), $this->object->getAllowedUsersTimeGap()));
1614  $this->tpl->setVariable("BACK_TO_INTRODUCTION", $this->lng->txt("tst_results_back_introduction"));
1615  $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
1616  $this->tpl->parseCurrentBlock();
1617  }
getContentBlockName()
Returns the name of the current content block (depends on the kiosk mode setting) ...
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ showRequestedHintListCmd()

ilTestPlayerAbstractGUI::showRequestedHintListCmd ( )
protected

Go to requested hint list.

Definition at line 1770 of file class.ilTestPlayerAbstractGUI.php.

References ilAssQuestionHintRequestGUI\CMD_SHOW_LIST, and saveQuestionSolution().

1771  {
1772  $this->saveQuestionSolution();
1773 
1774  require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionHintRequestGUI.php';
1775  $this->ctrl->redirectByClass('ilAssQuestionHintRequestGUI', ilAssQuestionHintRequestGUI::CMD_SHOW_LIST);
1776  }
saveQuestionSolution($force=FALSE)
saves the user input of a question
+ Here is the call graph for this function:

◆ showSideList()

ilTestPlayerAbstractGUI::showSideList ( )
protected

Definition at line 493 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser, ilUtil\getImagePath(), ilUtil\getStyleSheetLocation(), and outQuestionSummaryCmd().

Referenced by ilTestOutputGUI\outWorkingForm().

494  {
495  global $ilUser;
496 
497  $show_side_list = $ilUser->getPref('side_list_of_questions');
498  $this->tpl->setCurrentBlock('view_sidelist');
499  $this->tpl->setVariable('IMAGE_SIDELIST',
500  ($show_side_list) ? ilUtil::getImagePath('view_remove.png'
501  ) : ilUtil::getImagePath('view_choose.png')
502  );
503  $this->tpl->setVariable('TEXT_SIDELIST',
504  ($show_side_list) ? $this->lng->txt('tst_hide_side_list'
505  ) : $this->lng->txt('tst_show_side_list')
506  );
507  $this->tpl->parseCurrentBlock();
508  if($show_side_list)
509  {
510  $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "ta_split.css", "Modules/Test"), "screen");
511  $this->outQuestionSummaryCmd(false);
512  }
513  }
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
outQuestionSummaryCmd($fullpage=true, $contextFinishTest=false, $obligationsNotAnswered=false, $obligationsFilter=false)
Output of a summary of all test questions for test participants.
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ startPlayerCmd()

ilTestPlayerAbstractGUI::startPlayerCmd ( )
protected

Start a test for the first time.

Start a test for the first time. This method contains a lock to prevent multiple submissions by the start test button

Definition at line 555 of file class.ilTestPlayerAbstractGUI.php.

References getLockParameter(), and handleUserSettings().

556  {
557  $testStartLock = $this->getLockParameter();
558  $isFirstTestStartRequest = false;
559 
560  $this->processLocker->requestTestStartLockCheckLock();
561 
562  if( $this->testSession->lookupTestStartLock() != $testStartLock )
563  {
564  $this->testSession->persistTestStartLock($testStartLock);
565  $isFirstTestStartRequest = true;
566  }
567 
568  $this->processLocker->releaseTestStartLockCheckLock();
569 
570  if( $isFirstTestStartRequest )
571  {
572  $this->handleUserSettings();
573  $this->ctrl->redirect($this, "initTest");
574  }
575 
576  $this->ctrl->setParameterByClass('ilObjTestGUI', 'lock', $testStartLock);
577  $this->ctrl->redirectByClass("ilobjtestgui", "redirectToInfoScreen");
578  }
handleUserSettings()
Handles some form parameters on starting and resuming a test.
+ Here is the call graph for this function:

◆ togglesidelistCmd()

ilTestPlayerAbstractGUI::togglesidelistCmd ( )

Toggle side list.

Definition at line 758 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser, and saveQuestionSolution().

759  {
760  global $ilUser;
761 
762  $show_side_list = $ilUser->getPref('side_list_of_questions');
763  $ilUser->writePref('side_list_of_questions', !$show_side_list);
764  $this->saveQuestionSolution();
765  $this->ctrl->redirect($this, "redirectQuestion");
766  }
saveQuestionSolution($force=FALSE)
saves the user input of a question
global $ilUser
Definition: imgupload.php:15
+ Here is the call graph for this function:

◆ unmarkQuestionCmd()

ilTestPlayerAbstractGUI::unmarkQuestionCmd ( )
protected

Set a question unsolved.

Definition at line 781 of file class.ilTestPlayerAbstractGUI.php.

References saveQuestionSolution().

782  {
783  $this->saveQuestionSolution();
784  $this->ctrl->setParameter($this, "activecommand", "resetmarked");
785  $this->ctrl->redirect($this, "redirectQuestion");
786  }
saveQuestionSolution($force=FALSE)
saves the user input of a question
+ Here is the call graph for this function:

◆ updateWorkingTime()

ilTestPlayerAbstractGUI::updateWorkingTime ( )

updates working time and stores state saveresult to see if question has to be stored or not

Definition at line 129 of file class.ilTestPlayerAbstractGUI.php.

References $_SESSION, canSaveResult(), outWorkingForm(), and saveQuestionSolution().

Referenced by ilTestPlayerDynamicQuestionSetGUI\handleQuestionActionCmd(), ilTestOutputGUI\handleQuestionActionCmd(), ilTestPlayerDynamicQuestionSetGUI\markQuestionCmd(), ilTestPlayerDynamicQuestionSetGUI\nextQuestionCmd(), ilTestPlayerDynamicQuestionSetGUI\postponeQuestionCmd(), ilTestOutputGUI\saveQuestionSolution(), ilTestPlayerDynamicQuestionSetGUI\showInstantResponseCmd(), ilTestPlayerDynamicQuestionSetGUI\showQuestionSelectionCmd(), ilTestPlayerDynamicQuestionSetGUI\showTrackedQuestionListCmd(), and ilTestPlayerDynamicQuestionSetGUI\unmarkQuestionCmd().

130  {
131  if ($_SESSION["active_time_id"])
132  {
133  $this->object->updateWorkingTime($_SESSION["active_time_id"]);
134  }
135  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $cmdCtrl

ilTestPlayerAbstractGUI::$cmdCtrl

Definition at line 30 of file class.ilTestPlayerAbstractGUI.php.

◆ $endingTimeReached

ilTestPlayerAbstractGUI::$endingTimeReached

Definition at line 32 of file class.ilTestPlayerAbstractGUI.php.

◆ $maxProcessingTimeReached

ilTestPlayerAbstractGUI::$maxProcessingTimeReached

Definition at line 31 of file class.ilTestPlayerAbstractGUI.php.

◆ $passwordChecker

ilTestPlayerAbstractGUI::$passwordChecker
protected

Definition at line 37 of file class.ilTestPlayerAbstractGUI.php.

◆ $processLocker

ilTestPlayerAbstractGUI::$processLocker
protected

Definition at line 42 of file class.ilTestPlayerAbstractGUI.php.

◆ $ref_id

ilTestPlayerAbstractGUI::$ref_id

Definition at line 27 of file class.ilTestPlayerAbstractGUI.php.

◆ $saveResult

ilTestPlayerAbstractGUI::$saveResult

◆ $sequence

◆ $testSession

ilTestPlayerAbstractGUI::$testSession
protected

Definition at line 47 of file class.ilTestPlayerAbstractGUI.php.


The documentation for this class was generated from the following file: