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

Public Member Functions

 __construct (ilDB $db)
 
 setTestId ($testId)
 
 getTestId ()
 
 reset ()
 
 loadFromDb ()
 
 loadAdditionalSkillData ()
 
 getAssignmentsByQuestionId ($questionId)
 
 getUniqueAssignedSkills ()
 
 isAssignedSkill ($skillBaseId, $skillTrefId)
 
 getNumAssignsBySkill ($skillBaseId, $skillTrefId)
 
 getMaxPointsBySkill ($skillBaseId, $skillTrefId)
 

Private Member Functions

 addAssignment (ilTestSkillQuestionAssignment $assignment)
 
 incrementNumAssignsBySkill (ilTestSkillQuestionAssignment $assignment)
 
 incrementMaxPointsBySkill (ilTestSkillQuestionAssignment $assignment)
 
 buildSkillQuestionAssignmentByArray ($data)
 
 buildSkillKey ($skillBaseId, $skillTrefId)
 

Private Attributes

 $db
 
 $testId
 
 $assignments
 
 $numAssignsBySkill
 
 $maxPointsBySkill
 

Detailed Description

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

Constructor & Destructor Documentation

◆ __construct()

ilTestSkillQuestionAssignmentList::__construct ( ilDB  $db)

Member Function Documentation

◆ addAssignment()

ilTestSkillQuestionAssignmentList::addAssignment ( ilTestSkillQuestionAssignment  $assignment)
private

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

68 {
69 if( !isset($this->assignments[$assignment->getQuestionId()]) )
70 {
71 $this->assignments[$assignment->getQuestionId()] = array();
72 }
73
74 $this->assignments[$assignment->getQuestionId()][] = $assignment;
75 }

References ilTestSkillQuestionAssignment\getQuestionId().

Referenced by loadFromDb().

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

◆ buildSkillKey()

ilTestSkillQuestionAssignmentList::buildSkillKey (   $skillBaseId,
  $skillTrefId 
)
private

Definition at line 140 of file class.ilTestSkillQuestionAssignmentList.php.

141 {
142 return $skillBaseId.':'.$skillTrefId;
143 }

Referenced by getMaxPointsBySkill(), getNumAssignsBySkill(), getUniqueAssignedSkills(), incrementMaxPointsBySkill(), and incrementNumAssignsBySkill().

+ Here is the caller graph for this function:

◆ buildSkillQuestionAssignmentByArray()

ilTestSkillQuestionAssignmentList::buildSkillQuestionAssignmentByArray (   $data)
private
Parameters
array$data
Returns
ilTestSkillQuestionAssignment

Definition at line 127 of file class.ilTestSkillQuestionAssignmentList.php.

128 {
129 $assignment = new ilTestSkillQuestionAssignment($this->db);
130
131 $assignment->setTestId($data['test_fi']);
132 $assignment->setQuestionId($data['question_fi']);
133 $assignment->setSkillBaseId($data['skill_base_fi']);
134 $assignment->setSkillTrefId($data['skill_tref_fi']);
135 $assignment->setSkillPoints($data['skill_points']);
136
137 return $assignment;
138 }

References $data.

Referenced by loadFromDb().

+ Here is the caller graph for this function:

◆ getAssignmentsByQuestionId()

ilTestSkillQuestionAssignmentList::getAssignmentsByQuestionId (   $questionId)

Definition at line 156 of file class.ilTestSkillQuestionAssignmentList.php.

157 {
158 if( !isset($this->assignments[$questionId]) )
159 {
160 return array();
161 }
162
163 return $this->assignments[$questionId];
164 }

◆ getMaxPointsBySkill()

ilTestSkillQuestionAssignmentList::getMaxPointsBySkill (   $skillBaseId,
  $skillTrefId 
)

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

222 {
223 return $this->maxPointsBySkill[$this->buildSkillKey($skillBaseId, $skillTrefId)];
224 }

References buildSkillKey().

+ Here is the call graph for this function:

◆ getNumAssignsBySkill()

ilTestSkillQuestionAssignmentList::getNumAssignsBySkill (   $skillBaseId,
  $skillTrefId 
)

Definition at line 216 of file class.ilTestSkillQuestionAssignmentList.php.

217 {
218 return $this->numAssignsBySkill[$this->buildSkillKey($skillBaseId, $skillTrefId)];
219 }

References buildSkillKey().

+ Here is the call graph for this function:

◆ getTestId()

ilTestSkillQuestionAssignmentList::getTestId ( )
Returns
int

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

References $testId.

Referenced by loadFromDb().

+ Here is the caller graph for this function:

◆ getUniqueAssignedSkills()

ilTestSkillQuestionAssignmentList::getUniqueAssignedSkills ( )

Definition at line 166 of file class.ilTestSkillQuestionAssignmentList.php.

167 {
168 require_once 'Services/Skill/classes/class.ilBasicSkill.php';
169
170 $skills = array();
171
172 foreach($this->assignments as $assignmentsByQuestion)
173 {
174 foreach($assignmentsByQuestion as $assignment)
175 {
176 $key = $this->buildSkillKey($assignment->getSkillBaseId(), $assignment->getSkillTrefId());
177
178 if( !isset($skills[$key]) )
179 {
180 $skills[$key] = array(
181 'skill' => new ilBasicSkill($assignment->getSkillBaseId()),
182 'skill_base_id' => $assignment->getSkillBaseId(),
183 'skill_tref_id' => $assignment->getSkillTrefId(),
184 'num_assigns' => $this->getNumAssignsBySkill(
185 $assignment->getSkillBaseId(), $assignment->getSkillTrefId()
186 ),
187 'max_points' => $this->getMaxPointsBySkill(
188 $assignment->getSkillBaseId(), $assignment->getSkillTrefId()
189 )
190 );
191 }
192 }
193 }
194
195 return $skills;
196 }

References buildSkillKey().

Referenced by isAssignedSkill().

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

◆ incrementMaxPointsBySkill()

ilTestSkillQuestionAssignmentList::incrementMaxPointsBySkill ( ilTestSkillQuestionAssignment  $assignment)
private

Definition at line 89 of file class.ilTestSkillQuestionAssignmentList.php.

90 {
91 $key = $this->buildSkillKey($assignment->getSkillBaseId(), $assignment->getSkillTrefId());
92
93 if( !isset($this->maxPointsBySkill[$key]) )
94 {
95 $this->maxPointsBySkill[$key] = 0;
96 }
97
98 $this->maxPointsBySkill[$key] += $assignment->getSkillPoints();
99 }

References buildSkillKey(), ilTestSkillQuestionAssignment\getSkillBaseId(), ilTestSkillQuestionAssignment\getSkillPoints(), and ilTestSkillQuestionAssignment\getSkillTrefId().

Referenced by loadFromDb().

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

◆ incrementNumAssignsBySkill()

ilTestSkillQuestionAssignmentList::incrementNumAssignsBySkill ( ilTestSkillQuestionAssignment  $assignment)
private

Definition at line 77 of file class.ilTestSkillQuestionAssignmentList.php.

78 {
79 $key = $this->buildSkillKey($assignment->getSkillBaseId(), $assignment->getSkillTrefId());
80
81 if( !isset($this->numAssignsBySkill[$key]) )
82 {
83 $this->numAssignsBySkill[$key] = 0;
84 }
85
86 $this->numAssignsBySkill[$key]++;
87 }

References buildSkillKey(), ilTestSkillQuestionAssignment\getSkillBaseId(), and ilTestSkillQuestionAssignment\getSkillTrefId().

Referenced by loadFromDb().

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

◆ isAssignedSkill()

ilTestSkillQuestionAssignmentList::isAssignedSkill (   $skillBaseId,
  $skillTrefId 
)

Definition at line 198 of file class.ilTestSkillQuestionAssignmentList.php.

199 {
200 foreach($this->getUniqueAssignedSkills() as $assignedSkill)
201 {
202 if( $assignedSkill['skill_base_id'] != $skillBaseId )
203 {
204 continue;
205 }
206
207 if( $assignedSkill['skill_tref_id'] == $skillTrefId )
208 {
209 return true;
210 }
211 }
212
213 return false;
214 }

References getUniqueAssignedSkills().

+ Here is the call graph for this function:

◆ loadAdditionalSkillData()

ilTestSkillQuestionAssignmentList::loadAdditionalSkillData ( )

Definition at line 145 of file class.ilTestSkillQuestionAssignmentList.php.

146 {
147 foreach($this->assignments as $assignmentsByQuestion)
148 {
149 foreach($assignmentsByQuestion as $assignment)
150 {
151 $assignment->loadAdditionalSkillData();
152 }
153 }
154 }

◆ loadFromDb()

ilTestSkillQuestionAssignmentList::loadFromDb ( )

Definition at line 101 of file class.ilTestSkillQuestionAssignmentList.php.

102 {
103 $this->reset();
104
105 $query = "
106 SELECT test_fi, question_fi, skill_base_fi, skill_tref_fi, skill_points
107 FROM tst_skl_qst_assigns
108 WHERE test_fi = %s
109 ";
110
111 $res = $this->db->queryF( $query, array('integer'), array($this->getTestId()) );
112
113 while( $row = $this->db->fetchAssoc($res) )
114 {
115 $assignment = $this->buildSkillQuestionAssignmentByArray($row);
116
117 $this->addAssignment($assignment);
118 $this->incrementNumAssignsBySkill($assignment);
119 $this->incrementMaxPointsBySkill($assignment);
120 }
121 }
incrementMaxPointsBySkill(ilTestSkillQuestionAssignment $assignment)
incrementNumAssignsBySkill(ilTestSkillQuestionAssignment $assignment)
addAssignment(ilTestSkillQuestionAssignment $assignment)

References $query, $res, $row, addAssignment(), buildSkillQuestionAssignmentByArray(), getTestId(), incrementMaxPointsBySkill(), incrementNumAssignsBySkill(), and reset().

+ Here is the call graph for this function:

◆ reset()

ilTestSkillQuestionAssignmentList::reset ( )

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

61 {
62 $this->assignments = array();
63 $this->numAssignsBySkill = array();
64 $this->maxPointsBySkill = array();
65 }

Referenced by loadFromDb().

+ Here is the caller graph for this function:

◆ setTestId()

ilTestSkillQuestionAssignmentList::setTestId (   $testId)
Parameters
int$testId

Definition at line 47 of file class.ilTestSkillQuestionAssignmentList.php.

48 {
49 $this->testId = $testId;
50 }

References $testId.

Field Documentation

◆ $assignments

ilTestSkillQuestionAssignmentList::$assignments
private

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

◆ $db

ilTestSkillQuestionAssignmentList::$db
private

Definition at line 17 of file class.ilTestSkillQuestionAssignmentList.php.

Referenced by __construct().

◆ $maxPointsBySkill

ilTestSkillQuestionAssignmentList::$maxPointsBySkill
private

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

◆ $numAssignsBySkill

ilTestSkillQuestionAssignmentList::$numAssignsBySkill
private

Definition at line 32 of file class.ilTestSkillQuestionAssignmentList.php.

◆ $testId

ilTestSkillQuestionAssignmentList::$testId
private

Definition at line 22 of file class.ilTestSkillQuestionAssignmentList.php.

Referenced by getTestId(), and setTestId().


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