ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
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)

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

References $db.

Member Function Documentation

◆ addAssignment()

ilTestSkillQuestionAssignmentList::addAssignment ( ilTestSkillQuestionAssignment  $assignment)
private

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

References ilTestSkillQuestionAssignment\getQuestionId().

Referenced by loadFromDb().

68  {
69  if( !isset($this->assignments[$assignment->getQuestionId()]) )
70  {
71  $this->assignments[$assignment->getQuestionId()] = array();
72  }
73 
74  $this->assignments[$assignment->getQuestionId()][] = $assignment;
75  }
+ 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.

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

141  {
142  return $skillBaseId.':'.$skillTrefId;
143  }
+ 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.

References $data.

Referenced by loadFromDb().

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

References buildSkillKey().

Referenced by getUniqueAssignedSkills().

222  {
223  return $this->maxPointsBySkill[$this->buildSkillKey($skillBaseId, $skillTrefId)];
224  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getNumAssignsBySkill()

ilTestSkillQuestionAssignmentList::getNumAssignsBySkill (   $skillBaseId,
  $skillTrefId 
)

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

References buildSkillKey().

Referenced by getUniqueAssignedSkills().

217  {
218  return $this->numAssignsBySkill[$this->buildSkillKey($skillBaseId, $skillTrefId)];
219  }
+ Here is the call graph for this function:
+ Here is the caller 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.

References buildSkillKey(), getMaxPointsBySkill(), and getNumAssignsBySkill().

Referenced by isAssignedSkill().

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  }
Basic Skill.
+ 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.

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

Referenced by loadFromDb().

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

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

Referenced by loadFromDb().

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

References getUniqueAssignedSkills().

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

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

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  }
addAssignment(ilTestSkillQuestionAssignment $assignment)
incrementNumAssignsBySkill(ilTestSkillQuestionAssignment $assignment)
incrementMaxPointsBySkill(ilTestSkillQuestionAssignment $assignment)
+ Here is the call graph for this function:

◆ reset()

ilTestSkillQuestionAssignmentList::reset ( )

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

Referenced by loadFromDb().

61  {
62  $this->assignments = array();
63  $this->numAssignsBySkill = array();
64  $this->maxPointsBySkill = array();
65  }
+ Here is the caller graph for this function:

◆ setTestId()

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

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

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: