ILIAS  release_8 Revision v8.19
All Data Structures Namespaces Files Functions Variables Modules Pages
ilTestVirtualSequence Class Reference
+ Inheritance diagram for ilTestVirtualSequence:
+ Collaboration diagram for ilTestVirtualSequence:

Public Member Functions

 __construct (ilDBInterface $db, ilObjTest $testOBJ, ilTestSequenceFactory $testSequenceFactory)
 
 getActiveId ()
 
 setActiveId (int $activeId)
 
 getQuestionIds ()
 
 getQuestionsPassMap ()
 
 getUniquePasses ()
 
 init ()
 

Protected Member Functions

 getTestSequence (int $activeId, int $pass)
 
 wasAnsweredInThisPass (ilTestSequence $testSequence, $questionId)
 
 fetchQuestionsFromPasses (int $activeId, array $passes)
 

Protected Attributes

ilDBInterface $db
 
ilObjTest $testOBJ
 
ilTestSequenceFactory $testSequenceFactory
 
int $activeId
 
array $questionsPassMap
 

Private Member Functions

 getExistingPassesDescendent ($activeId)
 

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

ilTestVirtualSequence::__construct ( ilDBInterface  $db,
ilObjTest  $testOBJ,
ilTestSequenceFactory  $testSequenceFactory 
)

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

References $db, $testOBJ, and $testSequenceFactory.

40  {
41  $this->db = $db;
42  $this->testOBJ = $testOBJ;
43  $this->testSequenceFactory = $testSequenceFactory;
44 
45  $this->activeId = null;
46 
47  $this->questionsPassMap = array();
48  }
ilTestSequenceFactory $testSequenceFactory

Member Function Documentation

◆ fetchQuestionsFromPasses()

ilTestVirtualSequence::fetchQuestionsFromPasses ( int  $activeId,
array  $passes 
)
protected
Parameters
int[]$passes

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

References getTestSequence(), and wasAnsweredInThisPass().

Referenced by init().

129  : void
130  {
131  $this->questionsPassMap = array();
132 
133  foreach ($passes as $pass) {
134  $testSequence = $this->getTestSequence($activeId, $pass);
135 
136  foreach ($testSequence->getOrderedSequenceQuestions() as $questionId) {
137  if (isset($this->questionsPassMap[$questionId])) {
138  continue;
139  }
140 
141  if ($this->wasAnsweredInThisPass($testSequence, $questionId)) {
142  $this->questionsPassMap[$questionId] = $pass;
143  }
144  }
145  }
146  }
getTestSequence(int $activeId, int $pass)
wasAnsweredInThisPass(ilTestSequence $testSequence, $questionId)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getActiveId()

ilTestVirtualSequence::getActiveId ( )

Definition at line 50 of file class.ilTestVirtualSequence.php.

References $activeId.

Referenced by ilTestService\getVirtualSequenceUserResults(), and init().

50  : ?int
51  {
52  return $this->activeId;
53  }
+ Here is the caller graph for this function:

◆ getExistingPassesDescendent()

ilTestVirtualSequence::getExistingPassesDescendent (   $activeId)
private

Definition at line 81 of file class.ilTestVirtualSequence.php.

Referenced by init().

81  : array
82  {
83  require_once 'Modules/Test/classes/class.ilTestPassesSelector.php';
84  $passesSelector = new ilTestPassesSelector($this->db, $this->testOBJ);
85  $passesSelector->setActiveId($activeId);
86 
87  $passes = $passesSelector->getExistingPasses();
88 
89  rsort($passes, SORT_NUMERIC);
90 
91  return $passes;
92  }
+ Here is the caller graph for this function:

◆ getQuestionIds()

ilTestVirtualSequence::getQuestionIds ( )

Implements ilTestQuestionSequence.

Definition at line 60 of file class.ilTestVirtualSequence.php.

60  : array
61  {
62  return array_keys($this->questionsPassMap);
63  }

◆ getQuestionsPassMap()

ilTestVirtualSequence::getQuestionsPassMap ( )

Definition at line 65 of file class.ilTestVirtualSequence.php.

References $questionsPassMap.

Referenced by ilTestService\getVirtualSequenceUserResults().

65  : array
66  {
68  }
+ Here is the caller graph for this function:

◆ getTestSequence()

ilTestVirtualSequence::getTestSequence ( int  $activeId,
int  $pass 
)
protected
Returns
ilTestSequenceDynamicQuestionSet|ilTestSequenceFixedQuestionSet|ilTestSequenceRandomQuestionSet

Definition at line 97 of file class.ilTestVirtualSequence.php.

Referenced by ilTestVirtualSequenceRandomQuestionSet\fetchQuestionsFromPasses(), and fetchQuestionsFromPasses().

98  {
99  $testSequence = $this->testSequenceFactory->getSequenceByActiveIdAndPass($activeId, $pass);
100 
101  $testSequence->loadFromDb();
102  $testSequence->loadQuestions();
103 
104  $testSequence->setConsiderHiddenQuestionsEnabled(true);
105  $testSequence->setConsiderOptionalQuestionsEnabled(true);
106  return $testSequence;
107  }
+ Here is the caller graph for this function:

◆ getUniquePasses()

ilTestVirtualSequence::getUniquePasses ( )

Definition at line 70 of file class.ilTestVirtualSequence.php.

Referenced by ilTestService\getVirtualSequenceUserResults().

70  : array
71  {
72  return array_unique(array_values($this->questionsPassMap));
73  }
+ Here is the caller graph for this function:

◆ init()

ilTestVirtualSequence::init ( )

Definition at line 75 of file class.ilTestVirtualSequence.php.

References fetchQuestionsFromPasses(), getActiveId(), and getExistingPassesDescendent().

75  : void
76  {
77  $passes = $this->getExistingPassesDescendent($this->getActiveId());
78  $this->fetchQuestionsFromPasses($this->getActiveId(), $passes);
79  }
fetchQuestionsFromPasses(int $activeId, array $passes)
+ Here is the call graph for this function:

◆ setActiveId()

ilTestVirtualSequence::setActiveId ( int  $activeId)

Definition at line 55 of file class.ilTestVirtualSequence.php.

References $activeId.

55  : void
56  {
57  $this->activeId = $activeId;
58  }

◆ wasAnsweredInThisPass()

ilTestVirtualSequence::wasAnsweredInThisPass ( ilTestSequence  $testSequence,
  $questionId 
)
protected

Definition at line 109 of file class.ilTestVirtualSequence.php.

References ilTestSequence\isAnsweringOptionalQuestionsConfirmed(), ilTestSequence\isHiddenQuestion(), and ilTestSequence\isQuestionOptional().

Referenced by ilTestVirtualSequenceRandomQuestionSet\fetchQuestionsFromPasses(), and fetchQuestionsFromPasses().

109  : bool
110  {
111  if ($testSequence->isHiddenQuestion($questionId)) {
112  return false;
113  }
114 
115  if (!$testSequence->isQuestionOptional($questionId)) {
116  return true;
117  }
118 
119  if ($testSequence->isAnsweringOptionalQuestionsConfirmed()) {
120  return true;
121  }
122 
123  return false;
124  }
isQuestionOptional($questionId)
isHiddenQuestion($question_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $activeId

int ilTestVirtualSequence::$activeId
protected

Definition at line 35 of file class.ilTestVirtualSequence.php.

Referenced by getActiveId(), and setActiveId().

◆ $db

ilDBInterface ilTestVirtualSequence::$db
protected

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

Referenced by __construct().

◆ $questionsPassMap

array ilTestVirtualSequence::$questionsPassMap
protected

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

Referenced by getQuestionsPassMap().

◆ $testOBJ

ilObjTest ilTestVirtualSequence::$testOBJ
protected

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

Referenced by __construct().

◆ $testSequenceFactory

ilTestSequenceFactory ilTestVirtualSequence::$testSequenceFactory
protected

Definition at line 33 of file class.ilTestVirtualSequence.php.

Referenced by __construct().


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