ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
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...
 
static getUsageInfo (array $a_cskill_ids)
 Get title of an assigned item. 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.

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:26

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

Member Function Documentation

◆ determineCurrentTargetLevel()

ILIAS\Skill\Resource\SkillResourcesManager::determineCurrentTargetLevel ( array  $skill_levels,
array  $profile_levels 
)
Parameters
\ILIAS\Skill\Profile\SkillProfileLevel[]$profile_levels

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

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 }

References ILIAS\Repository\int().

+ Here is the call 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.

56 : array
57 {
58 return $this->skill_res_repo->getAll($skill_id, $tref_id);
59 }

◆ 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
\ILIAS\Skill\Profile\SkillProfileLevel[]$profile_levels
Returns
SkillResource[]

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

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:68

References $resources.

◆ 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.

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 }

References $DIC.

◆ 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.

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 }

References ILIAS\Repository\int().

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

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 _lookupType(int $id, bool $reference=false)
static _lookupObjId(int $ref_id)

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: