ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Container\Skills\ContainerSkillManager Class Reference
+ Collaboration diagram for ILIAS\Container\Skills\ContainerSkillManager:

Public Member Functions

 __construct (int $cont_obj_id, int $cont_ref_id, ?ContainerSkillDBRepository $cont_skill_repo=null, ?ContainerMemberSkillDBRepository $cont_member_skill_repo=null, ?SkillService\SkillTreeService $tree_service=null, ?SkillService\SkillProfileService $profile_service=null, ?SkillService\SkillPersonalService $personal_service=null, ?SkillInternalFactoryService $factory_service=null, ?\ilSkillManagementSettings $skmg_settings=null)
 
 addSkillForContainer (int $skill_id, int $tref_id)
 
 removeSkillFromContainer (int $skill_id, int $tref_id)
 
 getSkillsForContainerOrdered ()
 
 getSkillsForContainer ()
 
 addMemberSkillForContainer (int $user_id, int $skill_id, int $tref_id, int $level_id)
 
 removeMemberSkillFromContainer (int $user_id, int $skill_id, int $tref_id)
 
 removeAllMemberSkillsFromContainer (int $user_id)
 
 publishMemberSkills (int $user_id)
 
 getPublished (int $user_id)
 
 getMemberSkillLevelsForContainerOrdered (int $user_id)
 
 getMemberSkillsForContainer (int $user_id)
 
 getMemberSkillLevel (int $user_id, int $skill_id, int $tref_id)
 
 getSkillsForTableGUI ()
 
 getSkillsForPresentationGUI ()
 

Protected Member Functions

 getSingleSkills ()
 
 getProfileSkills ()
 

Protected Attributes

int $cont_obj_id
 
int $cont_ref_id
 
ContainerSkillDBRepository $cont_skill_repo
 
ContainerMemberSkillDBRepository $cont_member_skill_repo
 
SkillService SkillTreeService $tree_service
 
SkillService SkillProfileService $profile_service
 
SkillService SkillPersonalService $personal_service
 
SkillInternalFactoryService $factory_service
 
ilSkillManagementSettings $skmg_settings
 

Detailed Description

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

Definition at line 28 of file class.ContainerSkillManager.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Container\Skills\ContainerSkillManager::__construct ( int  $cont_obj_id,
int  $cont_ref_id,
?ContainerSkillDBRepository  $cont_skill_repo = null,
?ContainerMemberSkillDBRepository  $cont_member_skill_repo = null,
?SkillService\SkillTreeService  $tree_service = null,
?SkillService\SkillProfileService  $profile_service = null,
?SkillService\SkillPersonalService  $personal_service = null,
?SkillInternalFactoryService  $factory_service = null,
?\ilSkillManagementSettings  $skmg_settings = null 
)

Definition at line 40 of file class.ContainerSkillManager.php.

50 {
51 global $DIC;
52
53 $this->cont_obj_id = $cont_obj_id;
54 $this->cont_ref_id = $cont_ref_id;
55 $this->cont_skill_repo = ($cont_skill_repo)
56 ?: $DIC->skills()->internalContainer()->repo()->getContainerSkillRepo();
57 $this->cont_member_skill_repo = ($cont_member_skill_repo)
58 ?: $DIC->skills()->internalContainer()->repo()->getContainerMemberSkillRepo();
59 $this->tree_service = ($tree_service) ?: $DIC->skills()->tree();
60 $this->profile_service = ($profile_service) ?: $DIC->skills()->profile();
61 $this->personal_service = ($personal_service) ?: $DIC->skills()->personal();
62 $this->factory_service = ($factory_service) ?: $DIC->skills()->internalContainer()->factory();
63 $this->skmg_settings = ($skmg_settings) ?: new \ilSkillManagementSettings();
64 }
ContainerMemberSkillDBRepository $cont_member_skill_repo
global $DIC
Definition: shib_login.php:26

References ILIAS\Container\Skills\ContainerSkillManager\$cont_member_skill_repo, ILIAS\Container\Skills\ContainerSkillManager\$cont_obj_id, ILIAS\Container\Skills\ContainerSkillManager\$cont_ref_id, ILIAS\Container\Skills\ContainerSkillManager\$cont_skill_repo, $DIC, ILIAS\Container\Skills\ContainerSkillManager\$factory_service, ILIAS\Container\Skills\ContainerSkillManager\$personal_service, ILIAS\Container\Skills\ContainerSkillManager\$profile_service, ILIAS\Container\Skills\ContainerSkillManager\$skmg_settings, and ILIAS\Container\Skills\ContainerSkillManager\$tree_service.

Member Function Documentation

◆ addMemberSkillForContainer()

ILIAS\Container\Skills\ContainerSkillManager::addMemberSkillForContainer ( int  $user_id,
int  $skill_id,
int  $tref_id,
int  $level_id 
)

Definition at line 121 of file class.ContainerSkillManager.php.

121 : void
122 {
123 $this->cont_member_skill_repo->add($this->cont_obj_id, $user_id, $skill_id, $tref_id, $level_id);
124 }

References $user_id.

◆ addSkillForContainer()

ILIAS\Container\Skills\ContainerSkillManager::addSkillForContainer ( int  $skill_id,
int  $tref_id 
)

Definition at line 70 of file class.ContainerSkillManager.php.

70 : void
71 {
72 $this->cont_skill_repo->add($this->cont_obj_id, $skill_id, $tref_id);
73 }

◆ getMemberSkillLevel()

ILIAS\Container\Skills\ContainerSkillManager::getMemberSkillLevel ( int  $user_id,
int  $skill_id,
int  $tref_id 
)

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

221 : ?int
222 {
223 return $this->cont_member_skill_repo->getLevel($this->cont_obj_id, $user_id, $skill_id, $tref_id);
224 }

References $user_id.

◆ getMemberSkillLevelsForContainerOrdered()

ILIAS\Container\Skills\ContainerSkillManager::getMemberSkillLevelsForContainerOrdered ( int  $user_id)
Returns
ContainerMemberSkill[]

Definition at line 188 of file class.ContainerSkillManager.php.

188 : array
189 {
190 $skill_levels = array_map(static function (ContainerMemberSkill $a): array {
191 return ["level_id" => $a->getLevelId(), "skill_id" => $a->getBaseSkillId(), "tref_id" => $a->getTrefId(),
192 "published" => $a->getPublished()];
194
195 $vtree = $this->tree_service->getGlobalVirtualSkillTree();
196 $skill_levels_ordered = $vtree->getOrderedNodeset($skill_levels, "skill_id", "tref_id");
197
198 $skill_levels_obj_ordered = [];
199 foreach ($skill_levels_ordered as $s) {
200 $skill_levels_obj_ordered[] = $this->factory_service->containerSkill()->memberSkill(
201 $this->cont_obj_id,
202 $user_id,
203 $s["skill_id"],
204 $s["tref_id"],
205 $s["level_id"],
206 $s["published"]
207 );
208 }
209
210 return $skill_levels_obj_ordered;
211 }
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples

References Vendor\Package\$a, $user_id, and ILIAS\Container\Skills\ContainerSkillManager\getMemberSkillsForContainer().

+ Here is the call graph for this function:

◆ getMemberSkillsForContainer()

ILIAS\Container\Skills\ContainerSkillManager::getMemberSkillsForContainer ( int  $user_id)
Returns
ContainerMemberSkill[]

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

216 : array
217 {
218 return $this->cont_member_skill_repo->getAll($this->cont_obj_id, $user_id);
219 }

References $user_id.

Referenced by ILIAS\Container\Skills\ContainerSkillManager\getMemberSkillLevelsForContainerOrdered(), and ILIAS\Container\Skills\ContainerSkillManager\publishMemberSkills().

+ Here is the caller graph for this function:

◆ getProfileSkills()

ILIAS\Container\Skills\ContainerSkillManager::getProfileSkills ( )
protected
Returns
ContainerSkill[]

Definition at line 299 of file class.ContainerSkillManager.php.

299 : array
300 {
301 $cont_member_role_id = \ilParticipants::getDefaultMemberRole($this->cont_ref_id);
302 $p_skills = [];
303 // Global skills
304 if ($this->skmg_settings->getLocalAssignmentOfProfiles()) {
305 foreach ($this->profile_service->getGlobalProfilesOfRole($cont_member_role_id) as $gp) {
306 $sklvs = $this->profile_service->getSkillLevels($gp->getId());
307 foreach ($sklvs as $s) {
308 $p_skills[] = $this->factory_service->containerSkill()->skill(
309 $s->getBaseSkillId(),
310 $s->getTrefId(),
311 $this->cont_obj_id,
312 \ilBasicSkill::_lookupTitle($s->getBaseSkillId(), $s->getTrefId()),
313 $gp
314 );
315 }
316 }
317 }
318
319 // Local skills
320 if ($this->skmg_settings->getAllowLocalProfiles()) {
321 foreach ($this->profile_service->getLocalProfilesOfRole($cont_member_role_id) as $lp) {
322 $sklvs = $this->profile_service->getSkillLevels($lp->getId());
323 foreach ($sklvs as $s) {
324 $p_skills[] = $this->factory_service->containerSkill()->skill(
325 $s->getBaseSkillId(),
326 $s->getTrefId(),
327 $this->cont_obj_id,
328 \ilBasicSkill::_lookupTitle($s->getBaseSkillId(), $s->getTrefId()),
329 $lp
330 );
331 }
332 }
333 }
334
335 return $p_skills;
336 }
static getDefaultMemberRole(int $a_ref_id)
static _lookupTitle(int $a_obj_id, int $a_tref_id=0)

References ilSkillTreeNode\_lookupTitle(), and ilParticipants\getDefaultMemberRole().

Referenced by ILIAS\Container\Skills\ContainerSkillManager\getSkillsForPresentationGUI(), and ILIAS\Container\Skills\ContainerSkillManager\getSkillsForTableGUI().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getPublished()

ILIAS\Container\Skills\ContainerSkillManager::getPublished ( int  $user_id)

Definition at line 180 of file class.ContainerSkillManager.php.

180 : bool
181 {
182 return $this->cont_member_skill_repo->getPublished($this->cont_obj_id, $user_id);
183 }

References $user_id.

◆ getSingleSkills()

ILIAS\Container\Skills\ContainerSkillManager::getSingleSkills ( )
protected
Returns
ContainerSkill[]

Definition at line 282 of file class.ContainerSkillManager.php.

282 : array
283 {
284 $s_skills = array_map(function (ContainerSkill $v): ContainerSkill {
285 return $this->factory_service->containerSkill()->skill(
286 $v->getBaseSkillId(),
287 $v->getTrefId(),
288 $this->cont_obj_id,
289 \ilBasicSkill::_lookupTitle($v->getBaseSkillId(), $v->getTrefId())
290 );
291 }, $this->getSkillsForContainer());
292
293 return $s_skills;
294 }

References ilSkillTreeNode\_lookupTitle(), ILIAS\Container\Skills\ContainerSkill\getBaseSkillId(), ILIAS\Container\Skills\ContainerSkillManager\getSkillsForContainer(), and ILIAS\Container\Skills\ContainerSkill\getTrefId().

Referenced by ILIAS\Container\Skills\ContainerSkillManager\getSkillsForPresentationGUI(), and ILIAS\Container\Skills\ContainerSkillManager\getSkillsForTableGUI().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSkillsForContainer()

ILIAS\Container\Skills\ContainerSkillManager::getSkillsForContainer ( )
Returns
ContainerSkill[]

Definition at line 111 of file class.ContainerSkillManager.php.

111 : array
112 {
113 return $this->cont_skill_repo->getAll($this->cont_obj_id);
114 }

Referenced by ILIAS\Container\Skills\ContainerSkillManager\getSingleSkills(), and ILIAS\Container\Skills\ContainerSkillManager\getSkillsForContainerOrdered().

+ Here is the caller graph for this function:

◆ getSkillsForContainerOrdered()

ILIAS\Container\Skills\ContainerSkillManager::getSkillsForContainerOrdered ( )
Returns
ContainerSkill[]

Definition at line 83 of file class.ContainerSkillManager.php.

83 : array
84 {
85 $skills_as_array = [];
86 foreach ($this->getSkillsForContainer() as $skill) {
87 $skills_as_array[$skill->getBaseSkillId() . "-" . $skill->getTrefId()] = [
88 "skill_id" => $skill->getBaseSkillId(),
89 "tref_id" => $skill->getTrefId()
90 ];
91 }
92
93 $vtree = $this->tree_service->getGlobalVirtualSkillTree();
94 $skills_ordered = $vtree->getOrderedNodeset($skills_as_array, "skill_id", "tref_id");
95
96 $skills_obj_ordered = [];
97 foreach ($skills_ordered as $s) {
98 $skills_obj_ordered[] = $this->factory_service->containerSkill()->skill(
99 $s["skill_id"],
100 $s["tref_id"],
101 $this->cont_obj_id
102 );
103 }
104
105 return $skills_obj_ordered;
106 }

References ILIAS\Container\Skills\ContainerSkillManager\getSkillsForContainer().

+ Here is the call graph for this function:

◆ getSkillsForPresentationGUI()

ILIAS\Container\Skills\ContainerSkillManager::getSkillsForPresentationGUI ( )
Returns
ContainerSkill[]

Definition at line 260 of file class.ContainerSkillManager.php.

260 : array
261 {
262 // Get single and profile skills and DO remove multiple occurrences when merging
263
264 $s_skills = [];
265 foreach ($this->getSingleSkills() as $s) {
266 $s_skills[$s->getBaseSkillId() . "-" . $s->getTrefId()] = $s;
267 }
268
269 $p_skills = [];
270 foreach ($this->getProfileSkills() as $ps) {
271 $p_skills[$ps->getBaseSkillId() . "-" . $ps->getTrefId()] = $ps;
272 }
273
274 $skills = array_merge($s_skills, $p_skills);
275
276 return $skills;
277 }

References ILIAS\Container\Skills\ContainerSkillManager\getProfileSkills(), and ILIAS\Container\Skills\ContainerSkillManager\getSingleSkills().

+ Here is the call graph for this function:

◆ getSkillsForTableGUI()

ILIAS\Container\Skills\ContainerSkillManager::getSkillsForTableGUI ( )
Returns
ContainerSkill[]

Definition at line 234 of file class.ContainerSkillManager.php.

234 : array
235 {
236 // Get single and profile skills and DO NOT remove multiple occurrences when merging
237
238 $skills = array_merge($this->getSingleSkills(), $this->getProfileSkills());
239
240 $skills_as_array = [];
241 foreach ($skills as $s) {
242 $skills_as_array[] = [
243 "base_skill_id" => $s->getBaseSkillId(),
244 "tref_id" => $s->getTrefId(),
245 "title" => $s->getTitle(),
246 "profile_title" => ($s->getProfile()) ? $s->getProfile()->getTitle() : null
247 ];
248 }
249
250 // order skills per virtual skill tree
251 $vtree = $this->tree_service->getGlobalVirtualSkillTree();
252 $skills = $vtree->getOrderedNodeset($skills_as_array, "base_skill_id", "tref_id");
253
254 return $skills;
255 }

References ILIAS\Container\Skills\ContainerSkillManager\getProfileSkills(), and ILIAS\Container\Skills\ContainerSkillManager\getSingleSkills().

+ Here is the call graph for this function:

◆ publishMemberSkills()

ILIAS\Container\Skills\ContainerSkillManager::publishMemberSkills ( int  $user_id)

Definition at line 143 of file class.ContainerSkillManager.php.

143 : bool
144 {
146 $user_id,
147 $this->cont_obj_id,
148 false,
149 (string) $this->cont_obj_id
150 );
151
152 foreach ($this->getMemberSkillsForContainer($user_id) as $l) {
153 $changed = true;
155 $l->getLevelId(),
156 $user_id,
157 $this->cont_ref_id,
158 $l->getTrefId(),
160 false,
161 false,
162 (string) $this->cont_obj_id
163 );
164
165 if ($l->getTrefId() > 0) {
166 $this->personal_service->addPersonalSkill($user_id, $l->getTrefId());
167 } else {
168 $this->personal_service->addPersonalSkill($user_id, $l->getBaseSkillId());
169 }
170 }
171
172 //write profile completion entries if fulfilment status has changed
173 $this->profile_service->writeCompletionEntryForAllProfiles($user_id);
174
175 $this->cont_member_skill_repo->publish($this->cont_obj_id, $user_id);
176
177 return $changed;
178 }
static removeAllUserSkillLevelStatusOfObject(int $a_user_id, int $a_trigger_obj_id, bool $a_self_eval=false, string $a_unique_identifier="")
static writeUserSkillLevelStatus(int $a_level_id, int $a_user_id, int $a_trigger_ref_id, int $a_tref_id=0, int $a_status=ilBasicSkill::ACHIEVED, bool $a_force=false, bool $a_self_eval=false, string $a_unique_identifier="", float $a_next_level_fulfilment=0.0, string $trigger_user_id="")

References $user_id, ilBasicSkill\ACHIEVED, ILIAS\Container\Skills\ContainerSkillManager\getMemberSkillsForContainer(), ilBasicSkill\removeAllUserSkillLevelStatusOfObject(), and ilBasicSkill\writeUserSkillLevelStatus().

+ Here is the call graph for this function:

◆ removeAllMemberSkillsFromContainer()

ILIAS\Container\Skills\ContainerSkillManager::removeAllMemberSkillsFromContainer ( int  $user_id)

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

131 : void
132 {
134 $user_id,
135 $this->cont_obj_id,
136 false,
137 (string) $this->cont_obj_id
138 );
139
140 $this->cont_member_skill_repo->removeAll($this->cont_obj_id, $user_id);
141 }

References $user_id, and ilBasicSkill\removeAllUserSkillLevelStatusOfObject().

+ Here is the call graph for this function:

◆ removeMemberSkillFromContainer()

ILIAS\Container\Skills\ContainerSkillManager::removeMemberSkillFromContainer ( int  $user_id,
int  $skill_id,
int  $tref_id 
)

Definition at line 126 of file class.ContainerSkillManager.php.

126 : void
127 {
128 $this->cont_member_skill_repo->remove($this->cont_obj_id, $user_id, $skill_id, $tref_id);
129 }

References $user_id.

◆ removeSkillFromContainer()

ILIAS\Container\Skills\ContainerSkillManager::removeSkillFromContainer ( int  $skill_id,
int  $tref_id 
)

Definition at line 75 of file class.ContainerSkillManager.php.

75 : void
76 {
77 $this->cont_skill_repo->remove($this->cont_obj_id, $skill_id, $tref_id);
78 }

Field Documentation

◆ $cont_member_skill_repo

ContainerMemberSkillDBRepository ILIAS\Container\Skills\ContainerSkillManager::$cont_member_skill_repo
protected

◆ $cont_obj_id

int ILIAS\Container\Skills\ContainerSkillManager::$cont_obj_id
protected

◆ $cont_ref_id

int ILIAS\Container\Skills\ContainerSkillManager::$cont_ref_id
protected

◆ $cont_skill_repo

ContainerSkillDBRepository ILIAS\Container\Skills\ContainerSkillManager::$cont_skill_repo
protected

◆ $factory_service

SkillInternalFactoryService ILIAS\Container\Skills\ContainerSkillManager::$factory_service
protected

◆ $personal_service

SkillService SkillPersonalService ILIAS\Container\Skills\ContainerSkillManager::$personal_service
protected

◆ $profile_service

SkillService SkillProfileService ILIAS\Container\Skills\ContainerSkillManager::$profile_service
protected

◆ $skmg_settings

ilSkillManagementSettings ILIAS\Container\Skills\ContainerSkillManager::$skmg_settings
protected

◆ $tree_service

SkillService SkillTreeService ILIAS\Container\Skills\ContainerSkillManager::$tree_service
protected

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