19 declare(strict_types=1);
56 ?: $DIC->skills()->internalContainer()->repo()->getContainerSkillRepo();
58 ?: $DIC->skills()->internalContainer()->repo()->getContainerMemberSkillRepo();
59 $this->tree_service = (
$tree_service) ?: $DIC->skills()->tree();
62 $this->factory_service = (
$factory_service) ?: $DIC->skills()->internalContainer()->factory();
72 $this->cont_skill_repo->add($this->cont_obj_id, $skill_id, $tref_id);
77 $this->cont_skill_repo->remove($this->cont_obj_id, $skill_id, $tref_id);
85 $skills_as_array = [];
87 $skills_as_array[$skill->getBaseSkillId() .
"-" . $skill->getTrefId()] = [
88 "skill_id" => $skill->getBaseSkillId(),
89 "tref_id" => $skill->getTrefId()
93 $vtree = $this->tree_service->getGlobalVirtualSkillTree();
94 $skills_ordered = $vtree->getOrderedNodeset($skills_as_array,
"skill_id",
"tref_id");
96 $skills_obj_ordered = [];
97 foreach ($skills_ordered as $s) {
98 $skills_obj_ordered[] = $this->factory_service->containerSkill()->skill(
105 return $skills_obj_ordered;
113 return $this->cont_skill_repo->getAll($this->cont_obj_id);
123 $this->cont_member_skill_repo->add($this->cont_obj_id, $user_id, $skill_id, $tref_id, $level_id);
128 $this->cont_member_skill_repo->remove($this->cont_obj_id, $user_id, $skill_id, $tref_id);
137 (
string) $this->cont_obj_id
140 $this->cont_member_skill_repo->removeAll($this->cont_obj_id, $user_id);
149 (
string) $this->cont_obj_id
162 (string) $this->cont_obj_id
165 if ($l->getTrefId() > 0) {
166 $this->personal_service->addPersonalSkill($user_id, $l->getTrefId());
168 $this->personal_service->addPersonalSkill($user_id, $l->getBaseSkillId());
173 $this->profile_service->writeCompletionEntryForAllProfiles($user_id);
175 $this->cont_member_skill_repo->publish($this->cont_obj_id, $user_id);
182 return $this->cont_member_skill_repo->getPublished($this->cont_obj_id, $user_id);
195 $vtree = $this->tree_service->getGlobalVirtualSkillTree();
196 $skill_levels_ordered = $vtree->getOrderedNodeset($skill_levels,
"skill_id",
"tref_id");
198 $skill_levels_obj_ordered = [];
199 foreach ($skill_levels_ordered as $s) {
200 $skill_levels_obj_ordered[] = $this->factory_service->containerSkill()->memberSkill(
210 return $skill_levels_obj_ordered;
218 return $this->cont_member_skill_repo->getAll($this->cont_obj_id, $user_id);
223 return $this->cont_member_skill_repo->getLevel($this->cont_obj_id, $user_id, $skill_id, $tref_id);
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 251 $vtree = $this->tree_service->getGlobalVirtualSkillTree();
252 $skills = $vtree->getOrderedNodeset($skills_as_array,
"base_skill_id",
"tref_id");
266 $s_skills[$s->getBaseSkillId() .
"-" . $s->getTrefId()] = $s;
271 $p_skills[$ps->getBaseSkillId() .
"-" . $ps->getTrefId()] = $ps;
274 $skills = array_merge($s_skills, $p_skills);
285 return $this->factory_service->containerSkill()->skill(
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(),
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(),
removeSkillFromContainer(int $skill_id, int $tref_id)
getMemberSkillsForContainer(int $user_id)
removeAllMemberSkillsFromContainer(int $user_id)
ContainerMemberSkillDBRepository $cont_member_skill_repo
Skill management settings.
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
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
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
__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)
getSkillsForContainerOrdered()
$a
thx to https://mlocati.github.io/php-cs-fixer-configurator for the examples
getPublished(int $user_id)
getMemberSkillLevelsForContainerOrdered(int $user_id)
SkillService SkillPersonalService $personal_service