ILIAS  trunk Revision v11.0_alpha-1831-g8615d53dadb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\Skill\Resource\SkillResourcesManager Class Reference

Manages resources for skills. More...

+ Inheritance diagram for ILIAS\Skill\Resource\SkillResourcesManager:
+ Collaboration diagram for ILIAS\Skill\Resource\SkillResourcesManager:

Public Member Functions

 __construct (?SkillResourceDBRepository $skill_res_repo=null, ?\ilSkillLevelRepository $level_repo=null)
 
 getResources (int $skill_id, int $tref_id)
 
 getResourcesOfLevel (int $skill_id, int $tref_id, int $level_id)
 
 setResource (int $skill_id, int $tref_id, int $level_id, int $rep_ref_id, bool $imparting, bool $trigger)
 
 setResourceAsSuggested (int $skill_id, int $tref_id, int $level_id, int $rep_ref_id)
 
 setResourceAsNotSuggested (int $skill_id, int $tref_id, int $level_id, int $rep_ref_id)
 
 setResourceAsTrigger (int $skill_id, int $tref_id, int $level_id, int $rep_ref_id)
 
 setResourceAsNoTrigger (int $skill_id, int $tref_id, int $level_id, int $rep_ref_id)
 
 removeResource (int $skill_id, int $tref_id, int $level_id, int $rep_ref_id)
 
 removeResourcesForSkill (int $skill_node_id, bool $is_reference=false)
 
 isLevelTooLow (int $tref_id, array $skill_levels, array $profile_levels, array $actual_levels)
 
 determineCurrentTargetLevel (array $skill_levels, array $profile_levels)
 
 getSuggestedResources (int $skill_id, int $tref_id, array $skill_levels, array $profile_levels)
 
 getTriggerLevelsForRefId (int $rep_ref_id)
 

Static Public Member Functions

static getUsageInfo (array $a_cskill_ids)
 Get title of an assigned item.
Parameters
array{skill_idint, tref_id: int}[] $a_cskill_ids array of common skill ids
Returns
array<string, array<string, array{key: string}[]>>
More...
 

Protected Attributes

SkillResourceDBRepository $skill_res_repo
 
ilSkillLevelRepository $level_repo
 

Detailed Description

Manages resources for skills.

This is not about user assigned materials, it is about resources that are assigned to skill levels in the competence management administration of ILIAS.

This can be either triggers (e.g. a course that triggers a competence level) or resources that impart the knowledge of a competence level. Imparting does not necessarily mean that it triggers a competence level.

Author
Thomas Famula famul.nosp@m.a@le.nosp@m.ifos..nosp@m.de

Definition at line 36 of file class.SkillResourcesManager.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Skill\Resource\SkillResourcesManager::__construct ( ?SkillResourceDBRepository  $skill_res_repo = null,
?\ilSkillLevelRepository  $level_repo = null 
)

Definition at line 41 of file class.SkillResourcesManager.php.

References $DIC, ILIAS\Skill\Resource\SkillResourcesManager\$level_repo, and ILIAS\Skill\Resource\SkillResourcesManager\$skill_res_repo.

44  {
45  global $DIC;
46 
47  $this->skill_res_repo = ($skill_res_repo)
48  ?: $DIC->skills()->internal()->repo()->getResourceRepo();
49  $this->level_repo = ($level_repo)
50  ?: $DIC->skills()->internal()->repo()->getLevelRepo();
51  }
global $DIC
Definition: shib_login.php:22

Member Function Documentation

◆ determineCurrentTargetLevel()

ILIAS\Skill\Resource\SkillResourcesManager::determineCurrentTargetLevel ( array  $skill_levels,
array  $profile_levels 
)
Parameters

Definition at line 169 of file class.SkillResourcesManager.php.

References ILIAS\Repository\int().

Referenced by ILIAS\Skill\Resource\SkillResourcesManager\getSuggestedResources().

169  : int
170  {
171  $target_level = 0;
172  foreach ($skill_levels as $l) {
173  $l["id"] = (int) $l["id"];
174  $l["skill_id"] = (int) $l["skill_id"];
175  foreach ($profile_levels as $pl) {
176  if ($pl->getLevelId() === $l["id"] &&
177  $pl->getBaseSkillId() === $l["skill_id"]) {
178  $target_level = $l["id"];
179  }
180  }
181  }
182 
183  return $target_level;
184  }
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getResources()

ILIAS\Skill\Resource\SkillResourcesManager::getResources ( int  $skill_id,
int  $tref_id 
)
Returns
array<int, SkillResource[]>

Definition at line 56 of file class.SkillResourcesManager.php.

Referenced by ILIAS\Skill\Resource\SkillResourcesManager\getSuggestedResources().

56  : array
57  {
58  return $this->skill_res_repo->getAll($skill_id, $tref_id);
59  }
+ Here is the caller graph for this function:

◆ getResourcesOfLevel()

ILIAS\Skill\Resource\SkillResourcesManager::getResourcesOfLevel ( int  $skill_id,
int  $tref_id,
int  $level_id 
)
Returns
SkillResource[]

Definition at line 64 of file class.SkillResourcesManager.php.

64  : array
65  {
66  $all_resources = $this->skill_res_repo->getAll($skill_id, $tref_id);
67  $resources_of_level = [];
68  foreach ($all_resources as $lid => $level) {
69  foreach ($level as $resource) {
70  if ($lid == $level_id) {
71  $resources_of_level[] = $resource;
72  }
73  }
74  }
75 
76  return $resources_of_level;
77  }

◆ getSuggestedResources()

ILIAS\Skill\Resource\SkillResourcesManager::getSuggestedResources ( int  $skill_id,
int  $tref_id,
array  $skill_levels,
array  $profile_levels 
)
Parameters

Definition at line 190 of file class.SkillResourcesManager.php.

References $r, $resources, ILIAS\Skill\Resource\SkillResourcesManager\determineCurrentTargetLevel(), and ILIAS\Skill\Resource\SkillResourcesManager\getResources().

190  : array
191  {
192  $target_level = $this->determineCurrentTargetLevel($skill_levels, $profile_levels);
193  $target_level_order_nr = $this->level_repo->lookupLevelNumber($target_level);
194  $resources = $this->getResources($skill_id, $tref_id);
195  $imp_resources = [];
196  foreach ($resources as $level) {
197  foreach ($level as $r) {
198  $res_level_order_nr = $this->level_repo->lookupLevelNumber($r->getLevelId());
199  if ($r->getImparting() &&
200  $target_level_order_nr >= $res_level_order_nr) {
201  $imp_resources[$res_level_order_nr . "_" . $r->getLevelId()][] = $r;
202  }
203  }
204  }
205 
206  ksort($imp_resources);
207  return $imp_resources;
208  }
determineCurrentTargetLevel(array $skill_levels, array $profile_levels)
$resources
Definition: ltiservices.php:65
$r
+ Here is the call graph for this function:

◆ getTriggerLevelsForRefId()

ILIAS\Skill\Resource\SkillResourcesManager::getTriggerLevelsForRefId ( int  $rep_ref_id)
Returns
SkillResourceLevel[]

Definition at line 213 of file class.SkillResourcesManager.php.

213  : array
214  {
215  return $this->skill_res_repo->getTriggerLevelsForRefId($rep_ref_id);
216  }

◆ getUsageInfo()

static ILIAS\Skill\Resource\SkillResourcesManager::getUsageInfo ( array  $a_cskill_ids)
static

Get title of an assigned item.

Parameters
array{skill_idint, tref_id: int}[] $a_cskill_ids array of common skill ids
Returns
array<string, array<string, array{key: string}[]>>

Implements ILIAS\Skill\Usage\SkillUsageInfo.

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

References $DIC, and ILIAS\Skill\Usage\SkillUsageManager\RESOURCE.

221  : array
222  {
223  global $DIC;
224 
225  $usage_manager = $DIC->skills()->internal()->manager()->getUsageManager();
226 
227  return $usage_manager->getUsageInfoGeneric(
228  $a_cskill_ids,
230  "skl_skill_resource",
231  "rep_ref_id",
232  "base_skill_id"
233  );
234  }
global $DIC
Definition: shib_login.php:22

◆ isLevelTooLow()

ILIAS\Skill\Resource\SkillResourcesManager::isLevelTooLow ( int  $tref_id,
array  $skill_levels,
array  $profile_levels,
array  $actual_levels 
)

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

References ILIAS\Repository\int().

145  : bool
146  {
147  $too_low = true;
148 
149  foreach ($skill_levels as $v) {
150  $v["id"] = (int) $v["id"];
151  $v["skill_id"] = (int) $v["skill_id"];
152  foreach ($profile_levels as $pl) {
153  if ($pl->getLevelId() === $v["id"] &&
154  $pl->getBaseSkillId() === $v["skill_id"]) {
155  $too_low = true;
156  }
157  }
158 
159  if ($actual_levels[$v["skill_id"]][$tref_id] == $v["id"]) {
160  $too_low = false;
161  }
162  }
163  return $too_low;
164  }
+ Here is the call graph for this function:

◆ removeResource()

ILIAS\Skill\Resource\SkillResourcesManager::removeResource ( int  $skill_id,
int  $tref_id,
int  $level_id,
int  $rep_ref_id 
)

Definition at line 131 of file class.SkillResourcesManager.php.

136  : void {
137  $this->skill_res_repo->remove($skill_id, $tref_id, $level_id, $rep_ref_id);
138  }

◆ removeResourcesForSkill()

ILIAS\Skill\Resource\SkillResourcesManager::removeResourcesForSkill ( int  $skill_node_id,
bool  $is_reference = false 
)

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

140  : void
141  {
142  $this->skill_res_repo->removeForSkill($skill_node_id, $is_reference);
143  }

◆ setResource()

ILIAS\Skill\Resource\SkillResourcesManager::setResource ( int  $skill_id,
int  $tref_id,
int  $level_id,
int  $rep_ref_id,
bool  $imparting,
bool  $trigger 
)

Definition at line 79 of file class.SkillResourcesManager.php.

86  : void {
87  $this->skill_res_repo->addOrUpdate($skill_id, $tref_id, $level_id, $rep_ref_id, $imparting, $trigger);
88  }

◆ setResourceAsNoTrigger()

ILIAS\Skill\Resource\SkillResourcesManager::setResourceAsNoTrigger ( int  $skill_id,
int  $tref_id,
int  $level_id,
int  $rep_ref_id 
)

Definition at line 122 of file class.SkillResourcesManager.php.

127  : void {
128  $this->skill_res_repo->updateTrigger($skill_id, $tref_id, $level_id, $rep_ref_id, false);
129  }

◆ setResourceAsNotSuggested()

ILIAS\Skill\Resource\SkillResourcesManager::setResourceAsNotSuggested ( int  $skill_id,
int  $tref_id,
int  $level_id,
int  $rep_ref_id 
)

Definition at line 99 of file class.SkillResourcesManager.php.

104  : void {
105  $this->skill_res_repo->updateImparting($skill_id, $tref_id, $level_id, $rep_ref_id, false);
106  }

◆ setResourceAsSuggested()

ILIAS\Skill\Resource\SkillResourcesManager::setResourceAsSuggested ( int  $skill_id,
int  $tref_id,
int  $level_id,
int  $rep_ref_id 
)

Definition at line 90 of file class.SkillResourcesManager.php.

95  : void {
96  $this->skill_res_repo->updateImparting($skill_id, $tref_id, $level_id, $rep_ref_id, true);
97  }

◆ setResourceAsTrigger()

ILIAS\Skill\Resource\SkillResourcesManager::setResourceAsTrigger ( int  $skill_id,
int  $tref_id,
int  $level_id,
int  $rep_ref_id 
)

Definition at line 108 of file class.SkillResourcesManager.php.

References ilObject\_lookupObjId(), ilObject\_lookupType(), and ilObjectLP\isSupportedObjectType().

113  : void {
114  $obj_id = \ilObject::_lookupObjId($rep_ref_id);
115  $obj_type = \ilObject::_lookupType($obj_id);
116  if (!\ilObjectLP::isSupportedObjectType($obj_type)) {
117  return;
118  }
119  $this->skill_res_repo->updateTrigger($skill_id, $tref_id, $level_id, $rep_ref_id, true);
120  }
static isSupportedObjectType(string $type)
static _lookupObjId(int $ref_id)
static _lookupType(int $id, bool $reference=false)
+ Here is the call graph for this function:

Field Documentation

◆ $level_repo

ilSkillLevelRepository ILIAS\Skill\Resource\SkillResourcesManager::$level_repo
protected

◆ $skill_res_repo

SkillResourceDBRepository ILIAS\Skill\Resource\SkillResourcesManager::$skill_res_repo
protected

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