ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilTestSessionFactory Class Reference
+ Collaboration diagram for ilTestSessionFactory:

Public Member Functions

 __construct (ilObjTest $testOBJ)
 constructor More...
 
 reset ()
 temporarily bugfix for resetting the state of this singleton smeyer –> BH: not required anymore More...
 
 getSession ($activeId=null)
 Creates and returns an instance of a test sequence that corresponds to the current test mode. More...
 
 getSessionByUserId ($userId)
 

Private Member Functions

 getNewTestSessionObject ()
 
 buildCacheKey ($userId)
 

Private Attributes

 $testSession = array()
 
 $testOBJ = null
 

Detailed Description

Definition at line 10 of file class.ilTestSessionFactory.php.

Constructor & Destructor Documentation

◆ __construct()

ilTestSessionFactory::__construct ( ilObjTest  $testOBJ)

constructor

Parameters
ilObjTest$testOBJ

Definition at line 29 of file class.ilTestSessionFactory.php.

References $testOBJ.

30  {
31  $this->testOBJ = $testOBJ;
32  }

Member Function Documentation

◆ buildCacheKey()

ilTestSessionFactory::buildCacheKey (   $userId)
private
Parameters
$userId
Returns
string

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

Referenced by getSessionByUserId().

130  {
131  return "{$this->testOBJ->getTestId()}::{$userId}";
132  }
+ Here is the caller graph for this function:

◆ getNewTestSessionObject()

ilTestSessionFactory::getNewTestSessionObject ( )
private
Returns
ilTestSession|ilTestSessionDynamicQuestionSet

Definition at line 105 of file class.ilTestSessionFactory.php.

References $testSession, ilObjTest\QUESTION_SET_TYPE_DYNAMIC, ilObjTest\QUESTION_SET_TYPE_FIXED, and ilObjTest\QUESTION_SET_TYPE_RANDOM.

Referenced by getSession(), and getSessionByUserId().

106  {
107  switch ($this->testOBJ->getQuestionSetType()) {
110 
111  require_once 'Modules/Test/classes/class.ilTestSession.php';
112  $testSession = new ilTestSession();
113  break;
114 
116 
117  require_once 'Modules/Test/classes/class.ilTestSessionDynamicQuestionSet.php';
119  break;
120  }
121 
122  return $testSession;
123  }
const QUESTION_SET_TYPE_RANDOM
type setting value for random question set
Test session handler.
const QUESTION_SET_TYPE_FIXED
type setting value for fixed question set
const QUESTION_SET_TYPE_DYNAMIC
type setting value for dynamic question set (continues testing mode)
+ Here is the caller graph for this function:

◆ getSession()

ilTestSessionFactory::getSession (   $activeId = null)

Creates and returns an instance of a test sequence that corresponds to the current test mode.

Parameters
integer$activeId
Returns
ilTestSession|ilTestSessionDynamicQuestionSet

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

References $ilUser, $testSession, and getNewTestSessionObject().

55  {
56  if ($activeId === null || $this->testSession[$activeId] === null) {
58 
59  $testSession->setRefId($this->testOBJ->getRefId());
60  $testSession->setTestId($this->testOBJ->getTestId());
61 
62  if ($activeId) {
63  $testSession->loadFromDb($activeId);
64  $this->testSession[$activeId] = $testSession;
65  } else {
66  global $ilUser;
67 
68  $testSession->loadTestSession(
69  $this->testOBJ->getTestId(),
70  $ilUser->getId(),
71  $testSession->getAccessCodeFromSession()
72  );
73 
74  return $testSession;
75  }
76  }
77 
78  return $this->testSession[$activeId];
79  }
$ilUser
Definition: imgupload.php:18
+ Here is the call graph for this function:

◆ getSessionByUserId()

ilTestSessionFactory::getSessionByUserId (   $userId)
Todo:
: Björn, we also need to handle the anonymous user here
Parameters
integer$userId
Returns
ilTestSession|ilTestSessionDynamicQuestionSet

Definition at line 86 of file class.ilTestSessionFactory.php.

References $testSession, buildCacheKey(), and getNewTestSessionObject().

87  {
88  if (!isset($this->testSession[$this->buildCacheKey($userId)])) {
90 
91  $testSession->setRefId($this->testOBJ->getRefId());
92  $testSession->setTestId($this->testOBJ->getTestId());
93 
94  $testSession->loadTestSession($this->testOBJ->getTestId(), $userId);
95 
96  $this->testSession[$this->buildCacheKey($userId)] = $testSession;
97  }
98 
99  return $this->testSession[$this->buildCacheKey($userId)];
100  }
+ Here is the call graph for this function:

◆ reset()

ilTestSessionFactory::reset ( )

temporarily bugfix for resetting the state of this singleton smeyer –> BH: not required anymore

Definition at line 39 of file class.ilTestSessionFactory.php.

References array.

40  {
41  $this->testSession = array();
42  }
Create styles array
The data for the language used.

Field Documentation

◆ $testOBJ

ilTestSessionFactory::$testOBJ = null
private

Definition at line 23 of file class.ilTestSessionFactory.php.

Referenced by __construct().

◆ $testSession

ilTestSessionFactory::$testSession = array()
private

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