ILIAS  Release_4_4_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.
 showPasswordProtectionPageCmd ()
 Displays a password protection page when a test password is set.
 checkPasswordCmd ()
 Check the password, a user entered for test access.
 setAnonymousIdCmd ()
 Sets a session variable with the test access code for an anonymous test user.
 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 ()
 finishListOfAnswersCmd ()
 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
 ilTestServiceGUI (ilObjTest $a_object)
 The constructor takes the test object reference as parameter.
executeCommand ()
 execute command
 getCommand ($cmd)
 Retrieves the ilCtrl command.
 getPassOverview ($active_id, $targetclass="", $targetcommand="", $short=FALSE, $hide_details=FALSE)
 Returns the pass overview for a given active ID.
 getFinalStatement ($active_id)
 Returns the final statement for a user.
 getPassListOfAnswers (&$result_array, $active_id, $pass, $show_solutions=FALSE, $only_answered_questions=FALSE, $show_question_only=FALSE, $show_reached_points=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.
 getPassDetailsOverview ($result_array, $active_id, $pass, $targetclass="", $targetcommandsort="", $targetcommanddetails="", $standard_header=TRUE)
 Returns the pass details overview for a given active ID and pass.
 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, $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.
 getLockParameter ()
 resumePlayerCmd ()
 Resume a test at the last position.
 checkTestPassword ()
 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 ()

Protected Attributes

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

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 61594 2016-02-12 12:50:11Z gitmgr

ModulesTest

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

Constructor & Destructor Documentation

ilTestPlayerAbstractGUI::__construct (   $a_object)

ilTestOutputGUI constructor

Parameters
ilObjTest$a_object

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

References $_GET, and ilTestServiceGUI\ilTestServiceGUI().

{
$this->ref_id = $_GET["ref_id"];
$this->processLocker = null;
$this->testSession = null;
}

+ Here is the call graph for this function:

Member Function Documentation

ilTestPlayerAbstractGUI::afterTestPassFinishedCmd ( )
protected

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

References isTestSignRedirectRequired(), 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');
}
// 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);
}
}
$this->redirectBackCmd();
}

+ Here is the call graph for this function:

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

Definition at line 1090 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 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 760 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 1690 of file class.ilTestPlayerAbstractGUI.php.

References $ilUser, and showListOfAnswers().

{
global $ilUser;
if ($this->object->canShowSolutionPrintview($ilUser->getId()))
{
$template = new ilTemplate("tpl.il_as_tst_finish_navigation.html", TRUE, TRUE, "Modules/Test");
$template->setVariable("BUTTON_FINISH", $this->lng->txt("btn_next"));
$template->setVariable("BUTTON_CANCEL", $this->lng->txt("btn_previous"));
if ($this->object->getEnableExamview())
{
$template->setVariable("CANCEL_CMD", 'finishTest');
}
else if($this->object->getListOfQuestionsEnd())
{
$template->setVariable("CANCEL_CMD", 'outQuestionSummary');
}
else
{
$template->setVariable("CANCEL_CMD", 'redirectQuestion');
}
$template_top = new ilTemplate("tpl.il_as_tst_list_of_answers_topbuttons.html", TRUE, TRUE, "Modules/Test");
$template_top->setCurrentBlock("button_print");
$template_top->setVariable("BUTTON_PRINT", $this->lng->txt("print"));
$template_top->parseCurrentBlock();
$active_id = $this->testSession->getActiveId();
return $this->showListOfAnswers($active_id, NULL, $template_top->get(), $template->get());
}
else
{
$this->ctrl->redirect($this, 'gotoQuestion');
}
}

+ Here is the call graph for this function:

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 835 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 720 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 1321 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::checkPasswordCmd ( )

Check the password, a user entered for test access.

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

References $_POST, $_SESSION, $ilUser, and ilUtil\sendFailure().

{
if (strcmp($this->object->getPassword(), $_POST["password"]) == 0)
{
global $ilUser;
if ($_SESSION["AccountId"] != ANONYMOUS_USER_ID)
{
$ilUser->setPref("tst_password_".$this->object->getTestId(), $this->object->getPassword());
$ilUser->writePref("tst_password_".$this->object->getTestId(), $this->object->getPassword());
}
else
{
$_SESSION['tst_password_'.$this->object->getTestId()] = $this->object->getPassword();
}
$this->ctrl->redirect($this, 'startPlayer');
}
else
{
ilUtil::sendFailure($this->lng->txt("tst_password_entered_wrong_password"), true);
$this->ctrl->redirectByClass("ilobjtestgui", "infoScreen");
}
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::checkTestPassword ( )
protected

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

References $_SESSION, $ilCtrl, and $ilUser.

Referenced by startPlayerCmd().

{
global $rbacsystem, $ilUser, $ilCtrl;
if( !strlen($this->object->getPassword()) )
{
return true;
}
if( $rbacsystem->checkAccess("write", $this->object->getRefId()) )
{
return true;
}
$pwd = '';
if( $_SESSION["AccountId"] != ANONYMOUS_USER_ID )
{
$pwd = $ilUser->getPref("tst_password_".$this->object->getTestId());
}
elseif( isset($_SESSION['tst_password_'.$this->object->getTestId()]) )
{
$pwd = $_SESSION['tst_password_'.$this->object->getTestId()];
}
if( $pwd == $this->object->getPassword() )
{
return true;
}
return false;
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::codeConfirmedCmd ( )

Definition at line 678 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 844 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 1885 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 1421 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::determineInlineScoreDisplay ( )
protected

Definition at line 168 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 667 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 1388 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 57 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 1901 of file class.ilTestPlayerAbstractGUI.php.

References ilTestServiceGUI\$lng, $pass, ilTestServiceGUI\$tpl, ilAssQuestionHintTracking\requestsExist(), and ilAssQuestionHintTracking\requestsPossible().

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() )
{
require_once 'Modules/TestQuestionPool/classes/class.ilAssQuestionHintTracking.php';
$questionId = $questionGUI->object->getId();
$activeId = $this->testSession->getActiveId();
$pass = $this->testSession->getPass();
$requestsExist = ilAssQuestionHintTracking::requestsExist($questionId, $activeId, $pass);
$requestsPossible = ilAssQuestionHintTracking::requestsPossible($questionId, $activeId, $pass);
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 call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::finishListOfAnswersCmd ( )

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

{
$this->confirmFinishTestCmd();
}
ilTestPlayerAbstractGUI::finishTestCmd (   $requires_confirmation = true)

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

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

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))
{
if ($this->object->canShowSolutionPrintview($ilUser->getId()))
{
$template = new ilTemplate("tpl.il_as_tst_finish_navigation.html", TRUE, TRUE, "Modules/Test");
$template->setVariable("BUTTON_FINISH", $this->lng->txt("btn_next"));
$template->setVariable("BUTTON_CANCEL", $this->lng->txt("btn_previous"));
if ($this->object->getEnableExamview())
{
$template->setVariable("CANCEL_CMD", 'finishTest');
}
else if($this->object->getListOfQuestionsEnd())
{
$template->setVariable("CANCEL_CMD", 'outQuestionSummary');
}
else
{
$template->setVariable("CANCEL_CMD", 'redirectQuestion');
}
$template_top = new ilTemplate("tpl.il_as_tst_list_of_answers_topbuttons.html", TRUE, TRUE, "Modules/Test");
$template_top->setCurrentBlock("button_print");
$template_top->setVariable("BUTTON_PRINT", $this->lng->txt("print"));
$template_top->parseCurrentBlock();
$this->showListOfAnswers($active_id, NULL, $template_top->get(), $template->get());
return;
}
else
{
// 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 1843 of file class.ilTestPlayerAbstractGUI.php.

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

{
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::getKioskHead ( )

Definition at line 1218 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 ( )
protected

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

References $_GET, and $_POST.

Referenced by 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 1987 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 820 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::handleQuestionActionCmd ( )
abstractprotected
ilTestPlayerAbstractGUI::handleUserSettings ( )

Handles some form parameters on starting and resuming a test.

Definition at line 687 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 81 of file class.ilTestPlayerAbstractGUI.php.

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 646 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 153 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 1357 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 1346 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 1061 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 800 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 1411 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 1733 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 141 of file class.ilTestPlayerAbstractGUI.php.

Referenced by redirectBackCmd().

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

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::outObligationsOnlySummaryCmd ( )

Definition at line 1674 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 1441 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 (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 1537 of file class.ilTestPlayerAbstractGUI.php.

References $_GET, $row, $sequence, ilObjTest\_getSolvedQuestions(), getContentBlockName(), getKioskHead(), outProcessingTime(), ilUtil\prepareFormOutput(), ilUtil\sendFailure(), and ilTable2GUI\setData().

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']
));
}
$this->ctrl->setParameter($this, "sequence", $_GET["sequence"]);
if( $fullpage )
{
include_once "./Modules/Test/classes/tables/class.ilListOfQuestionsTableGUI.php";
$table_gui = new ilListOfQuestionsTableGUI(
$this, 'backFromSummary', !$this->object->getTitleOutput(), $this->object->getShowMarker(),
$obligationsNotAnswered, $obligationsFilter
);
$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();
}
$template->setVariable('LIST_OF_QUESTIONS', $this->lng->txt('list_of_questions'));
$this->tpl->setVariable('LIST_OF_QUESTIONS', $template->get());
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::outQuestionSummaryWithObligationsInfoCmd ( )

Definition at line 1669 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 110 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 1256 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 1864 of file class.ilTestPlayerAbstractGUI.php.

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

Definition at line 1857 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 1369 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::performTestPassFinishedTasks (   $finishedPass)
protected

Definition at line 1011 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 275 of file class.ilTestPlayerAbstractGUI.php.

References ilUtil\getImagePath().

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->tpl->setVariable( "TEXT_ALTCANCELTEXT", $this->lng->txt( "cancel_test" ) );
$this->tpl->setVariable( "TEXT_TITLECANCELTEXT", $this->lng->txt( "cancel_test" ) );
$this->tpl->setVariable( "HREF_IMGCANCELTEST",
$this->ctrl->getLinkTargetByClass( get_class( $this ), "outIntroductionPage"
) . "&cancelTest=true"
);
$this->tpl->setVariable( "HREF_CANCELTEXT",
$this->ctrl->getLinkTargetByClass( get_class( $this ), "outIntroductionPage"
) . "&cancelTest=true"
);
$this->tpl->setVariable( "IMAGE_CANCEL", ilUtil::getImagePath( "cancel.png" ) );
$this->tpl->parseCurrentBlock();
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateCharSelector ( )
protected

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

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

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_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 485 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 407 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 2026 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 237 of file class.ilTestPlayerAbstractGUI.php.

Referenced by populateNextButtonsLeadingToEndOfTest().

{
$this->tpl->setCurrentBlock( "next_bottom" );
$this->tpl->setVariable( "CMD_NEXT", 'nextQuestion' );
$this->tpl->setVariable( "BTN_NEXT", $this->lng->txt( "save_finish" ) . " &gt;&gt;" );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateLowerNextButtonBlockLeadingToQuestion ( )
protected

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

Referenced by populateNextButtonsLeadingToQuestion().

{
$this->tpl->setCurrentBlock( "next_bottom" );
$this->tpl->setVariable( "CMD_NEXT", 'nextQuestion' );
$this->tpl->setVariable( "BTN_NEXT", $this->lng->txt( "save_next" ) . " &gt;&gt;" );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateLowerNextButtonBlockLeadingToSummary ( )
protected

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

Referenced by populateNextButtonsLeadingToSummary().

{
$this->tpl->setCurrentBlock( "next_bottom" );
$this->tpl->setVariable( "CMD_NEXT", 'nextQuestion' );
$this->tpl->setVariable( "BTN_NEXT", $this->lng->txt( "question_summary" ) . " &gt;&gt;" );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateLowerPostponeButtonBlock ( )
protected

Definition at line 343 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 379 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 321 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 299 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 337 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 179 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 369 of file class.ilTestPlayerAbstractGUI.php.

References populateLowerPreviousButtonBlock(), and populateUpperPreviousButtonBlock().

Referenced by populatePreviousButtons().

{
'previousQuestion', "&lt;&lt; " . $this->lng->txt( "save_introduction" )
);
'previousQuestion', "&lt;&lt; " . $this->lng->txt( "save_introduction" )
);
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populatePreviousButtonsLeadingToQuestion ( )
protected

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

References populateLowerPreviousButtonBlock(), and populateUpperPreviousButtonBlock().

Referenced by populatePreviousButtons().

{
'previousQuestion', "&lt;&lt; " . $this->lng->txt( "save_previous" )
);
'previousQuestion', "&lt;&lt; " . $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 200 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.png" ) );
$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 191 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_.png" ) );
$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 418 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 429 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 395 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 293 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 476 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 245 of file class.ilTestPlayerAbstractGUI.php.

Referenced by populateNextButtonsLeadingToEndOfTest().

{
$this->tpl->setCurrentBlock( "next" );
$this->tpl->setVariable( "CMD_NEXT", 'nextQuestion' );
$this->tpl->setVariable( "BTN_NEXT", $this->lng->txt( "save_finish" ) . " &gt;&gt;" );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateUpperNextButtonBlockLeadingToQuestion ( )
protected

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

Referenced by populateNextButtonsLeadingToQuestion().

{
$this->tpl->setCurrentBlock( "next" );
$this->tpl->setVariable( "CMD_NEXT", 'nextQuestion' );
$this->tpl->setVariable( "BTN_NEXT", $this->lng->txt( "save_next" ) . " &gt;&gt;" );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateUpperNextButtonBlockLeadingToSummary ( )
protected

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

Referenced by populateNextButtonsLeadingToSummary().

{
$this->tpl->setCurrentBlock( "next" );
$this->tpl->setVariable( "CMD_NEXT", 'nextQuestion' );
$this->tpl->setVariable( "BTN_NEXT", $this->lng->txt( "question_summary" ) . " &gt;&gt;" );
$this->tpl->parseCurrentBlock();
}

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::populateUpperPostponeButtonBlock ( )
protected

Definition at line 351 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 387 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 329 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 307 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 2002 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 2019 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 743 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 1168 of file class.ilTestPlayerAbstractGUI.php.

References $_GET, and outIntroductionPageCmd().

Referenced by afterTestPassFinishedCmd().

{
if (isset($_GET['reviewed']))
{
if (!$_GET["skipfinalstatement"])
{
if ($this->object->getShowFinalStatement() == 1)
{
$this->ctrl->redirect($this, "showFinalStatement");
}
}
else
{
$this->ctrl->redirectByClass(
array('ilRepositoryGUI', 'ilObjTestGUI', 'ilTestEvaluationGUI'), "outUserResultsOverview"
);
}
}
if (!$_GET["skipfinalstatement"])
{
if ($this->object->getShowFinalStatement())
{
$this->ctrl->redirect($this, "showFinalStatement");
}
}
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 603 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 101 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 540 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 1208 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, "redirectBack"));
$template->setVariable("FINALSTATEMENT", $this->object->getFinalStatement());
$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 1771 of file class.ilTestPlayerAbstractGUI.php.

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

Referenced by backConfirmFinishCmd(), and finishTestCmd().

{
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:

+ Here is the caller graph for this function:

ilTestPlayerAbstractGUI::showMaximumAllowedUsersReachedMessage ( )

Definition at line 1679 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::showPasswordProtectionPageCmd ( )

Displays a password protection page when a test password is set.

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

References getContentBlockName().

{
$template = new ilTemplate("tpl.il_as_tst_password_protection.html", TRUE, TRUE, "Modules/Test");
$template->setVariable("FORMACTION", $this->ctrl->getFormAction($this, "checkPassword"));
$template->setVariable("PASSWORD_INTRODUCTION", $this->lng->txt("tst_password_introduction"));
$template->setVariable("TEXT_PASSWORD", $this->lng->txt("tst_password"));
$template->setVariable("SUBMIT", $this->lng->txt("submit"));
$this->tpl->setVariable($this->getContentBlockName(), $template->get());
}

+ Here is the call graph for this function:

ilTestPlayerAbstractGUI::showRequestedHintListCmd ( )
protected

Go to requested hint list.

Definition at line 1874 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 455 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 556 of file class.ilTestPlayerAbstractGUI.php.

References checkTestPassword(), 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 )
{
if( !$this->checkTestPassword() )
{
$this->ctrl->redirect($this, 'showPasswordProtectionPage');
}
$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 787 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 810 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 29 of file class.ilTestPlayerAbstractGUI.php.

ilTestPlayerAbstractGUI::$endingTimeReached

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

ilTestPlayerAbstractGUI::$maxProcessingTimeReached

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

ilTestPlayerAbstractGUI::$processLocker
protected

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

ilTestPlayerAbstractGUI::$ref_id

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

ilTestPlayerAbstractGUI::$saveResult
ilTestPlayerAbstractGUI::$testSession
protected

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


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