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

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.
 resumePlayerCmd ()
 Resume a test at the last position.
 initTestCmd ()
 Start a test for the first time after a redirect.
 markQuestionCmd ()
 Set a question solved.
 unmarkQuestionCmd ()
 Set a question unsolved.
 gotoQuestionCmd ()
 Go to the question with the active sequence.
 confirmFinishCmd ()
 The final submission of a test was confirmed.
 performTestPassFinishedTasks ($finishedPass)
 afterTestPassFinishedCmd ()
 isTestSignRedirectRequired ($activeId, $lastFinishedPass)
 archiveParticipantSubmission ($active, $pass)
 showRequestedHintListCmd ()
 Go to requested hint list.
 confirmHintRequestCmd ()
 Go to hint request confirmation.
 fillQuestionRelatedNavigation (assQuestionGUI $questionGUI)
 renders the elements for the question related navigation
 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

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:
class.ilTestPlayerAbstractGUI.php 61595 2016-02-12 12:50:16Z gitmgr

ModulesTest

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

Constructor & Destructor Documentation

ilTestPlayerAbstractGUI::__construct (   $a_object)

ilTestOutputGUI constructor

Parameters
ilObjTest$a_object

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

References $_GET, $ilUser, and ilTestServiceGUI\ilTestServiceGUI().

{
$this->ref_id = $_GET["ref_id"];
global $rbacsystem, $ilUser;
require_once 'Modules/Test/classes/class.ilTestPasswordChecker.php';
$this->passwordChecker = new ilTestPasswordChecker($rbacsystem, $ilUser, $this->object);
$this->processLocker = null;
$this->testSession = null;
}

+ Here is the call graph for this function:

Member Function Documentation

ilTestPlayerAbstractGUI::afterTestPassFinishedCmd ( )
protected

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

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

{
$activeId = $this->testSession->getActiveId();
$lastFinishedPass = $this->testSession->getLastFinishedPass();
// handle test signature
if ( $this->isTestSignRedirectRequired($activeId, $lastFinishedPass) )
{
$this->ctrl->redirectByClass('ilTestSignatureGUI', 'invokeSignaturePlugin');
}
if(!$_GET['skipfinalstatement'])
{
if ($this->object->getShowFinalStatement())
{
$this->ctrl->redirect($this, 'showFinalStatement');
}
}
// redirect after test
$redirection_mode = $this->object->getRedirectionMode();
$redirection_url = $this->object->getRedirectionUrl();
if( $redirection_url && $redirection_mode && !$this->object->canViewResults() )
{
if( $redirection_mode == REDIRECT_KIOSK )
{
if( $this->object->getKioskMode() )
{
ilUtil::redirect($redirection_url);
}
}
else
{
ilUtil::redirect($redirection_url);
}
}
// custom after test redirect (ilTestOutput - objective oriented sessions)
if( $this->customRedirectRequired() )
{
}
// default redirect (pass results)
$this->redirectBackCmd();
}

+ Here is the call graph for this function:

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

Definition at line 1029 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(), and performTestPassFinishedTasks().

{
require_once 'class.ilTestEvaluationGUI.php';
$testevaluationgui = new ilTestEvaluationGUI($this->object);
$results = $this->object->getTestResult($active,$pass);
$results_output = $testevaluationgui->getPassListOfAnswers($results, $active, $pass, false, false, false, false);
require_once './Modules/Test/classes/class.ilTestArchiver.php';
global $ilSetting;
$inst_id = $ilSetting->get('inst_id', null);
$archiver = new ilTestArchiver($this->object->getId());
$path = ilUtil::getWebspaceDir() . '/assessment/'. $this->object->getId() . '/exam_pdf';
if (!is_dir($path))
{
}
$filename = $path . '/exam_N' . $inst_id . '-' . $this->object->getId()
. '-' . $active . '-' . $pass . '.pdf';
require_once 'class.ilTestPDFGenerator.php';
//$template->setVariable("PDF_FILE_LOCATION", $filename);
// Participant submission
$archiver->handInParticipantSubmission( $active, $pass, $filename, $results_output );
//$archiver->handInParticipantMisc( $active, $pass, 'signature_gedoens.sig', $filename );
//$archiver->handInParticipantQuestionMaterial( $active, $pass, 123, 'file_upload.pdf', $filename );
global $ilias;
$questions = $this->object->getQuestions();
foreach ($questions as $question_id)
{
$question_object = $this->object->getQuestionDataset( $question_id );
if ($question_object->type_tag == 'assFileUpload')
{
// Pfad: /data/default/assessment/tst_2/14/21/files/file_14_4_1370417414.png
// /data/ - klar
// /assessment/ - Konvention
// /tst_2/ = /tst_<test_id> (ilObjTest)
// /14/ = /<active_fi>/
// /21/ = /<question_id>/ (question_object)
// /files/ - Konvention
// file_14_4_1370417414.png = file_<active_fi>_<pass>_<some timestamp>.<ext>
$candidate_path =
$ilias->ini_ilias->readVariable( 'server', 'absolute_path' ) . ilTestArchiver::DIR_SEP
. $ilias->ini_ilias->readVariable( 'clients', 'path' ) . ilTestArchiver::DIR_SEP
. $ilias->client_id . ilTestArchiver::DIR_SEP
. 'assessment' . ilTestArchiver::DIR_SEP
. 'tst_' . $this->object->test_id . ilTestArchiver::DIR_SEP
. $question_id . ilTestArchiver::DIR_SEP
$handle = opendir( $candidate_path );
while ($handle !== false && ($file = readdir( $handle )) !== false)
{
if ($file != null)
{
$filename_start = 'file_' . $active . '_' . $pass . '_';
if (strpos( $file, $filename_start ) === 0)
{
$archiver->handInParticipantQuestionMaterial( $active, $pass, $question_id, $file, $file );
}
}
}
}
}
$passdata = $this->object->getTestResult($active, $pass);
$overview = $testevaluationgui->getPassListOfAnswers($passdata, $active, $pass, true, false, false, true);
$filename = ilUtil::getWebspaceDir() . '/assessment/scores-'.$this->object->getId() . '-' . $active . '-' . $pass . '.pdf';
$archiver->handInTestResult($active, $pass, $filename);
unlink($filename);
return;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::autosaveCmd ( )

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

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

{
$result = "";
if (is_array($_POST) && count($_POST) > 0)
{
$res = $this->saveQuestionSolution(TRUE);
if ($res)
{
$result = $this->lng->txt("autosave_success");
}
else
{
$result = $this->lng->txt("autosave_failed");
}
}
if (!$this->canSaveResult())
{
// this was the last action in the test, saving is no longer allowed
$result = $this->ctrl->getLinkTarget($this, "redirectAfterAutosave", "", true);
}
echo $result;
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::backConfirmFinishCmd ( )

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

{
$this->ctrl->redirect($this, 'gotoQuestion');
}
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 797 of file class.ilTestPlayerAbstractGUI.php.

{
$this->ctrl->setParameter($this, "activecommand", "back");
$this->ctrl->redirect($this, "redirectQuestion");
}
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().

{
$sequence = $_GET["sequence"];
if (!$sequence) $sequence = $this->testSequence->getFirstSequence();
if (array_key_exists("save_error", $_GET))
{
if ($_GET["save_error"] == 1)
{
return $sequence;
}
}
switch ($_GET["activecommand"])
{
case "next":
$sequence = $this->testSequence->getNextSequence($sequence);
break;
case "previous":
$sequence = $this->testSequence->getPreviousSequence($sequence);
break;
}
return $sequence;
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::canSaveResult ( )
abstractprotected

Reimplemented in ilTestPlayerDynamicQuestionSetGUI, and ilTestOutputGUI.

Referenced by autosaveCmd().

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::checkOnlineTestAccess ( )

check access restrictions like client ip, partipating user etc.

check access restrictions like client ip, partipating user etc.

public

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

References $ilUser, and ilUtil\sendInfo().

{
global $ilUser;
// check if user is invited to participate
$user = $this->object->getInvitedUsers($ilUser->getId());
if (!is_array ($user) || count($user)!=1)
{
ilUtil::sendInfo($this->lng->txt("user_not_invited"), true);
$this->ctrl->redirectByClass("ilobjtestgui", "backToRepository");
}
$user = array_pop($user);
// check if client ip is set and if current remote addr is equal to stored client-ip
if (strcmp($user["clientip"],"")!=0 && strcmp($user["clientip"],$_SERVER["REMOTE_ADDR"])!=0)
{
ilUtil::sendInfo($this->lng->txt("user_wrong_clientip"), true);
$this->ctrl->redirectByClass("ilobjtestgui", "backToRepository");
}
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::codeConfirmedCmd ( )

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

{
$this->ctrl->setParameter($this, "activecommand", "start");
$this->ctrl->redirect($this, "redirectQuestion");
}
ilTestPlayerAbstractGUI::confirmFinishCmd ( )
protected

The final submission of a test was confirmed.

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

References finishTestCmd().

{
$this->finishTestCmd(false);
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::confirmHintRequestCmd ( )
protected

Go to hint request confirmation.

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

References ilAssQuestionHintRequestGUI\CMD_CONFIRM_REQUEST, and saveQuestionSolution().

{
require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionHintRequestGUI.php';
$this->ctrl->redirectByClass('ilAssQuestionHintRequestGUI', ilAssQuestionHintRequestGUI::CMD_CONFIRM_REQUEST);
}

+ Here is the call graph for this function:

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 1335 of file class.ilTestPlayerAbstractGUI.php.

References getContentBlockName().

{
$this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_submit_answers_confirm.html", "Modules/Test");
$this->tpl->setCurrentBlock("adm_content");
if ($this->object->isTestFinished($this->testSession->getActiveId()))
{
$this->tpl->setCurrentBlock("not_submit_allowed");
$this->tpl->setVariable("TEXT_ALREADY_SUBMITTED", $this->lng->txt("tst_already_submitted"));
$this->tpl->setVariable("BTN_OK", $this->lng->txt("tst_show_answer_sheet"));
} else
{
$this->tpl->setCurrentBlock("submit_allowed");
$this->tpl->setVariable("TEXT_CONFIRM_SUBMIT_RESULTS", $this->lng->txt("tst_confirm_submit_answers"));
$this->tpl->setVariable("BTN_OK", $this->lng->txt("tst_submit_results"));
}
$this->tpl->setVariable("BTN_BACK", $this->lng->txt("back"));
$this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this, "finalSubmission"));
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::customRedirectRequired ( )
protected

Reimplemented in ilTestOutputGUI.

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

Referenced by afterTestPassFinishedCmd(), and outIntroductionPageCmd().

{
return false;
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::determineInlineScoreDisplay ( )
protected

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

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

{
$show_question_inline_score = FALSE;
if ($this->object->getAnswerFeedbackPoints())
{
$show_question_inline_score = TRUE;
return $show_question_inline_score;
}
return $show_question_inline_score;
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::displayCodeCmd ( )

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

References getContentBlockName().

{
$this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_anonymous_code_presentation.html", "Modules/Test");
$this->tpl->setCurrentBlock("adm_content");
$this->tpl->setVariable("TEXT_ANONYMOUS_CODE_CREATED", $this->lng->txt("tst_access_code_created"));
$this->tpl->setVariable("TEXT_ANONYMOUS_CODE", $this->testSession->getAccessCodeFromSession());
$this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
$this->tpl->setVariable("CONTINUE", $this->lng->txt("continue_work"));
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::endingTimeReached ( )
private

handle endingTimeReached

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

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

Referenced by outTestPage().

{
ilUtil::sendInfo(sprintf($this->lng->txt("detail_ending_time_reached"), ilFormat::ftimestamp2datetimeDB($this->object->getEndingTime())));
$this->testSession->increasePass();
$this->testSession->setLastSequence(0);
$this->testSession->saveToDb();
if (!$this->object->canViewResults())
{
$this->outIntroductionPage();
}
else
{
$this->ctrl->redirectByClass("ilTestEvaluationGUI", "outUserResultsOverview");
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
if( $testSession->getActiveId() )
{
return;
}
global $ilUser;
$testSession->setUserId($ilUser->getId());
if( $testSession->isAnonymousUser() )
{
if( !$testSession->doesAccessCodeInSessionExists() )
{
return;
}
$testSession->setAnonymousId($testSession->getAccessCodeFromSession());
}
$testSession->saveToDb();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::fillQuestionRelatedNavigation ( assQuestionGUI  $questionGUI)
protected

renders the elements for the question related navigation

private ilTemplate $tpl ilLanguage $lng

Parameters
assQuestionGUI$questionGUI

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

References ilTestServiceGUI\$lng, $pass, and ilTestServiceGUI\$tpl.

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

{
global $tpl, $lng;
$parseQuestionRelatedNavigation = false;
switch( 1 )
{
case $this->object->getSpecificAnswerFeedback():
case $this->object->getGenericAnswerFeedback():
case $this->object->getAnswerFeedbackPoints():
case $this->object->getInstantFeedbackSolution():
$tpl->setCurrentBlock("direct_feedback");
$tpl->setVariable("CMD_SHOW_INSTANT_RESPONSE", 'showInstantResponse');
$tpl->setVariable("TEXT_SHOW_INSTANT_RESPONSE", $lng->txt("check"));
$tpl->parseCurrentBlock();
$parseQuestionRelatedNavigation = true;
}
if( $this->object->isOfferingQuestionHintsEnabled() )
{
$questionId = $questionGUI->object->getId();
$activeId = $this->testSession->getActiveId();
$pass = $this->testSession->getPass();
require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionHintTracking.php';
$questionHintTracking = new ilAssQuestionHintTracking($questionId, $activeId, $pass);
$requestsExist = $questionHintTracking->requestsExist();
$requestsPossible = $questionHintTracking->requestsPossible();
if( $requestsPossible )
{
if( $requestsExist )
{
$buttonText = $lng->txt("button_request_next_question_hint");
}
else
{
$buttonText = $lng->txt("button_request_question_hint");
}
$tpl->setCurrentBlock("button_request_next_question_hint");
$tpl->setVariable("CMD_REQUEST_NEXT_QUESTION_HINT", 'confirmHintRequest');
$tpl->setVariable("TEXT_REQUEST_NEXT_QUESTION_HINT", $buttonText);
$tpl->parseCurrentBlock();
$parseQuestionRelatedNavigation = true;
}
if( $requestsExist )
{
$tpl->setCurrentBlock("button_show_requested_question_hints");
$tpl->setVariable("CMD_SHOW_REQUESTED_QUESTION_HINTS", 'showRequestedHintList');
$tpl->setVariable("TEXT_SHOW_REQUESTED_QUESTION_HINTS", $lng->txt("button_show_requested_question_hints"));
$tpl->parseCurrentBlock();
$parseQuestionRelatedNavigation = true;
}
}
if( $parseQuestionRelatedNavigation )
{
$tpl->setCurrentBlock("question_related_navigation");
$tpl->parseCurrentBlock();
}
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::finishTestCmd (   $requires_confirmation = true)

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

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

Referenced by confirmFinishCmd().

{
global $ilUser, $ilAuth;
unset($_SESSION["tst_next"]);
$active_id = $this->testSession->getActiveId();
$actualpass = $this->object->_getPass($active_id);
$allObligationsAnswered = ilObjTest::allObligationsAnswered($this->testSession->getTestId(), $active_id, $actualpass);
/*
* The following "endgames" are possible prior to actually finishing the test:
* - Obligations (Ability to finish the test.)
* If not all obligatory questions are answered, the user is presented a list
* showing the deficits.
* - Examview (Will to finish the test.)
* With the examview, the participant can review all answers given in ILIAS or a PDF prior to
* commencing to the finished test.
* - Last pass allowed (Reassuring the will to finish the test.)
* If passes are limited, on the last pass, an additional confirmation is to be displayed.
*/
// Obligations fulfilled? redirectQuestion : one or the other summary -> no finish
if( $this->object->areObligationsEnabled() && !$allObligationsAnswered )
{
if( $this->object->getListOfQuestions() )
{
$_GET['activecommand'] = 'summary_obligations';
}
else
{
$_GET['activecommand'] = 'summary_obligations_only';
}
$this->redirectQuestionCmd();
return;
}
// Examview enabled & !reviewed & requires_confirmation? test_submission_overview (review gui)
if ($this->object->getEnableExamview() && !isset($_GET['reviewed']) && $requires_confirmation)
{
$_GET['activecommand'] = 'test_submission_overview';
$this->redirectQuestionCmd();
return;
}
// Last try in limited tries & !confirmed
if (($requires_confirmation) && ($actualpass == $this->object->getNrOfTries() - 1))
{
// show confirmation page
return $this->confirmFinishTestCmd();
}
// Last try in limited tries & confirmed?
if(($actualpass == $this->object->getNrOfTries() - 1) && (!$requires_confirmation))
{
$ilAuth->setIdle(ilSession::getIdleValue(), false);
$ilAuth->setExpire(0);
switch($this->object->getMailNotification())
{
case 1:
$this->object->sendSimpleNotification($active_id);
break;
case 2:
$this->object->sendAdvancedNotification($active_id);
break;
}
}
// Non-last try finish
if(!$_SESSION['tst_pass_finish'])
{
if(!$_SESSION['tst_pass_finish']) $_SESSION['tst_pass_finish'] = 1;
if($this->object->getMailNotificationType() == 1)
{
switch($this->object->getMailNotification())
{
case 1:
$this->object->sendSimpleNotification($active_id);
break;
case 2:
$this->object->sendAdvancedNotification($active_id);
break;
}
}
}
// no redirect request loops after test pass finished tasks has been performed
$this->performTestPassFinishedTasks($actualpass);
$this->testSession->setLastFinishedPass($this->testSession->getPass());
$this->testSession->increaseTestPass();
$this->ctrl->redirect($this, 'afterTestPassFinished');
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 1735 of file class.ilTestPlayerAbstractGUI.php.

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

{
if ($this->object->getKioskMode())
{
$this->tpl->setBodyClass("kiosk");
$this->tpl->setAddFooter(FALSE);
return "CONTENT";
}
else
{
return "ADM_CONTENT";
}
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::getIntroductionPageButtonLabel ( )
protected
Returns
string

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

Referenced by populatePreviousButtonsLeadingToIntroduction().

{
if( $this->testSession->isObjectiveOriented() )
{
return $this->lng->txt("save_back_to_objective_container");
}
return $this->lng->txt("save_introduction");
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::getKioskHead ( )

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

References $ilUser, and ilObjTest\buildExamId().

Referenced by outQuestionSummaryCmd(), and populateKioskHead().

{
global $ilUser;
$template = new ilTemplate('tpl.il_as_tst_kiosk_head.html', true, true, 'Modules/Test');
if ($this->object->getShowKioskModeTitle())
{
$template->setCurrentBlock("kiosk_show_title");
$template->setVariable("TEST_TITLE", $this->object->getTitle());
$template->parseCurrentBlock();
}
if ($this->object->getShowKioskModeParticipant())
{
$template->setCurrentBlock("kiosk_show_participant");
$template->setVariable("PARTICIPANT_NAME_TXT", $this->lng->txt("login_as"));
$template->setVariable("PARTICIPANT_NAME", $ilUser->getFullname());
$template->setVariable("PARTICIPANT_LOGIN", $ilUser->getLogin());
$template->setVariable("PARTICIPANT_MATRICULATION", $ilUser->getMatriculation());
$template->setVariable("PARTICIPANT_EMAIL", $ilUser->getEmail());
$template->parseCurrentBlock();
}
if ($this->object->isShowExamIdInTestPassEnabled())
{
$this->testSession->getActiveId() , $this->testSession->getPass(), $this->object->getId()
);
$template->setCurrentBlock("kiosk_show_exam_id");
$template->setVariable("EXAM_ID_TXT", $this->lng->txt("exam_id"));
$template->setVariable( "EXAM_ID", $exam_id);
$template->parseCurrentBlock();
}
return $template->get();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::getLockParameter ( )

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

References $_GET, and $_POST.

Referenced by handlePasswordProtectionRedirect(), and startPlayerCmd().

{
if( isset($_POST['lock']) && strlen($_POST['lock']) )
{
return $_POST['lock'];
}
elseif( isset($_GET['lock']) && strlen($_GET['lock']) )
{
return $_GET['lock'];
}
return null;
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::getMarkedQuestions ( )
protected

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

References ilObjTest\_getSolvedQuestions().

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

{
if( $this->object->getShowMarker() )
{
include_once "./Modules/Test/classes/class.ilObjTest.php";
$marked_questions = ilObjTest::_getSolvedQuestions($this->testSession->getActiveId());
}
else
{
$marked_questions = array();
}
return $marked_questions;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::gotoQuestionCmd ( )
protected

Go to the question with the active sequence.

Reimplemented in ilTestPlayerDynamicQuestionSetGUI.

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

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

{
if (is_array($_POST) && count($_POST) > 0) $this->saveQuestionSolution();
$this->ctrl->setParameter($this, "sequence", $_GET["sequence"]);
$this->ctrl->setParameter($this, "activecommand", "gotoquestion");
$this->ctrl->saveParameter($this, "tst_javascript");
if (strlen($_GET['qst_selection'])) $_SESSION['qst_selection'] = $_GET['qst_selection'];
$this->ctrl->redirect($this, "redirectQuestion");
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::handlePasswordProtectionRedirect ( )
protected

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

References getLockParameter().

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

{
if( $this->ctrl->getNextClass() == 'iltestpasswordprotectiongui' )
{
return;
}
if( !$this->passwordChecker->isPasswordProtectionPageRedirectRequired() )
{
return;
}
$this->ctrl->setParameter($this, 'lock', $this->getLockParameter());
$nextCommand = $this->ctrl->getCmdClass().'::'.$this->ctrl->getCmd();
$this->ctrl->setParameterByClass('ilTestPasswordProtectionGUI', 'nextCommand', $nextCommand);
$this->ctrl->redirectByClass('ilTestPasswordProtectionGUI', 'showPasswordForm');
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::handleQuestionActionCmd ( )
abstractprotected
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().

{
global $ilUser;
if ($_POST["chb_javascript"])
{
$ilUser->writePref("tst_javascript", 1);
}
else
{
$ilUser->writePref("tst_javascript", 0);
}
// hide previous results
if ($this->object->getNrOfTries() != 1)
{
if ($this->object->getUsePreviousAnswers() == 1)
{
if ($_POST["chb_use_previous_answers"])
{
$ilUser->writePref("tst_use_previous_answers", 1);
}
else
{
$ilUser->writePref("tst_use_previous_answers", 0);
}
}
}
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::initProcessLocker (   $activeId)
protected

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

References $ilDB.

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

{
global $ilDB;
$settings = new ilSetting('assessment');
require_once 'Modules/Test/classes/class.ilTestProcessLockerFactory.php';
$processLockerFactory = new ilTestProcessLockerFactory($settings, $ilDB);
$processLockerFactory->setActiveId($activeId);
$this->processLocker = $processLockerFactory->getLocker();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::initTestCmd ( )
protected

Start a test for the first time after a redirect.

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

References showMaximumAllowedUsersReachedMessage().

{
if ($this->object->checkMaximumAllowedUsers() == FALSE)
{
}
if( $this->testSession->isAnonymousUser() && !$this->testSession->getActiveId() )
{
$accessCode = $this->testSession->createNewAccessCode();
$this->testSession->setAccessCodeToSession($accessCode);
$this->testSession->setAnonymousId($accessCode);
$this->testSession->saveToDb();
$this->ctrl->redirect($this, 'displayCode');
}
$this->ctrl->redirect($this, 'startTest');
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::isFirstPageInSequence (   $sequence)
abstractprotected

Reimplemented in ilTestPlayerDynamicQuestionSetGUI, and ilTestOutputGUI.

Referenced by populatePreviousButtons().

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::isLastQuestionInSequence ( assQuestionGUI  $questionGUI)
abstractprotected
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().

{
global $ilUser;
$active_id = $this->testSession->getActiveId();
$starting_time = $this->object->getStartingTimeOfUser($active_id);
if ($starting_time === FALSE)
{
return FALSE;
}
else
{
return $this->object->isMaxProcessingTimeReached($starting_time, $active_id);
}
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::isNrOfTriesReached ( )

nr of tries exceeded

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

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

{
return $this->object->hasNrOfTriesRestriction() && $this->object->isNrOfTriesReached($this->testSession->getPass());
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::isTestAccessible ( )

test accessible returns true if the user can perform the test

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

References isMaxProcessingTimeReached(), and isNrOfTriesReached().

{
return !$this->isNrOfTriesReached()
and $this->object->startingTimeReached()
and !$this->object->endingTimeReached();
}

+ Here is the call graph for this function:

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

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

References ilSession\get(), and IL_COMP_MODULE.

Referenced by afterTestPassFinishedCmd().

{
if( !$this->object->getSignSubmission() )
{
return false;
}
if( !is_null(ilSession::get("signed_{$activeId}_{$lastFinishedPass}")) )
{
return false;
}
global $ilPluginAdmin;
$activePlugins = $ilPluginAdmin->getActivePluginsForSlot(IL_COMP_MODULE, 'Test', 'tsig');
if( !count($activePlugins) )
{
return false;
}
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::markQuestionCmd ( )
protected

Set a question solved.

Reimplemented in ilTestPlayerDynamicQuestionSetGUI.

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

References saveQuestionSolution().

{
$this->ctrl->setParameter($this, "activecommand", "setmarked");
$this->ctrl->redirect($this, "redirectQuestion");
}

+ Here is the call graph for this function:

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 1325 of file class.ilTestPlayerAbstractGUI.php.

Referenced by outTestPage().

{
$this->outIntroductionPage();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::nextQuestionCmd ( )
abstractprotected
ilTestPlayerAbstractGUI::outCorrectSolution ( )

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

public

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

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

{
$this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_as_tst_correct_solution.html", "Modules/Test");
include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
$this->tpl->setCurrentBlock("ContentStyle");
$this->tpl->setVariable("LOCATION_CONTENT_STYLESHEET", ilObjStyleSheet::getContentStylePath(0));
$this->tpl->parseCurrentBlock();
$this->tpl->setCurrentBlock("SyntaxStyle");
$this->tpl->setVariable("LOCATION_SYNTAX_STYLESHEET", ilObjStyleSheet::getSyntaxStylePath());
$this->tpl->parseCurrentBlock();
$this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "Modules/Test"), "print");
if ($this->object->getShowSolutionAnswersOnly())
{
$this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "Modules/Test"), "print");
}
$this->tpl->setCurrentBlock("adm_content");
$solution = $this->getCorrectSolutionOutput($_GET["evaluation"], $_GET["active_id"], $_GET["pass"]);
$this->tpl->setVariable("OUTPUT_SOLUTION", $solution);
$this->tpl->setVariable("TEXT_BACK", $this->lng->txt("back"));
$this->ctrl->saveParameter($this, "pass");
$this->ctrl->saveParameter($this, "active_id");
$this->tpl->setVariable("URL_BACK", $this->ctrl->getLinkTarget($this, "outUserResultsOverview"));
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

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().

{
if( $this->customRedirectRequired() )
{
}
$this->ctrl->redirectByClass("ilobjtestgui", "infoScreen");
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::outObligationsOnlySummaryCmd ( )

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

References outQuestionSummaryCmd().

{
return $this->outQuestionSummaryCmd(true, true, true, true);
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::outProcessingTime (   $active_id)

Definition at line 1355 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().

{
global $ilUser;
$starting_time = $this->object->getStartingTimeOfUser($active_id);
$processing_time = $this->object->getProcessingTimeInSeconds($active_id);
$processing_time_minutes = floor($processing_time / 60);
$processing_time_seconds = $processing_time - $processing_time_minutes * 60;
$str_processing_time = "";
if ($processing_time_minutes > 0)
{
$str_processing_time = $processing_time_minutes . " " . ($processing_time_minutes == 1 ? $this->lng->txt("minute") : $this->lng->txt("minutes"));
}
if ($processing_time_seconds > 0)
{
if (strlen($str_processing_time) > 0) $str_processing_time .= " " . $this->lng->txt("and") . " ";
$str_processing_time .= $processing_time_seconds . " " . ($processing_time_seconds == 1 ? $this->lng->txt("second") : $this->lng->txt("seconds"));
}
$time_left = $starting_time + $processing_time - mktime();
$time_left_minutes = floor($time_left / 60);
$time_left_seconds = $time_left - $time_left_minutes * 60;
$str_time_left = "";
if ($time_left_minutes > 0)
{
$str_time_left = $time_left_minutes . " " . ($time_left_minutes == 1 ? $this->lng->txt("minute") : $this->lng->txt("minutes"));
}
if ($time_left < 300)
{
if ($time_left_seconds > 0)
{
if (strlen($str_time_left) > 0) $str_time_left .= " " . $this->lng->txt("and") . " ";
$str_time_left .= $time_left_seconds . " " . ($time_left_seconds == 1 ? $this->lng->txt("second") : $this->lng->txt("seconds"));
}
}
$date = getdate($starting_time);
$formattedStartingTime = ilDatePresentation::formatDate(new ilDateTime($date,IL_CAL_FKT_GETDATE));
/*
$formattedStartingTime = ilFormat::formatDate(
$date["year"]."-".
sprintf("%02d", $date["mon"])."-".
sprintf("%02d", $date["mday"])." ".
sprintf("%02d", $date["hours"]).":".
sprintf("%02d", $date["minutes"]).":".
sprintf("%02d", $date["seconds"])
);
*/
$datenow = getdate();
$this->tpl->setCurrentBlock("enableprocessingtime");
$this->tpl->setVariable("USER_WORKING_TIME",
sprintf(
$this->lng->txt("tst_time_already_spent"),
$formattedStartingTime,
$str_processing_time
)
);
$this->tpl->setVariable("USER_REMAINING_TIME", sprintf($this->lng->txt("tst_time_already_spent_left"), $str_time_left));
$this->tpl->parseCurrentBlock();
$template = new ilTemplate("tpl.workingtime.js.html", TRUE, TRUE, 'Modules/Test');
$template->setVariable("STRING_MINUTE", $this->lng->txt("minute"));
$template->setVariable("STRING_MINUTES", $this->lng->txt("minutes"));
$template->setVariable("STRING_SECOND", $this->lng->txt("second"));
$template->setVariable("STRING_SECONDS", $this->lng->txt("seconds"));
$template->setVariable("STRING_TIMELEFT", $this->lng->txt("tst_time_already_spent_left"));
$template->setVariable("AND", strtolower($this->lng->txt("and")));
$template->setVariable("YEAR", $date["year"]);
$template->setVariable("MONTH", $date["mon"]-1);
$template->setVariable("DAY", $date["mday"]);
$template->setVariable("HOUR", $date["hours"]);
$template->setVariable("MINUTE", $date["minutes"]);
$template->setVariable("SECOND", $date["seconds"]);
if ($this->object->isEndingTimeEnabled() && preg_match("/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/", $this->object->getEndingTime(), $matches))
{
$template->setVariable("ENDYEAR", $matches[1]);
$template->setVariable("ENDMONTH", $matches[2]-1);
$template->setVariable("ENDDAY", $matches[3]);
$template->setVariable("ENDHOUR", $matches[4]);
$template->setVariable("ENDMINUTE", $matches[5]);
$template->setVariable("ENDSECOND", $matches[6]);
}
$template->setVariable("YEARNOW", $datenow["year"]);
$template->setVariable("MONTHNOW", $datenow["mon"]-1);
$template->setVariable("DAYNOW", $datenow["mday"]);
$template->setVariable("HOURNOW", $datenow["hours"]);
$template->setVariable("MINUTENOW", $datenow["minutes"]);
$template->setVariable("SECONDNOW", $datenow["seconds"]);
$template->setVariable("PTIME_M", $processing_time_minutes);
$template->setVariable("PTIME_S", $processing_time_seconds);
$this->tpl->setCurrentBlock("HeadContent");
$this->tpl->setVariable("CONTENT_BLOCK", $template->get());
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

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

References $_GET, $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().

{
if( $fullpage )
{
$this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_question_summary.html", "Modules/Test");
}
if( $obligationsNotAnswered )
{
ilUtil::sendFailure($this->lng->txt('not_all_obligations_answered'));
}
$active_id = $this->testSession->getActiveId();
$result_array = & $this->testSequence->getSequenceSummary($obligationsFilter);
$marked_questions = array();
if( $this->object->getKioskMode() && $fullpage )
{
$head = $this->getKioskHead();
if( strlen($head) )
{
$this->tpl->setCurrentBlock("kiosk_options");
$this->tpl->setVariable("KIOSK_HEAD", $head);
$this->tpl->parseCurrentBlock();
}
}
if( $this->object->getShowMarker() )
{
include_once "./Modules/Test/classes/class.ilObjTest.php";
$marked_questions = ilObjTest::_getSolvedQuestions($active_id);
}
$data = array();
foreach( $result_array as $key => $value )
{
$this->ctrl->setParameter($this, "sequence", $value["sequence"]);
$href = $this->ctrl->getLinkTargetByClass(get_class($this), "gotoQuestion");
$this->tpl->setVariable("VALUE_QUESTION_TITLE", "<a href=\"".$this->ctrl->getLinkTargetByClass(get_class($this), "gotoQuestion")."\">" . $this->object->getQuestionTitle($value["title"]) . "</a>");
$this->ctrl->setParameter($this, "sequence", $_GET["sequence"]);
$description = "";
if( $this->object->getListOfQuestionsDescription() )
{
$description = $value["description"];
}
$points = "";
if( !$this->object->getTitleOutput() )
{
$points = $value["points"]."&nbsp;".$this->lng->txt("points_short");
}
$marked = false;
if( count($marked_questions) )
{
if( array_key_exists($value["qid"], $marked_questions) )
{
$obj = $marked_questions[$value["qid"]];
if( $obj["solved"] == 1 )
{
$marked = true;
}
}
}
array_push($data, array(
'order' => $value["nr"],
'href' => $href,
'title' => $this->object->getQuestionTitle($value["title"]),
'description' => $description,
'worked_through' => ($value["worked_through"]) ? true : false,
'postponed' => ($value["postponed"]) ? $this->lng->txt("postponed") : '',
'points' => $points,
'marked' => $marked,
'sequence' => $value["sequence"],
'obligatory' => $value['obligatory'],
'isAnswered' => $value['isAnswered']
));
}
$this->ctrl->setParameter($this, "sequence", $_GET["sequence"]);
if( $fullpage )
{
include_once "./Modules/Test/classes/tables/class.ilListOfQuestionsTableGUI.php";
$table_gui = new ilListOfQuestionsTableGUI($this, 'backFromSummary');
$table_gui->setShowPointsEnabled( !$this->object->getTitleOutput() );
$table_gui->setShowMarkerEnabled( $this->object->getShowMarker() );
$table_gui->setObligationsNotAnswered( $obligationsNotAnswered );
$table_gui->setShowObligationsEnabled( $this->object->areObligationsEnabled() );
$table_gui->setObligationsFilterEnabled( $obligationsFilter );
$table_gui->init();
$table_gui->setData($data);
$this->tpl->setVariable('TABLE_LIST_OF_QUESTIONS', $table_gui->getHTML());
if( $this->object->getEnableProcessingTime() )
{
$this->outProcessingTime($active_id);
}
}
else
{
$template = new ilTemplate('tpl.il_as_tst_list_of_questions_short.html', true, true, 'Modules/Test');
foreach( $data as $row )
{
if( strlen($row['description']) )
{
$template->setCurrentBlock('description');
$template->setVariable("DESCRIPTION", $row['description']);
$template->parseCurrentBlock();
}
$active = ($row['sequence'] == $this->sequence) ? ' active' : '';
$template->setCurrentBlock('item');
$template->setVariable('CLASS', ($row['walked_through']) ? ('answered'.$active) : ('unanswered'.$active));
$template->setVariable('ITEM', ilUtil::prepareFormOutput($row['title']));
$template->setVariable('SEQUENCE', $row['sequence']);
$template->parseCurrentBlock();
}
require_once 'Services/UIComponent/Panel/classes/class.ilPanelGUI.php';
$panel->setHeadingStyle(ilPanelGUI::HEADING_STYLE_SUBHEADING);
$panel->setPanelStyle(ilPanelGUI::PANEL_STYLE_SECONDARY);
$panel->setHeading($this->lng->txt('list_of_questions'));
$panel->setBody($template->get());
$this->tpl->setVariable('LIST_OF_QUESTIONS', $panel->getHTML());
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::outQuestionSummaryWithObligationsInfoCmd ( )

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

References outQuestionSummaryCmd().

{
return $this->outQuestionSummaryCmd(true, true, true, false);
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::outResultsToplistCmd ( )

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

References $ilCtrl.

{
global $ilCtrl;
$ilCtrl->redirectByClass('ilTestToplistGUI', 'outResultsToplist');
}
ilTestPlayerAbstractGUI::outTestPage (   $directfeedback)

Outputs the question of the active sequence.

Definition at line 1170 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().

{
global $rbacsystem, $ilUser;
if (!$rbacsystem->checkAccess("read", $this->object->getRefId()))
{
// only with read access it is possible to run the test
$this->ilias->raiseError($this->lng->txt("cannot_execute_test"),$this->ilias->error_obj->MESSAGE);
}
{
return;
}
if ($this->object->endingTimeReached())
{
return;
}
if ($this->object->getKioskMode())
{
}
$this->tpl->setVariable("TEST_ID", $this->object->getTestId());
$this->tpl->setVariable("LOGIN", $ilUser->getLogin());
$this->tpl->setVariable("SEQ_ID", $this->sequence);
$this->tpl->setVariable("QUEST_ID", $this->testSequence->questions[$this->sequence]);
if ($this->object->getEnableProcessingTime())
{
$this->outProcessingTime($this->testSession->getActiveId());
}
$this->tpl->setVariable("FORM_TIMESTAMP", time());
$this->tpl->setVariable("PAGETITLE", "- " . $this->object->getTitle());
$postpone = ( $this->object->getSequenceSettings() == TEST_POSTPONE );
if ($this->object->isShowExamIdInTestPassEnabled() && !$this->object->getKioskMode())
{
$this->tpl->setCurrentBlock('exam_id_footer');
$this->tpl->setVariable('EXAM_ID_VAL', ilObjTest::lookupExamId(
$this->testSession->getActiveId(), $this->testSession->getPass(), $this->object->getId()
));
$this->tpl->setVariable('EXAM_ID_TXT', $this->lng->txt('exam_id'));
$this->tpl->parseCurrentBlock();
}
$this->outWorkingForm($this->sequence, $this->object->getTestId(), $postpone, $directfeedback);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::outUserListOfAnswerPassesCmd ( )

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

{
$this->ctrl->redirectByClass(
array('ilRepositoryGUI', 'ilObjTestGUI', 'ilTestEvaluationGUI'), "outUserListOfAnswerPasses"
);
}
ilTestPlayerAbstractGUI::outUserResultsOverviewCmd ( )

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

{
$this->ctrl->redirectByClass(
array('ilRepositoryGUI', 'ilObjTestGUI', 'ilTestEvaluationGUI'), "outUserResultsOverview"
);
}
ilTestPlayerAbstractGUI::outWorkingForm (   $sequence = "",
  $test_id,
  $postpone_allowed,
  $directfeedback = false 
)
abstractprotected

Reimplemented in ilTestPlayerDynamicQuestionSetGUI, and ilTestOutputGUI.

Referenced by outTestPage().

+ Here is the caller graph for this function:

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 1283 of file class.ilTestPlayerAbstractGUI.php.

References $_GET.

{
if (array_key_exists("pass", $_GET) && (strlen($_GET["pass"]) > 0))
{
$this->ctrl->saveParameter($this, "pass");
$this->ctrl->saveParameter($this, "active_id");
$this->outTestResults(false, $_GET["pass"]);
}
else
{
$this->outTestResults(false);
}
}
ilTestPlayerAbstractGUI::performCustomRedirect ( )
protected

Reimplemented in ilTestOutputGUI.

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

Referenced by afterTestPassFinishedCmd(), and outIntroductionPageCmd().

{
return;
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::performTestPassFinishedTasks (   $finishedPass)
protected

Reimplemented in ilTestPlayerFixedQuestionSetGUI.

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

References archiveParticipantSubmission().

Referenced by finishTestCmd(), and redirectAfterAutosaveCmd().

{
if( !$this->testSession->isSubmitted() )
{
$this->testSession->setSubmitted(1);
$this->testSession->setSubmittedTimestamp(date('Y-m-d H:i:s'));
$this->testSession->saveToDb();
}
if( $this->object->getEnableArchiving() )
{
$this->archiveParticipantSubmission($this->testSession->getActiveId(), $finishedPass);
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateCancelButtonBlock ( )
protected

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

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

{
$this->tpl->setCurrentBlock('cancel_test');
$this->tpl->setVariable('TEXT_CANCELTEST', $this->lng->txt('cancel_test'));
$this->ctrl->setParameterByClass(get_class($this), 'cancelTest', 'true');
$this->tpl->setVariable('HREF_CANCELTEXT', $this->ctrl->getLinkTargetByClass(get_class($this), 'outIntroductionPage'));
$this->ctrl->setParameterByClass(get_class($this), 'cancelTest', null);
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

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().

{
global $ilSetting;
if ($ilSetting->get('char_selector_availability') > 0)
{
require_once 'Services/UIComponent/CharSelector/classes/class.ilCharSelectorGUI.php';
$char_selector = ilCharSelectorGUI::_getCurrentGUI($this->object);
if ($char_selector->getConfig()->getAvailability() == ilCharSelectorConfig::ENABLED)
{
$char_selector->addToPage();
$this->tpl->setCurrentBlock('char_selector');
$this->tpl->setVariable("CHAR_SELECTOR_IMAGE", ilUtil::getImagePath('icon_omega_test.svg','Services/UIComponent/CharSelector'));
$this->tpl->setVariable("CHAR_SELECTOR_TEXT", $this->lng->txt('char_selector'));
$this->tpl->setVariable("CHAR_SELECTOR_TEMPLATE", $char_selector->getSelectorHtml());
$this->tpl->parseCurrentBlock();
}
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateContentStyleBlock ( )
protected

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

References ilObjStyleSheet\getContentStylePath().

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

{
include_once("./Services/Style/classes/class.ilObjStyleSheet.php");
$this->tpl->setCurrentBlock( "ContentStyle" );
$this->tpl->setVariable( "LOCATION_CONTENT_STYLESHEET",
);
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateGenericFeedbackBlock (   $question_gui)
protected

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

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

{
$this->tpl->setCurrentBlock( "answer_feedback" );
$this->tpl->setVariable( "ANSWER_FEEDBACK",
$question_gui->getAnswerFeedbackOutput( $this->testSession->getActiveId(),
NULL
)
);
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateKioskHead ( )
protected

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

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

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

{
ilUtil::sendInfo(); // ???
$head = $this->getKioskHead();
if (strlen($head))
{
$this->tpl->setCurrentBlock("kiosk_options");
$this->tpl->setVariable("KIOSK_HEAD", $head);
$this->tpl->parseCurrentBlock();
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateLowerNextButtonBlockLeadingToEndOfTest ( )
protected

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

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToEndOfTest().

{
$button->setPrimary( true );
$button->setCommand( 'nextQuestion' );
$button->setCaption( 'save_finish' );
$button->setId( 'bottomnextbutton' );
$this->tpl->setCurrentBlock( "next_bottom" );
$this->tpl->setVariable( "BTN_NEXT", $button->render());
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateLowerNextButtonBlockLeadingToQuestion ( )
protected

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

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToQuestion().

{
$button->setPrimary( true );
$button->setCommand( 'nextQuestion' );
$button->setCaption( 'save_next' );
$button->setId( 'bottomnextbutton' );
$this->tpl->setCurrentBlock( "next_bottom" );
$this->tpl->setVariable( "BTN_NEXT", $button->render());
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateLowerNextButtonBlockLeadingToSummary ( )
protected

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

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToSummary().

{
$button->setPrimary( true );
$button->setCommand( 'nextQuestion' );
$button->setCaption( 'question_summary' );
$button->setId( 'bottomnextbutton' );
$this->tpl->setCurrentBlock( "next_bottom" );
$this->tpl->setVariable( "BTN_NEXT", $button->render());
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateLowerPostponeButtonBlock ( )
protected

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

Referenced by populatePostponeButtons().

{
$this->tpl->setCurrentBlock( "postpone_bottom" );
$this->tpl->setVariable( "CMD_POSTPONE", 'postponeQuestion' );
$this->tpl->setVariable( "BTN_POSTPONE", $this->lng->txt( "postpone" ) );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

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

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

References $cmd.

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

{
$this->tpl->setCurrentBlock( "prev_bottom" );
$this->tpl->setVariable("CMD_PREV", $cmd);
$this->tpl->setVariable("BTN_PREV", $label);
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateLowerQuestionSelectionButtonBlock ( )
protected

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

Referenced by populateQuestionSelectionButtons().

{
$this->tpl->setCurrentBlock( "summary_bottom" );
$this->tpl->setVariable( "CMD_SUMMARY", 'showQuestionSelection' );
$this->tpl->setVariable( "BTN_SUMMARY", $this->lng->txt( "tst_change_dyn_test_question_selection" ) );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateLowerSummaryButtonBlock ( )
protected

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

Referenced by populateSummaryButtons().

{
$this->tpl->setCurrentBlock( "summary_bottom" );
$this->tpl->setVariable( "CMD_SUMMARY", 'showQuestionList' );
$this->tpl->setVariable( "BTN_SUMMARY", $this->lng->txt( "question_summary" ) );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateNextButtonsLeadingToEndOfTest ( )
protected
ilTestPlayerAbstractGUI::populateNextButtonsLeadingToQuestion ( )
protected
ilTestPlayerAbstractGUI::populateNextButtonsLeadingToSummary ( )
protected
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:

ilTestPlayerAbstractGUI::populatePreviousButtons (   $sequence)
protected

Reimplemented in ilTestPlayerDynamicQuestionSetGUI.

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

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

Referenced by ilTestOutputGUI\outWorkingForm().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populatePreviousButtonsLeadingToIntroduction ( )
protected

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

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

Referenced by populatePreviousButtons().

{
'previousQuestion', $this->getIntroductionPageButtonLabel()
);
'previousQuestion', $this->getIntroductionPageButtonLabel()
);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populatePreviousButtonsLeadingToQuestion ( )
protected

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

References populateLowerPreviousButtonBlock(), and populateUpperPreviousButtonBlock().

Referenced by populatePreviousButtons().

{
'previousQuestion', $this->lng->txt( "save_previous" )
);
'previousQuestion', $this->lng->txt( "save_previous" )
);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateQuestionMarkingBlockAsMarked ( )
protected

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

References ilUtil\getImagePath().

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

{
$this->tpl->setCurrentBlock( "ismarked" );
$this->tpl->setVariable( "CMD_MARKED", 'unmarkQuestion' );
$this->tpl->setVariable( "IMAGE_MARKED", ilUtil::getImagePath( "marked.svg" ) );
$this->tpl->setVariable( "TEXT_MARKED", $this->lng->txt( "tst_remove_mark" ) );
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateQuestionMarkingBlockAsUnmarked ( )
protected

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

References ilUtil\getImagePath().

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

{
$this->tpl->setCurrentBlock( "isnotmarked" );
$this->tpl->setVariable( "CMD_UNMARKED", 'markQuestion' );
$this->tpl->setVariable( "IMAGE_UNMARKED", ilUtil::getImagePath( "marked_.svg" ) );
$this->tpl->setVariable( "TEXT_UNMARKED", $this->lng->txt( "tst_question_mark" ) );
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

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

{
$scoreInformation = sprintf(
$this->lng->txt( "you_received_a_of_b_points" ), $reachedPoints, $maxPoints
);
$this->tpl->setCurrentBlock( "received_points_information" );
$this->tpl->setVariable("RECEIVED_POINTS_INFORMATION", $scoreInformation);
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateSolutionBlock (   $solutionoutput)
protected

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

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

{
$this->tpl->setCurrentBlock( "solution_output" );
$this->tpl->setVariable( "CORRECT_SOLUTION", $this->lng->txt( "tst_best_solution_is" ) );
$this->tpl->setVariable( "QUESTION_FEEDBACK", $solutionoutput );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateSpecificFeedbackBlock (   $question_gui)
protected

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

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

{
$this->tpl->setCurrentBlock( "specific_feedback" );
$this->tpl->setVariable( "SPECIFIC_FEEDBACK",
$question_gui->getSpecificFeedbackOutput(
$this->testSession->getActiveId(),
NULL
)
);
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

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:

ilTestPlayerAbstractGUI::populateSyntaxStyleBlock ( )
protected

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

References ilObjStyleSheet\getSyntaxStylePath().

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

{
$this->tpl->setCurrentBlock( "SyntaxStyle" );
$this->tpl->setVariable( "LOCATION_SYNTAX_STYLESHEET",
);
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateUpperNextButtonBlockLeadingToEndOfTest ( )
protected

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

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToEndOfTest().

{
$button->setPrimary( true );
$button->setCommand( 'nextQuestion' );
$button->setCaption( 'save_finish' );
$button->setId( 'nextbutton' );
$this->tpl->setCurrentBlock( "next" );
$this->tpl->setVariable( "BTN_NEXT", $button->render());
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateUpperNextButtonBlockLeadingToQuestion ( )
protected

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

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToQuestion().

{
$button->setPrimary( true );
$button->setCommand( 'nextQuestion' );
$button->setCaption( 'save_next' );
$button->setId( 'nextbutton' );
$this->tpl->setCurrentBlock( "next" );
$this->tpl->setVariable( "BTN_NEXT", $button->render());
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateUpperNextButtonBlockLeadingToSummary ( )
protected

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

References ilSubmitButton\getInstance().

Referenced by populateNextButtonsLeadingToSummary().

{
$button->setPrimary( true );
$button->setCommand( 'nextQuestion' );
$button->setCaption( 'question_summary' );
$button->setId( 'nextbutton' );
$this->tpl->setCurrentBlock( "next" );
$this->tpl->setVariable( "BTN_NEXT", $button->render());
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateUpperPostponeButtonBlock ( )
protected

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

Referenced by populatePostponeButtons().

{
$this->tpl->setCurrentBlock( "postpone" );
$this->tpl->setVariable( "CMD_POSTPONE", 'postponeQuestion' );
$this->tpl->setVariable( "BTN_POSTPONE", $this->lng->txt( "postpone" ) );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

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

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

References $cmd.

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

{
$this->tpl->setCurrentBlock( "prev" );
$this->tpl->setVariable("CMD_PREV", $cmd);
$this->tpl->setVariable("BTN_PREV", $label);
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateUpperQuestionSelectionButtonBlock ( )
protected

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

Referenced by populateQuestionSelectionButtons().

{
$this->tpl->setCurrentBlock( "summary" );
$this->tpl->setVariable( "CMD_SUMMARY", 'showQuestionSelection' );
$this->tpl->setVariable( "BTN_SUMMARY", $this->lng->txt( "tst_change_dyn_test_question_selection" ) );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateUpperSummaryButtonBlock ( )
protected

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

Referenced by populateSummaryButtons().

{
$this->tpl->setCurrentBlock( "summary" );
$this->tpl->setVariable( "CMD_SUMMARY", 'showQuestionList' );
$this->tpl->setVariable( "BTN_SUMMARY", $this->lng->txt( "question_summary" ) );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::postponeQuestionCmd ( )
abstractprotected
ilTestPlayerAbstractGUI::prepareSummaryPage ( )
protected

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

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

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

{
$this->tpl->addBlockFile(
$this->getContentBlockName(), 'adm_content', 'tpl.il_as_tst_question_summary.html', 'Modules/Test'
);
if ($this->object->getShowCancel())
{
}
if ($this->object->getKioskMode())
{
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::prepareTestPageOutput ( )
protected

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

References getContentBlockName().

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

{
$this->tpl->addBlockFile(
$this->getContentBlockName(), 'adm_content', 'tpl.il_as_tst_output.html', 'Modules/Test'
);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::previousQuestionCmd ( )
abstractprotected
ilTestPlayerAbstractGUI::redirectAfterAutosaveCmd ( )

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

References getContentBlockName(), and performTestPassFinishedTasks().

{
$active_id = $this->testSession->getActiveId();
$actualpass = $this->object->_getPass($active_id);
$this->performTestPassFinishedTasks($actualpass);
$this->testSession->setLastFinishedPass($this->testSession->getPass());
$this->testSession->increaseTestPass();
$this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_redirect_autosave.html", "Modules/Test");
$this->tpl->setVariable("TEXT_REDIRECT", $this->lng->txt("redirectAfterSave"));
$this->tpl->setCurrentBlock("HeadContent");
$this->tpl->setVariable("CONTENT_BLOCK", "<meta http-equiv=\"refresh\" content=\"5; url=" . $this->ctrl->getLinkTarget($this, "afterTestPassFinished") . "\">");
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::redirectBackCmd ( )

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

References outIntroductionPageCmd().

Referenced by afterTestPassFinishedCmd().

{
if(!$this->object->canViewResults())
{
}
else
{
$this->ctrl->redirectByClass("ilTestEvaluationGUI", "outUserResultsOverview");
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::resumePlayerCmd ( )
protected

Resume a test at the last position.

Reimplemented in ilTestPlayerDynamicQuestionSetGUI.

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

References handleUserSettings().

{
$this->ctrl->setParameter($this, "activecommand", "resume");
$this->ctrl->redirect($this, "redirectQuestion");
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::saveQuestionSolution (   $force = FALSE)
abstract

saves the user input of a question

Reimplemented in ilTestPlayerDynamicQuestionSetGUI, and ilTestOutputGUI.

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

+ Here is the caller graph for this function:

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.

{
include_once("./Services/Tagging/classes/class.ilTaggingGUI.php");
$tagging_gui = new ilTaggingGUI();
$tagging_gui->setObject($this->object->getId(), $this->object->getType());
$tagging_gui->saveInput();
$this->ctrl->redirectByClass("ilobjtestgui", "infoScreen");
}
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.

{
if( $this->testSession->isAnonymousUser() )
{
$this->testSession->setAccessCodeToSession($_POST['anonymous_id']);
}
$this->ctrl->redirectByClass("ilobjtestgui", "infoScreen");
}
ilTestPlayerAbstractGUI::showFinalStatementCmd ( )

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

References getContentBlockName().

{
$template = new ilTemplate("tpl.il_as_tst_final_statement.html", TRUE, TRUE, "Modules/Test");
$this->ctrl->setParameter($this, "skipfinalstatement", 1);
$template->setVariable("FORMACTION", $this->ctrl->getFormAction($this, "afterTestPassFinished"));
$template->setVariable("FINALSTATEMENT", $this->object->prepareTextareaOutput($this->object->getFinalStatement(), true));
$template->setVariable("BUTTON_CONTINUE", $this->lng->txt("btn_next"));
$this->tpl->setVariable($this->getContentBlockName(), $template->get());
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::showInstantResponseCmd ( )
abstractprotected
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 1663 of file class.ilTestPlayerAbstractGUI.php.

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

{
global $ilUser;
$this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_finish_list_of_answers.html", "Modules/Test");
$result_array =& $this->object->getTestResult($active_id, $pass);
$counter = 1;
// output of questions with solutions
foreach ($result_array as $question_data)
{
$question = $question_data["qid"];
if (is_numeric($question))
{
$this->tpl->setCurrentBlock("printview_question");
$question_gui = $this->object->createQuestionGUI("", $question);
$template = new ilTemplate("tpl.il_as_qpl_question_printview.html", TRUE, TRUE, "Modules/TestQuestionPool");
$template->setVariable("COUNTER_QUESTION", $counter.". ");
$template->setVariable("QUESTION_TITLE", $question_gui->object->getTitle());
$show_question_only = ($this->object->getShowSolutionAnswersOnly()) ? TRUE : FALSE;
$result_output = $question_gui->getSolutionOutput($active_id, $pass, FALSE, FALSE, $show_question_only, $this->object->getShowSolutionFeedback());
$template->setVariable("SOLUTION_OUTPUT", $result_output);
$this->tpl->setVariable("QUESTION_OUTPUT", $template->get());
$this->tpl->parseCurrentBlock();
$counter ++;
}
}
$this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print.css", "Modules/Test"), "print");
if ($this->object->getShowSolutionAnswersOnly())
{
$this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "test_print_hide_content.css", "Modules/Test"), "print");
}
if (strlen($top_data))
{
$this->tpl->setCurrentBlock("top_data");
$this->tpl->setVariable("TOP_DATA", $top_data);
$this->tpl->parseCurrentBlock();
}
if (strlen($bottom_data))
{
$this->tpl->setCurrentBlock("bottom_data");
$this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
$this->tpl->setVariable("BOTTOM_DATA", $bottom_data);
$this->tpl->parseCurrentBlock();
}
$this->tpl->setCurrentBlock("adm_content");
$this->tpl->setVariable("TXT_ANSWER_SHEET", $this->lng->txt("tst_list_of_answers"));
$user_data = $this->getResultsUserdata($this->testSession, $active_id, TRUE);
$signature = $this->getResultsSignature();
$this->tpl->setVariable("USER_DETAILS", $user_data);
$this->tpl->setVariable("SIGNATURE", $signature);
$this->tpl->setVariable("TITLE", $this->object->getTitle());
$this->tpl->setVariable("TXT_TEST_PROLOG", $this->lng->txt("tst_your_answers"));
$invited_user =& $this->object->getInvitedUsers($ilUser->getId());
$pagetitle = $this->object->getTitle() . " - " . $this->lng->txt("clientip") .
": " . $invited_user[$ilUser->getId()]["clientip"] . " - " .
$this->lng->txt("matriculation") . ": " .
$invited_user[$ilUser->getId()]["matriculation"];
$this->tpl->setVariable("PAGETITLE", $pagetitle);
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::showMaximumAllowedUsersReachedMessage ( )

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

References getContentBlockName().

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

{
$this->tpl->addBlockFile($this->getContentBlockName(), "adm_content", "tpl.il_as_tst_max_allowed_users_reached.html", "Modules/Test");
$this->tpl->setCurrentBlock("adm_content");
$this->tpl->setVariable("MAX_ALLOWED_USERS_MESSAGE", sprintf($this->lng->txt("tst_max_allowed_users_message"), $this->object->getAllowedUsersTimeGap()));
$this->tpl->setVariable("MAX_ALLOWED_USERS_HEADING", sprintf($this->lng->txt("tst_max_allowed_users_heading"), $this->object->getAllowedUsersTimeGap()));
$this->tpl->setVariable("BACK_TO_INTRODUCTION", $this->lng->txt("tst_results_back_introduction"));
$this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::showRequestedHintListCmd ( )
protected

Go to requested hint list.

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

References ilAssQuestionHintRequestGUI\CMD_SHOW_LIST, and saveQuestionSolution().

{
require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionHintRequestGUI.php';
$this->ctrl->redirectByClass('ilAssQuestionHintRequestGUI', ilAssQuestionHintRequestGUI::CMD_SHOW_LIST);
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::showSideList ( )
protected

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

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

Referenced by ilTestOutputGUI\outWorkingForm().

{
global $ilUser;
$show_side_list = $ilUser->getPref('side_list_of_questions');
$this->tpl->setCurrentBlock('view_sidelist');
$this->tpl->setVariable('IMAGE_SIDELIST',
($show_side_list) ? ilUtil::getImagePath('view_remove.png'
) : ilUtil::getImagePath('view_choose.png')
);
$this->tpl->setVariable('TEXT_SIDELIST',
($show_side_list) ? $this->lng->txt('tst_hide_side_list'
) : $this->lng->txt('tst_show_side_list')
);
$this->tpl->parseCurrentBlock();
if($show_side_list)
{
$this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "ta_split.css", "Modules/Test"), "screen");
$this->outQuestionSummaryCmd(false);
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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().

{
$testStartLock = $this->getLockParameter();
$isFirstTestStartRequest = false;
$this->processLocker->requestTestStartLockCheckLock();
if( $this->testSession->lookupTestStartLock() != $testStartLock )
{
$this->testSession->persistTestStartLock($testStartLock);
$isFirstTestStartRequest = true;
}
$this->processLocker->releaseTestStartLockCheckLock();
if( $isFirstTestStartRequest )
{
$this->ctrl->redirect($this, "initTest");
}
$this->ctrl->setParameterByClass('ilObjTestGUI', 'lock', $testStartLock);
$this->ctrl->redirectByClass("ilobjtestgui", "redirectToInfoScreen");
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::togglesidelistCmd ( )

Toggle side list.

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

References $ilUser, and saveQuestionSolution().

{
global $ilUser;
$show_side_list = $ilUser->getPref('side_list_of_questions');
$ilUser->writePref('side_list_of_questions', !$show_side_list);
$this->ctrl->redirect($this, "redirectQuestion");
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::unmarkQuestionCmd ( )
protected

Set a question unsolved.

Reimplemented in ilTestPlayerDynamicQuestionSetGUI.

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

References saveQuestionSolution().

{
$this->ctrl->setParameter($this, "activecommand", "resetmarked");
$this->ctrl->redirect($this, "redirectQuestion");
}

+ Here is the call graph for this function:

Field Documentation

ilTestPlayerAbstractGUI::$cmdCtrl

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

ilTestPlayerAbstractGUI::$endingTimeReached

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

ilTestPlayerAbstractGUI::$maxProcessingTimeReached

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

ilTestPlayerAbstractGUI::$passwordChecker
protected

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

ilTestPlayerAbstractGUI::$processLocker
protected

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

ilTestPlayerAbstractGUI::$ref_id

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

ilTestPlayerAbstractGUI::$saveResult
ilTestPlayerAbstractGUI::$testSession
protected

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


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