ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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 ()
 
 getQuestionIds ()
 

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.

37 {
38 $this->active_id = null;
39
40 $this->questions_pass_map = [];
41 }

Member Function Documentation

◆ fetchQuestionsFromPasses()

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

Reimplemented in ilTestVirtualSequenceRandomQuestionSet.

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

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)

References getTestSequence(), and wasAnsweredInThisPass().

Referenced by init().

+ 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.

43 : ?int
44 {
45 return $this->active_id;
46 }

References $active_id.

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

+ Here is the caller graph for this function:

◆ getExistingPassesDescendent()

ilTestVirtualSequence::getExistingPassesDescendent ( int  $active_id)
private

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

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 }

References $active_id.

Referenced by init().

+ 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.

58 : array
59 {
61 }

References $questions_pass_map.

Referenced by ilTestService\getVirtualSequenceUserResults().

+ 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.

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 }
Test sequence handler.
loadFromDb()
Loads the sequence data for a given active id.

References $active_id, and ilTestSequence\loadFromDb().

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

+ 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.

63 : array
64 {
65 return array_unique(array_values($this->questions_pass_map));
66 }

Referenced by ilTestService\getVirtualSequenceUserResults().

+ Here is the caller graph for this function:

◆ init()

ilTestVirtualSequence::init ( )

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

68 : void
69 {
70 $passes = $this->getExistingPassesDescendent($this->getActiveId());
71 $this->fetchQuestionsFromPasses($this->getActiveId(), $passes);
72 }
fetchQuestionsFromPasses(int $active_id, array $passes)

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

+ Here is the call graph for this function:

◆ setActiveId()

ilTestVirtualSequence::setActiveId ( int  $active_id)

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

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

References $active_id.

◆ wasAnsweredInThisPass()

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

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

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)

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

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

+ 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

◆ $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: