ILIAS  trunk Revision v11.0_alpha-1749-g1a06bdef097
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilTestVirtualSequence Class Reference
+ Inheritance diagram for ilTestVirtualSequence:
+ Collaboration diagram for ilTestVirtualSequence:

Public Member Functions

 __construct (protected ilDBInterface $db, protected ilObjTest $test_obj, protected ilTestSequenceFactory $test_sequence_factory)
 
 getActiveId ()
 
 setActiveId (int $active_id)
 
 getQuestionIds ()
 
 getQuestionsPassMap ()
 
 getUniquePasses ()
 
 init ()
 

Protected Member Functions

 getTestSequence (int $active_id, int $pass)
 
 wasAnsweredInThisPass (ilTestSequence $test_sequence, int $question_id)
 
 fetchQuestionsFromPasses (int $active_id, array $passes)
 

Protected Attributes

int $active_id
 
array $questions_pass_map
 

Private Member Functions

 getExistingPassesDescendent (int $active_id)
 

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

ilTestVirtualSequence::__construct ( protected ilDBInterface  $db,
protected ilObjTest  $test_obj,
protected ilTestSequenceFactory  $test_sequence_factory 
)

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

References null.

37  {
38  $this->active_id = null;
39 
40  $this->questions_pass_map = [];
41  }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null

Member Function Documentation

◆ fetchQuestionsFromPasses()

ilTestVirtualSequence::fetchQuestionsFromPasses ( int  $active_id,
array  $passes 
)
protected
Parameters
array<int>$passes

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

References getTestSequence(), and wasAnsweredInThisPass().

Referenced by init().

118  : void
119  {
120  $this->questions_pass_map = [];
121 
122  foreach ($passes as $pass) {
123  $test_sequence = $this->getTestSequence($active_id, $pass);
124 
125  foreach ($test_sequence->getOrderedSequenceQuestions() as $question_id) {
126  if (isset($this->questions_pass_map[$question_id])) {
127  continue;
128  }
129 
130  if ($this->wasAnsweredInThisPass($test_sequence, $question_id)) {
131  $this->questions_pass_map[$question_id] = $pass;
132  }
133  }
134  }
135  }
getTestSequence(int $active_id, int $pass)
wasAnsweredInThisPass(ilTestSequence $test_sequence, int $question_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getActiveId()

ilTestVirtualSequence::getActiveId ( )

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

References $active_id.

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

43  : ?int
44  {
45  return $this->active_id;
46  }
+ Here is the caller graph for this function:

◆ getExistingPassesDescendent()

ilTestVirtualSequence::getExistingPassesDescendent ( int  $active_id)
private

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

Referenced by init().

74  : array
75  {
76  $passes_selector = new ilTestPassesSelector($this->db, $this->test_obj);
77  $passes_selector->setActiveId($active_id);
78 
79  $passes = $passes_selector->getExistingPasses();
80 
81  rsort($passes, SORT_NUMERIC);
82 
83  return $passes;
84  }
+ Here is the caller graph for this function:

◆ getQuestionIds()

ilTestVirtualSequence::getQuestionIds ( )

Implements ilTestQuestionSequence.

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

53  : array
54  {
55  return array_keys($this->questions_pass_map);
56  }

◆ getQuestionsPassMap()

ilTestVirtualSequence::getQuestionsPassMap ( )

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

References $questions_pass_map.

Referenced by ilTestService\getVirtualSequenceUserResults().

58  : array
59  {
61  }
+ Here is the caller graph for this function:

◆ getTestSequence()

ilTestVirtualSequence::getTestSequence ( int  $active_id,
int  $pass 
)
protected

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

References ilTestSequence\loadFromDb().

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

87  {
88  $test_sequence = $this->test_sequence_factory->getSequenceByActiveIdAndPass($active_id, $pass);
89 
90  $test_sequence->loadFromDb();
91  $test_sequence->loadQuestions();
92 
93  $test_sequence->setConsiderHiddenQuestionsEnabled(true);
94  $test_sequence->setConsiderOptionalQuestionsEnabled(true);
95  return $test_sequence;
96  }
loadFromDb()
Loads the sequence data for a given active id.
Test sequence handler.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getUniquePasses()

ilTestVirtualSequence::getUniquePasses ( )

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

Referenced by ilTestService\getVirtualSequenceUserResults().

63  : array
64  {
65  return array_unique(array_values($this->questions_pass_map));
66  }
+ Here is the caller graph for this function:

◆ init()

ilTestVirtualSequence::init ( )

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

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

68  : void
69  {
70  $passes = $this->getExistingPassesDescendent($this->getActiveId());
71  $this->fetchQuestionsFromPasses($this->getActiveId(), $passes);
72  }
fetchQuestionsFromPasses(int $active_id, array $passes)
+ Here is the call graph for this function:

◆ setActiveId()

ilTestVirtualSequence::setActiveId ( int  $active_id)

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

References $active_id.

48  : void
49  {
50  $this->active_id = $active_id;
51  }

◆ wasAnsweredInThisPass()

ilTestVirtualSequence::wasAnsweredInThisPass ( ilTestSequence  $test_sequence,
int  $question_id 
)
protected

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

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

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

98  : bool
99  {
100  if ($test_sequence->isHiddenQuestion($question_id)) {
101  return false;
102  }
103 
104  if (!$test_sequence->isQuestionOptional($question_id)) {
105  return true;
106  }
107 
108  if ($test_sequence->isAnsweringOptionalQuestionsConfirmed()) {
109  return true;
110  }
111 
112  return false;
113  }
isHiddenQuestion(int $question_id)
isQuestionOptional(int $question_id)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $active_id

int ilTestVirtualSequence::$active_id
protected

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

Referenced by getActiveId(), and setActiveId().

◆ $questions_pass_map

array ilTestVirtualSequence::$questions_pass_map
protected

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

Referenced by getQuestionsPassMap().


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