ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilTestVirtualSequence Class Reference
+ Inheritance diagram for ilTestVirtualSequence:
+ Collaboration diagram for ilTestVirtualSequence:

Public Member Functions

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

Protected Member Functions

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

Protected Attributes

 $db
 
 $testOBJ
 
 $testSequenceFactory
 
 $activeId
 
 $questionsPassMap
 

Private Member Functions

 getExistingPassesDescendent ($activeId)
 

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

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

Reimplemented in ilTestVirtualSequenceRandomQuestionSet.

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

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

References $db, $testOBJ, and $testSequenceFactory.

Member Function Documentation

◆ fetchQuestionsFromPasses()

ilTestVirtualSequence::fetchQuestionsFromPasses (   $activeId,
  $passes 
)
protected

Reimplemented in ilTestVirtualSequenceRandomQuestionSet.

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

127 {
128 $this->questionsPassMap = array();
129
130 foreach($passes as $pass)
131 {
132 $testSequence = $this->getTestSequence($activeId, $pass);
133
134 foreach($testSequence->getOrderedSequenceQuestions() as $questionId)
135 {
136 if(isset($this->questionsPassMap[$questionId]))
137 {
138 continue;
139 }
140
141 if($this->wasAnsweredInThisPass($testSequence, $questionId))
142 {
143 $this->questionsPassMap[$questionId] = $pass;
144 }
145 }
146 }
147 }
wasAnsweredInThisPass(ilTestSequence $testSequence, $questionId)

References $activeId, $pass, 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 50 of file class.ilTestVirtualSequence.php.

51 {
52 return $this->activeId;
53 }

References $activeId.

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

+ Here is the caller graph for this function:

◆ getExistingPassesDescendent()

ilTestVirtualSequence::getExistingPassesDescendent (   $activeId)
private

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

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 }

References $activeId.

Referenced by init().

+ Here is the caller graph for this function:

◆ getQuestionIds()

ilTestVirtualSequence::getQuestionIds ( )

Implements ilTestQuestionSequence.

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

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().

+ Here is the caller graph for this function:

◆ getTestSequence()

ilTestVirtualSequence::getTestSequence (   $activeId,
  $pass 
)
protected

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

95 {
96 $testSequence = $this->testSequenceFactory->getSequenceByActiveIdAndPass($activeId, $pass);
97
98 $testSequence->loadFromDb();
99 $testSequence->loadQuestions();
100
101 $testSequence->setConsiderHiddenQuestionsEnabled(true);
102 $testSequence->setConsiderOptionalQuestionsEnabled(true);
103 return $testSequence;
104 }

References $activeId, and $pass.

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

+ Here is the caller graph for this function:

◆ getUniquePasses()

ilTestVirtualSequence::getUniquePasses ( )

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

71 {
72 return array_unique(array_values($this->questionsPassMap));
73 }

Referenced by ilTestService\getVirtualSequenceUserResults().

+ Here is the caller graph for this function:

◆ init()

ilTestVirtualSequence::init ( )

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

76 {
77 $passes = $this->getExistingPassesDescendent($this->getActiveId());
78 $this->fetchQuestionsFromPasses($this->getActiveId(), $passes);
79 }
fetchQuestionsFromPasses($activeId, $passes)

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

+ Here is the call graph for this function:

◆ setActiveId()

ilTestVirtualSequence::setActiveId (   $activeId)

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

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

References $activeId.

◆ wasAnsweredInThisPass()

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

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

107 {
108 if( $testSequence->isHiddenQuestion($questionId) )
109 {
110 return false;
111 }
112
113 if( !$testSequence->isQuestionOptional($questionId) )
114 {
115 return true;
116 }
117
118 if( $testSequence->isAnsweringOptionalQuestionsConfirmed() )
119 {
120 return true;
121 }
122
123 return false;
124 }
isHiddenQuestion($question_id)
isQuestionOptional($questionId)

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

◆ $activeId

◆ $db

ilTestVirtualSequence::$db
protected

◆ $questionsPassMap

ilTestVirtualSequence::$questionsPassMap
protected

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

Referenced by getQuestionsPassMap().

◆ $testOBJ

ilTestVirtualSequence::$testOBJ
protected

◆ $testSequenceFactory

ilTestVirtualSequence::$testSequenceFactory
protected

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