61         $this->parentObjId = null;
    62         $this->assignments = array();
    63         $this->numAssignsBySkill = array();
    64         $this->maxPointsBySkill = array();
    65         $this->questionIdFilter = null;
   102         $this->assignments = array();
   103         $this->numAssignsBySkill = array();
   104         $this->maxPointsBySkill = array();
   109         if (!isset($this->assignments[$assignment->
getQuestionId()])) {
   113         $this->assignments[$assignment->
getQuestionId()][] = $assignment;
   120         if (!isset($this->numAssignsBySkill[
$key])) {
   121             $this->numAssignsBySkill[
$key] = 0;
   124         $this->numAssignsBySkill[
$key]++;
   131         if (!isset($this->maxPointsBySkill[
$key])) {
   132             $this->maxPointsBySkill[
$key] = 0;
   142         $res = $this->db->query(
"   143                         SELECT obj_fi, question_fi, skill_base_fi, skill_tref_fi, skill_points, eval_mode   144                         FROM qpl_qst_skl_assigns   145                         WHERE {$this->getWhereConditions()}   148         while ($row = $this->db->fetchAssoc(
$res)) {
   151             if ($assignment->hasEvalModeBySolution()) {
   152                 $assignment->loadComparisonExpressions(); 
   164             'obj_fi = ' . $this->db->quote($this->getParentObjId(), 
'integer')
   168             $conditions[] = 
'question_fi = ' . $this->db->quote($this->
getQuestionIdFilter(), 
'integer');
   171         return implode(
' AND ', $conditions);
   182         $assignment->setParentObjId(
$data[
'obj_fi']);
   183         $assignment->setQuestionId(
$data[
'question_fi']);
   184         $assignment->setSkillBaseId(
$data[
'skill_base_fi']);
   185         $assignment->setSkillTrefId(
$data[
'skill_tref_fi']);
   186         $assignment->setSkillPoints(
$data[
'skill_points']);
   187         $assignment->setEvalMode(
$data[
'eval_mode']);
   194         return $skillBaseId . 
':' . $skillTrefId;
   199         foreach ($this->assignments as $assignmentsByQuestion) {
   200             foreach ($assignmentsByQuestion as $assignment) {
   201                 $assignment->loadAdditionalSkillData();
   212         if (!isset($this->assignments[$questionId])) {
   216         return $this->assignments[$questionId];
   221         if (!isset($this->assignments[$questionId])) {
   225         foreach ($this->assignments[$questionId] as $assignment) {
   226             if ($assignment->getSkillBaseId() != $skillBaseId) {
   230             if ($assignment->getSkillTrefId() != $skillTrefId) {
   244         foreach ($this->assignments as $assignmentsByQuestion) {
   245             foreach ($assignmentsByQuestion as $assignment) {
   248                 $key = $this->
buildSkillKey($assignment->getSkillBaseId(), $assignment->getSkillTrefId());
   250                 if (!isset($skills[
$key])) {
   251                     $skills[
$key] = array(
   252                         'skill' => 
new ilBasicSkill($assignment->getSkillBaseId()),
   253                         'skill_base_id' => $assignment->getSkillBaseId(),
   254                         'skill_tref_id' => $assignment->getSkillTrefId(),
   255                         'skill_title' => $assignment->getSkillTitle(),
   256                         'skill_path' => $assignment->getSkillPath(),
   258                             $assignment->getSkillBaseId(),
   259                             $assignment->getSkillTrefId()
   262                             $assignment->getSkillBaseId(),
   263                             $assignment->getSkillTrefId()
   276             if ($assignedSkill[
'skill_base_id'] != $skillBaseId) {
   280             if ($assignedSkill[
'skill_tref_id'] == $skillTrefId) {
   290         return $this->numAssignsBySkill[$this->
buildSkillKey($skillBaseId, $skillTrefId)] ?? null;
   295         return $this->maxPointsBySkill[$this->
buildSkillKey($skillBaseId, $skillTrefId)] ?? null;
   303             if ($skillData[
'num_assigns'] < $globalBarrier) {
 
incrementMaxPointsBySkill(ilAssQuestionSkillAssignment $assignment)
 
__construct(ilDBInterface $db)
 
getNumAssignsBySkill($skillBaseId, $skillTrefId)
 
loadAdditionalSkillData()
 
hasSkillsAssignedLowerThanBarrier()
 
getAssignmentsByQuestionId($questionId)
 
buildSkillKey($skillBaseId, $skillTrefId)
 
setQuestionIdFilter($questionIdFilter)
 
setParentObjId($parentObjId)
 
getMaxPointsBySkill($skillBaseId, $skillTrefId)
 
addAssignment(ilAssQuestionSkillAssignment $assignment)
 
buildSkillQuestionAssignmentByArray($data)
 
isAssignedSkill($skillBaseId, $skillTrefId)
 
getUniqueAssignedSkills()
 
static getSkillTriggerAnswerNumberBarrier()
 
isAssignedToQuestionId($skillBaseId, $skillTrefId, $questionId)
 
incrementNumAssignsBySkill(ilAssQuestionSkillAssignment $assignment)