ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
ilTestDynamicQuestionSet Class Reference
+ Collaboration diagram for ilTestDynamicQuestionSet:

Public Member Functions

 __construct (ilDB $db, ilLanguage $lng, ilPluginAdmin $pluginAdmin, ilObjTest $testOBJ)
 Constructor. More...
 
 load (ilObjTestDynamicQuestionSetConfig $dynamicQuestionSetConfig, ilTestDynamicQuestionSetFilterSelection $filterSelection)
 
 getActualQuestionSequence ()
 
 questionExists ($questionId)
 
 getQuestionData ($questionId)
 
 getAllQuestionsData ()
 
 getCompleteQuestionList ()
 
 getFilteredQuestionList ()
 

Private Member Functions

 initCompleteQuestionList (ilObjTestDynamicQuestionSetConfig $dynamicQuestionSetConfig, $answerStatusActiveId)
 
 initFilteredQuestionList (ilObjTestDynamicQuestionSetConfig $dynamicQuestionSetConfig, ilTestDynamicQuestionSetFilterSelection $filterSelection)
 
 initActualQuestionSequence (ilObjTestDynamicQuestionSetConfig $dynamicQuestionSetConfig, ilAssQuestionList $questionList)
 
 getQuestionSequenceStructuredByTaxonomy (ilAssQuestionList $questionList, $orderingTaxId)
 
 getQuestionSequenceStructuredByUpdateDate (ilAssQuestionList $questionList)
 

Private Attributes

 $db = null
 
 $lng = null
 
 $pluginAdmin = null
 
 $testOBJ = null
 
 $completeQuestionList = null
 
 $filteredQuestionList = null
 
 $actualQuestionSequence = array()
 

Detailed Description

Definition at line 15 of file class.ilTestDynamicQuestionSet.php.

Constructor & Destructor Documentation

◆ __construct()

ilTestDynamicQuestionSet::__construct ( ilDB  $db,
ilLanguage  $lng,
ilPluginAdmin  $pluginAdmin,
ilObjTest  $testOBJ 
)

Constructor.

Parameters
ilObjTest$testOBJ

Definition at line 57 of file class.ilTestDynamicQuestionSet.php.

References $db, $lng, $pluginAdmin, and $testOBJ.

Member Function Documentation

◆ getActualQuestionSequence()

ilTestDynamicQuestionSet::getActualQuestionSequence ( )

◆ getAllQuestionsData()

ilTestDynamicQuestionSet::getAllQuestionsData ( )

Definition at line 221 of file class.ilTestDynamicQuestionSet.php.

222 {
223 return $this->completeQuestionList->getQuestionDataArray();
224 }

◆ getCompleteQuestionList()

ilTestDynamicQuestionSet::getCompleteQuestionList ( )

◆ getFilteredQuestionList()

ilTestDynamicQuestionSet::getFilteredQuestionList ( )

◆ getQuestionData()

ilTestDynamicQuestionSet::getQuestionData (   $questionId)

Definition at line 215 of file class.ilTestDynamicQuestionSet.php.

216 {
217 $questionData = $this->completeQuestionList->getQuestionDataArray();
218 return $questionData[$questionId];
219 }

◆ getQuestionSequenceStructuredByTaxonomy()

ilTestDynamicQuestionSet::getQuestionSequenceStructuredByTaxonomy ( ilAssQuestionList  $questionList,
  $orderingTaxId 
)
private

Definition at line 151 of file class.ilTestDynamicQuestionSet.php.

152 {
153 $questionsByNode = array();
154 $nodelessQuestions = array();
155
156 foreach($questionList->getQuestionDataArray() as $qId => $qData)
157 {
158 if( isset($qData['taxonomies'][$orderingTaxId]) && count($qData['taxonomies'][$orderingTaxId]) )
159 {
160 foreach($qData['taxonomies'][$orderingTaxId] as $nodeId => $itemData)
161 {
162 $questionsByNode[ $itemData['node_lft'] ][ $itemData['order_nr'] ] = $qId;
163 break;
164 }
165 }
166 else
167 {
168 $nodelessQuestions[$qData['tstamp'].'::'.$qId] = $qId;
169 }
170 }
171
172 foreach($questionsByNode as $nodeLft => $questions)
173 {
174 ksort($questions, SORT_NUMERIC);
175 $questionsByNode[$nodeLft] = array_values($questions);
176 }
177
178 ksort($questionsByNode, SORT_NUMERIC);
179 $sequence = array_values($questionsByNode);
180
181 ksort($nodelessQuestions);
182 $sequence[] = array_values($nodelessQuestions);
183
184 return $sequence;
185 }

References ilAssQuestionList\getQuestionDataArray().

Referenced by initActualQuestionSequence().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getQuestionSequenceStructuredByUpdateDate()

ilTestDynamicQuestionSet::getQuestionSequenceStructuredByUpdateDate ( ilAssQuestionList  $questionList)
private

Definition at line 187 of file class.ilTestDynamicQuestionSet.php.

188 {
189 $sequence = array();
190
191 foreach($questionList->getQuestionDataArray() as $qId => $qData)
192 {
193 $sequence[ $qData['tstamp'].'::'.$qId ] = $qId;
194 }
195
196 ksort($sequence);
197 $sequence = array_values($sequence);
198
199 return array($sequence);
200 }

References ilAssQuestionList\getQuestionDataArray().

Referenced by initActualQuestionSequence().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initActualQuestionSequence()

ilTestDynamicQuestionSet::initActualQuestionSequence ( ilObjTestDynamicQuestionSetConfig  $dynamicQuestionSetConfig,
ilAssQuestionList  $questionList 
)
private

Definition at line 137 of file class.ilTestDynamicQuestionSet.php.

138 {
139 if( $dynamicQuestionSetConfig->getOrderingTaxonomyId() )
140 {
142 $questionList, $dynamicQuestionSetConfig->getOrderingTaxonomyId()
143 );
144 }
145
146 return $this->getQuestionSequenceStructuredByUpdateDate($questionList);
147 }
getQuestionSequenceStructuredByTaxonomy(ilAssQuestionList $questionList, $orderingTaxId)
getQuestionSequenceStructuredByUpdateDate(ilAssQuestionList $questionList)

References ilObjTestDynamicQuestionSetConfig\getOrderingTaxonomyId(), getQuestionSequenceStructuredByTaxonomy(), and getQuestionSequenceStructuredByUpdateDate().

Referenced by load().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initCompleteQuestionList()

ilTestDynamicQuestionSet::initCompleteQuestionList ( ilObjTestDynamicQuestionSetConfig  $dynamicQuestionSetConfig,
  $answerStatusActiveId 
)
private

Definition at line 84 of file class.ilTestDynamicQuestionSet.php.

85 {
86 $questionList = new ilAssQuestionList(
87 $this->db, $this->lng, $this->pluginAdmin, $dynamicQuestionSetConfig->getSourceQuestionPoolId()
88 );
89
90 $questionList->setAnswerStatusActiveId($answerStatusActiveId);
91
92 $questionList->load();
93
94 return $questionList;
95 }
getSourceQuestionPoolId()
getter for source question pool id

References ilObjTestDynamicQuestionSetConfig\getSourceQuestionPoolId().

Referenced by load().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initFilteredQuestionList()

ilTestDynamicQuestionSet::initFilteredQuestionList ( ilObjTestDynamicQuestionSetConfig  $dynamicQuestionSetConfig,
ilTestDynamicQuestionSetFilterSelection  $filterSelection 
)
private

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

98 {
99 $questionList = new ilAssQuestionList(
100 $this->db, $this->lng, $this->pluginAdmin, $dynamicQuestionSetConfig->getSourceQuestionPoolId()
101 );
102
103 $questionList->setAnswerStatusActiveId($filterSelection->getAnswerStatusActiveId());
104
105 if( $dynamicQuestionSetConfig->isAnswerStatusFilterEnabled() )
106 {
107 $questionList->setAnswerStatusFilter($filterSelection->getAnswerStatusSelection());
108 }
109
110 if( $dynamicQuestionSetConfig->isTaxonomyFilterEnabled() )
111 {
112 require_once 'Services/Taxonomy/classes/class.ilObjTaxonomy.php';
113
114 $questionList->setAvailableTaxonomyIds( ilObjTaxonomy::getUsageOfObject(
115 $dynamicQuestionSetConfig->getSourceQuestionPoolId()
116 ));
117
118 foreach($filterSelection->getTaxonomySelection() as $taxId => $taxNodes)
119 {
120 $questionList->addTaxonomyFilter($taxId, $taxNodes);
121 }
122 }
123 elseif( $dynamicQuestionSetConfig->getOrderingTaxonomyId() )
124 {
125 $questionList->setAvailableTaxonomyIds( array(
126 $dynamicQuestionSetConfig->getOrderingTaxonomyId()
127 ));
128 }
129
130 $questionList->setForcedQuestionIds($filterSelection->getForcedQuestionIds());
131
132 $questionList->load();
133
134 return $questionList;
135 }
static getUsageOfObject($a_obj_id, $a_include_titles=false)
Get usage of object.
isTaxonomyFilterEnabled()
isser for taxonomie filter enabled

References ilTestDynamicQuestionSetFilterSelection\getAnswerStatusActiveId(), ilTestDynamicQuestionSetFilterSelection\getAnswerStatusSelection(), ilTestDynamicQuestionSetFilterSelection\getForcedQuestionIds(), ilObjTestDynamicQuestionSetConfig\getOrderingTaxonomyId(), ilObjTestDynamicQuestionSetConfig\getSourceQuestionPoolId(), ilTestDynamicQuestionSetFilterSelection\getTaxonomySelection(), ilObjTaxonomy\getUsageOfObject(), ilObjTestDynamicQuestionSetConfig\isAnswerStatusFilterEnabled(), and ilObjTestDynamicQuestionSetConfig\isTaxonomyFilterEnabled().

Referenced by load().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ load()

ilTestDynamicQuestionSet::load ( ilObjTestDynamicQuestionSetConfig  $dynamicQuestionSetConfig,
ilTestDynamicQuestionSetFilterSelection  $filterSelection 
)

Definition at line 67 of file class.ilTestDynamicQuestionSet.php.

68 {
69 $this->completeQuestionList = $this->initCompleteQuestionList(
70 $dynamicQuestionSetConfig, $filterSelection->getAnswerStatusActiveId()
71 );
72
73 $this->filteredQuestionList = $this->initFilteredQuestionList(
74 $dynamicQuestionSetConfig, $filterSelection
75 );
76
77 $this->actualQuestionSequence = $this->initActualQuestionSequence(
78 $dynamicQuestionSetConfig, $this->filteredQuestionList
79 );
80 }
initFilteredQuestionList(ilObjTestDynamicQuestionSetConfig $dynamicQuestionSetConfig, ilTestDynamicQuestionSetFilterSelection $filterSelection)
initCompleteQuestionList(ilObjTestDynamicQuestionSetConfig $dynamicQuestionSetConfig, $answerStatusActiveId)
initActualQuestionSequence(ilObjTestDynamicQuestionSetConfig $dynamicQuestionSetConfig, ilAssQuestionList $questionList)

References ilTestDynamicQuestionSetFilterSelection\getAnswerStatusActiveId(), initActualQuestionSequence(), initCompleteQuestionList(), and initFilteredQuestionList().

+ Here is the call graph for this function:

◆ questionExists()

ilTestDynamicQuestionSet::questionExists (   $questionId)

Definition at line 209 of file class.ilTestDynamicQuestionSet.php.

210 {
211 $questionData = $this->completeQuestionList->getQuestionDataArray();
212 return isset($questionData[$questionId]);
213 }

Field Documentation

◆ $actualQuestionSequence

ilTestDynamicQuestionSet::$actualQuestionSequence = array()
private

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

Referenced by getActualQuestionSequence().

◆ $completeQuestionList

ilTestDynamicQuestionSet::$completeQuestionList = null
private

Definition at line 40 of file class.ilTestDynamicQuestionSet.php.

Referenced by getCompleteQuestionList().

◆ $db

ilTestDynamicQuestionSet::$db = null
private

Definition at line 20 of file class.ilTestDynamicQuestionSet.php.

Referenced by __construct().

◆ $filteredQuestionList

ilTestDynamicQuestionSet::$filteredQuestionList = null
private

Definition at line 45 of file class.ilTestDynamicQuestionSet.php.

Referenced by getFilteredQuestionList().

◆ $lng

ilTestDynamicQuestionSet::$lng = null
private

Definition at line 25 of file class.ilTestDynamicQuestionSet.php.

Referenced by __construct().

◆ $pluginAdmin

ilTestDynamicQuestionSet::$pluginAdmin = null
private

Definition at line 30 of file class.ilTestDynamicQuestionSet.php.

Referenced by __construct().

◆ $testOBJ

ilTestDynamicQuestionSet::$testOBJ = null
private

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

Referenced by __construct().


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