3 declare(strict_types=1);
59 protected array
$classes = [\ilBasicSkill::class, AssignedMaterialManager::class, SkillProfileManager::class,
60 SkillResourcesManager::class, SkillUsageManager::class];
66 protected \ilLanguage
$lng;
76 $this->usage_repo = (
$usage_repo) ?: $DIC->skills()->internal()->repo()->getUsageRepo();
77 $this->tree_factory = (
$tree_factory) ?: $DIC->skills()->internal()->factory()->tree();
78 $this->tree_repo = (
$tree_repo) ?: $DIC->skills()->internal()->repo()->getTreeRepo();
79 $this->profile_manager = (
$profile_manager) ?: $DIC->skills()->internal()->manager()->getProfileManager();
80 $this->
lng = $DIC->language();
83 public function addUsage(
int $obj_id,
int $skill_id,
int $tref_id): void
85 $this->usage_repo->add($obj_id, $skill_id, $tref_id);
88 public function removeUsage(
int $obj_id,
int $skill_id,
int $tref_id): void
90 $this->usage_repo->remove($obj_id, $skill_id, $tref_id);
95 $this->usage_repo->removeFromObject($obj_id);
100 $this->usage_repo->removeForSkill($node_id, $is_referenece);
106 public function getUsages(
int $skill_id,
int $tref_id): array
108 $obj_ids = $this->usage_repo->getUsages($skill_id, $tref_id);
119 return $class->getUsageInfoGeneric(
138 string $skill_field =
"skill_id",
139 string $tref_field =
"tref_id" 141 if (count($cskill_ids) === 0) {
145 $usages = $this->usage_repo->getUsageInfoGeneric(
166 foreach ($classes as $class) {
167 $usages = array_merge_recursive($usages, $class::getUsageInfo($cskill_ids));
181 foreach ($tree_ids as $t) {
182 $vtree = $this->tree_factory->getGlobalVirtualTree();
183 $nodes = $vtree->getSubTreeForTreeId((
string) $t);
184 foreach ($nodes as $n) {
198 $vtree = $this->tree_repo->getVirtualTreeForNodeId($skill_id);
199 $nodes = $vtree->getSubTreeForCSkillId($skill_id .
":" . $tref_id);
212 foreach ($cskill_ids as $s) {
213 $vtree = $this->tree_repo->getVirtualTreeForNodeId($s[
"skill_id"]);
214 $nodes = $vtree->getSubTreeForCSkillId($s[
"skill_id"] .
":" . $s[
"tref_id"]);
215 foreach ($nodes as $n) {
229 $skill_logger->debug(
"SkillUsageManager: getAllUsagesOfTemplate(" . $template_id .
")");
236 foreach ($trefs as $tref) {
237 $cskill_ids[] = array(
"skill_id" => $template_id,
"tref_id" => $tref);
238 $skill_logger->debug(
"SkillUsageManager: ... skill_id: " . $template_id .
", tref_id: " . $tref .
".");
241 $skill_logger->debug(
"SkillUsageManager: ... count cskill_ids: " . count($cskill_ids) .
".");
248 return $this->
lng->txt(
"skmg_usage_type_info_" . $type);
254 case self::TYPE_GENERAL:
256 return $this->
lng->txt(
"skmg_usage_obj_objects");
258 case self::USER_ASSIGNED:
259 case self::PERSONAL_SKILL:
260 case self::USER_MATERIAL:
261 case self::SELF_EVAL:
262 return $this->
lng->txt(
"skmg_usage_obj_users");
265 return $this->
lng->txt(
"skmg_usage_obj_profiles");
268 return $this->
lng->txt(
"skmg_usage_type_info_" . $type);
278 $objects = $this->
getUsages($skill_id, $tref_id);
289 $obj_usages = array_column($usages,
"gen");
291 return array_column(current(array_reverse($obj_usages)) ?: [],
"key");
299 $skills = $this->profile_manager->getSkillLevels($profile_id);
303 foreach ($skills as $skill) {
304 $obj_usages = $this->
getUsages($skill->getBaseSkillId(), $skill->getTrefId());
305 foreach ($obj_usages as
$id) {
313 $roles = $this->profile_manager->getRoleAssignments($profile_id);
314 foreach ($roles as $role) {
315 if (($role->getObjType() ==
"crs" || $role->getObjType() ==
"grp")
316 && !in_array($role->getObjId(), $objects)) {
318 $obj_ref_id = end($obj_ref_id);
320 $objects[] = $role->getObjId();
getAssignedObjectsForSkillTemplate(int $template_id)
static getLogger(string $a_component_id)
Get component logger.
SkillUsageDBRepository $usage_repo
addUsage(int $obj_id, int $skill_id, int $tref_id)
getAllUsagesOfTemplate(int $template_id)
ilSkillTreeRepository $tree_repo
SkillTreeFactory $tree_factory
static _getAllReferences(int $id)
get all reference ids for object ID
static _hasUntrashedReference(int $obj_id)
checks whether an object has at least one reference that is not in trash
static getDefaultMemberRole(int $a_ref_id)
SkillProfileManager $profile_manager
getUsages(int $skill_id, int $tref_id)
static _lookupTrefIdsForTemplateId(int $a_tid)
getUsageInfoGeneric(array $cskill_ids, string $usage_type, string $table, string $key_field, string $skill_field="skill_id", string $tref_field="tref_id")
Get standard usage query.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
removeUsagesForSkill(int $node_id, bool $is_referenece=false)
getAllUsagesInfoOfSubtrees(array $cskill_ids)
getAssignedObjectsForSkillProfile(int $profile_id)
getAssignedObjectsForSkill(int $skill_id, int $tref_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getAllUsagesInfo(array $cskill_ids)
getAllUsagesInfoOfTrees(array $tree_ids)
__construct(SkillUsageDBRepository $usage_repo=null, SkillTreeFactory $tree_factory=null, \ilSkillTreeRepository $tree_repo=null, SkillProfileManager $profile_manager=null)
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
static getUsageInfo(array $a_cskill_ids)
Get title of an assigned item.int, tref_id: int}[] $a_cskill_ids array of common skill idsarray<strin...
getAllUsagesInfoOfSubtree(int $skill_id, int $tref_id=0)
removeUsagesFromObject(int $obj_id)
removeUsage(int $obj_id, int $skill_id, int $tref_id)
Get info on usages of skills.
getTypeInfoString(string $type)
getObjTypeString(string $type)