3 declare(strict_types=1);
47 SkillService\SkillProfileService $profile_service = null,
48 SkillService\SkillPersonalService $personal_service = null,
57 ?: $DIC->skills()->internalContainer()->repo()->getContainerSkillRepo();
59 ?: $DIC->skills()->internalContainer()->repo()->getContainerMemberSkillRepo();
60 $this->tree_service = (
$tree_service) ?: $DIC->skills()->tree();
63 $this->factory_service = (
$factory_service) ?: $DIC->skills()->internalContainer()->factory();
73 $this->cont_skill_repo->add($this->cont_obj_id, $skill_id, $tref_id);
78 $this->cont_skill_repo->remove($this->cont_obj_id, $skill_id, $tref_id);
86 $skills_as_array = [];
88 $skills_as_array[$skill->getBaseSkillId() .
"-" . $skill->getTrefId()] = [
89 "skill_id" => $skill->getBaseSkillId(),
90 "tref_id" => $skill->getTrefId()
94 $vtree = $this->tree_service->getGlobalVirtualSkillTree();
95 $skills_ordered = $vtree->getOrderedNodeset($skills_as_array,
"skill_id",
"tref_id");
97 $skills_obj_ordered = [];
98 foreach ($skills_ordered as $s) {
99 $skills_obj_ordered[] = $this->factory_service->containerSkill()->skill(
106 return $skills_obj_ordered;
114 return $this->cont_skill_repo->getAll($this->cont_obj_id);
124 $this->cont_member_skill_repo->add($this->cont_obj_id, $user_id, $skill_id, $tref_id, $level_id);
129 $this->cont_member_skill_repo->remove($this->cont_obj_id, $user_id, $skill_id, $tref_id);
138 (
string) $this->cont_obj_id
141 $this->cont_member_skill_repo->removeAll($this->cont_obj_id, $user_id);
150 (
string) $this->cont_obj_id
163 (string) $this->cont_obj_id
166 if ($l->getTrefId() > 0) {
167 $this->personal_service->addPersonalSkill($user_id, $l->getTrefId());
169 $this->personal_service->addPersonalSkill($user_id, $l->getBaseSkillId());
174 $this->profile_service->writeCompletionEntryForAllProfiles($user_id);
176 $this->cont_member_skill_repo->publish($this->cont_obj_id, $user_id);
183 return $this->cont_member_skill_repo->getPublished($this->cont_obj_id, $user_id);
196 $vtree = $this->tree_service->getGlobalVirtualSkillTree();
197 $skill_levels_ordered = $vtree->getOrderedNodeset($skill_levels,
"skill_id",
"tref_id");
199 $skill_levels_obj_ordered = [];
200 foreach ($skill_levels_ordered as $s) {
201 $skill_levels_obj_ordered[] = $this->factory_service->containerSkill()->memberSkill(
211 return $skill_levels_obj_ordered;
219 return $this->cont_member_skill_repo->getAll($this->cont_obj_id, $user_id);
224 return $this->cont_member_skill_repo->getLevel($this->cont_obj_id, $user_id, $skill_id, $tref_id);
241 $skills_as_array = [];
242 foreach ($skills as $s) {
243 $skills_as_array[] = [
244 "base_skill_id" => $s->getBaseSkillId(),
245 "tref_id" => $s->getTrefId(),
246 "title" => $s->getTitle(),
247 "profile_title" => ($s->getProfile()) ? $s->getProfile()->getTitle() : null
252 $vtree = $this->tree_service->getGlobalVirtualSkillTree();
253 $skills = $vtree->getOrderedNodeset($skills_as_array,
"base_skill_id",
"tref_id");
267 $s_skills[$s->getBaseSkillId() .
"-" . $s->getTrefId()] = $s;
272 $p_skills[$ps->getBaseSkillId() .
"-" . $ps->getTrefId()] = $ps;
275 $skills = array_merge($s_skills, $p_skills);
286 return $this->factory_service->containerSkill()->skill(
305 if ($this->skmg_settings->getLocalAssignmentOfProfiles()) {
306 foreach ($this->profile_service->getGlobalProfilesOfRole($cont_member_role_id) as $gp) {
307 $sklvs = $this->profile_service->getSkillLevels($gp->getId());
308 foreach ($sklvs as $s) {
309 $p_skills[] = $this->factory_service->containerSkill()->skill(
310 $s->getBaseSkillId(),
321 if ($this->skmg_settings->getAllowLocalProfiles()) {
322 foreach ($this->profile_service->getLocalProfilesOfRole($cont_member_role_id) as $lp) {
323 $sklvs = $this->profile_service->getSkillLevels($lp->getId());
324 foreach ($sklvs as $s) {
325 $p_skills[] = $this->factory_service->containerSkill()->skill(
326 $s->getBaseSkillId(),
removeSkillFromContainer(int $skill_id, int $tref_id)
getMemberSkillsForContainer(int $user_id)
removeAllMemberSkillsFromContainer(int $user_id)
ContainerMemberSkillDBRepository $cont_member_skill_repo
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addSkillForContainer(int $skill_id, int $tref_id)
static _lookupTitle(int $a_obj_id, int $a_tref_id=0)
static removeAllUserSkillLevelStatusOfObject(int $a_user_id, int $a_trigger_obj_id, bool $a_self_eval=false, string $a_unique_identifier="")
static getDefaultMemberRole(int $a_ref_id)
ContainerSkillDBRepository $cont_skill_repo
removeMemberSkillFromContainer(int $user_id, int $skill_id, int $tref_id)
ilSkillManagementSettings $skmg_settings
addMemberSkillForContainer(int $user_id, int $skill_id, int $tref_id, int $level_id)
getSkillsForPresentationGUI()
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="")
SkillService SkillProfileService $profile_service
getMemberSkillLevel(int $user_id, int $skill_id, int $tref_id)
publishMemberSkills(int $user_id)
SkillInternalFactoryService $factory_service
SkillService SkillTreeService $tree_service
getSkillsForContainerOrdered()
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples
__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)
getPublished(int $user_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getMemberSkillLevelsForContainerOrdered(int $user_id)
SkillService SkillPersonalService $personal_service