ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
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 37 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 42 of file class.SkillResourcesManager.php.

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

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

Member Function Documentation

◆ determineCurrentTargetLevel()

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

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

References ILIAS\Repository\int().

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

170  : int
171  {
172  $target_level = 0;
173  foreach ($skill_levels as $l) {
174  $l["id"] = (int) $l["id"];
175  $l["skill_id"] = (int) $l["skill_id"];
176  foreach ($profile_levels as $pl) {
177  if ($pl->getLevelId() === $l["id"] &&
178  $pl->getBaseSkillId() === $l["skill_id"]) {
179  $target_level = $l["id"];
180  }
181  }
182  }
183 
184  return $target_level;
185  }
+ 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 57 of file class.SkillResourcesManager.php.

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

57  : array
58  {
59  return $this->skill_res_repo->getAll($skill_id, $tref_id);
60  }
+ 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 65 of file class.SkillResourcesManager.php.

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

◆ getSuggestedResources()

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

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

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

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

◆ getTriggerLevelsForRefId()

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

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

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

◆ 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 222 of file class.SkillResourcesManager.php.

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

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

◆ isLevelTooLow()

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

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

References ILIAS\Repository\int().

146  : bool
147  {
148  $too_low = true;
149 
150  foreach ($skill_levels as $v) {
151  $v["id"] = (int) $v["id"];
152  $v["skill_id"] = (int) $v["skill_id"];
153  foreach ($profile_levels as $pl) {
154  if ($pl->getLevelId() === $v["id"] &&
155  $pl->getBaseSkillId() === $v["skill_id"]) {
156  $too_low = true;
157  }
158  }
159 
160  if ($actual_levels[$v["skill_id"]][$tref_id] == $v["id"]) {
161  $too_low = false;
162  }
163  }
164  return $too_low;
165  }
+ 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 132 of file class.SkillResourcesManager.php.

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

◆ removeResourcesForSkill()

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

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

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

◆ 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 80 of file class.SkillResourcesManager.php.

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

◆ setResourceAsNoTrigger()

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

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

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

◆ setResourceAsNotSuggested()

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

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

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

◆ setResourceAsSuggested()

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

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

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

◆ setResourceAsTrigger()

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

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

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

114  : void {
115  $obj_id = \ilObject::_lookupObjId($rep_ref_id);
116  $obj_type = \ilObject::_lookupType($obj_id);
117  if (!\ilObjectLP::isSupportedObjectType($obj_type)) {
118  return;
119  }
120  $this->skill_res_repo->updateTrigger($skill_id, $tref_id, $level_id, $rep_ref_id, true);
121  }
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: