ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Skill\Node\SkillDeletionManager Class Reference

Skill deletion manager. More...

+ Collaboration diagram for ILIAS\Skill\Node\SkillDeletionManager:

Public Member Functions

 __construct (?SkillTreeManager $tree_manager=null, ?PersonalSkillManager $personal_manager=null, ?AssignedMaterialManager $material_manager=null, ?SkillProfileManager $profile_manager=null, ?SkillProfileCompletionManager $profile_completion_manager=null, ?SkillResourcesManager $resources_manager=null, ?SkillUsageManager $usage_manager=null, ?\ilSkillTreeRepository $tree_repo=null, ?\ilSkillLevelRepository $level_repo=null, ?\ilSkillUserLevelRepository $user_level_repo=null, ?\ilAppEventHandler $event_handler=null,)
 
 deleteTree (int $node_id)
 
 deleteNode (int $node_id, ?\ilSkillTree $tree=null)
 
 updateProfileCompletions (\ilSkillTree $tree)
 

Protected Member Functions

 deleteSkillRoot (int $skrt_id, \ilSkillTree $tree)
 
 deleteSkill (int $skll_id)
 
 deleteSkillCategory (int $scat_id, \ilSkillTree $tree)
 
 deleteSkillTemplateReference (int $sktr_id)
 
 deleteSkillTemplate (int $sktp_id)
 
 deleteSkillCategoryTemplate (int $sctp_id, \ilSkillTree $tree)
 

Protected Attributes

SkillTreeManager $tree_manager
 
PersonalSkillManager $personal_manager
 
AssignedMaterialManager $material_manager
 
SkillProfileManager $profile_manager
 
SkillProfileCompletionManager $profile_completion_manager
 
SkillResourcesManager $resources_manager
 
SkillUsageManager $usage_manager
 
ilSkillTreeRepository $tree_repo
 
ilSkillLevelRepository $level_repo
 
ilSkillUserLevelRepository $user_level_repo
 
ilAppEventHandler $event_handler
 

Detailed Description

Skill deletion manager.

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

Definition at line 35 of file class.SkillDeletionManager.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Skill\Node\SkillDeletionManager::__construct ( ?SkillTreeManager  $tree_manager = null,
?PersonalSkillManager  $personal_manager = null,
?AssignedMaterialManager  $material_manager = null,
?SkillProfileManager  $profile_manager = null,
?SkillProfileCompletionManager  $profile_completion_manager = null,
?SkillResourcesManager  $resources_manager = null,
?SkillUsageManager  $usage_manager = null,
?\ilSkillTreeRepository  $tree_repo = null,
?\ilSkillLevelRepository  $level_repo = null,
?\ilSkillUserLevelRepository  $user_level_repo = null,
?\ilAppEventHandler  $event_handler = null 
)

Definition at line 49 of file class.SkillDeletionManager.php.

61 {
62 global $DIC;
63
64 $this->tree_manager = ($tree_manager) ?: $DIC->skills()->internal()->manager()->getTreeManager();
65 $this->personal_manager = ($personal_manager) ?: $DIC->skills()->internal()->manager()->getPersonalSkillManager();
66 $this->material_manager = ($material_manager) ?: $DIC->skills()->internal()->manager()->getAssignedMaterialManager();
67 $this->profile_manager = ($profile_manager) ?: $DIC->skills()->internal()->manager()->getProfileManager();
68 $this->profile_completion_manager = ($profile_completion_manager) ?: $DIC->skills()->internal()->manager()->getProfileCompletionManager();
69 $this->resources_manager = ($resources_manager) ?: $DIC->skills()->internal()->manager()->getResourceManager();
70 $this->usage_manager = ($usage_manager) ?: $DIC->skills()->internal()->manager()->getUsageManager();
71 $this->tree_repo = ($tree_repo) ?: $DIC->skills()->internal()->repo()->getTreeRepo();
72 $this->level_repo = ($level_repo) ?: $DIC->skills()->internal()->repo()->getLevelRepo();
73 $this->user_level_repo = ($user_level_repo) ?: $DIC->skills()->internal()->repo()->getUserLevelRepo();
74 $this->event_handler = ($event_handler) ?: $DIC->event();
75 }
SkillProfileCompletionManager $profile_completion_manager
global $DIC
Definition: shib_login.php:26

References $DIC, ILIAS\Skill\Node\SkillDeletionManager\$event_handler, ILIAS\Skill\Node\SkillDeletionManager\$level_repo, ILIAS\Skill\Node\SkillDeletionManager\$material_manager, ILIAS\Skill\Node\SkillDeletionManager\$personal_manager, ILIAS\Skill\Node\SkillDeletionManager\$profile_completion_manager, ILIAS\Skill\Node\SkillDeletionManager\$profile_manager, ILIAS\Skill\Node\SkillDeletionManager\$resources_manager, ILIAS\Skill\Node\SkillDeletionManager\$tree_manager, ILIAS\Skill\Node\SkillDeletionManager\$tree_repo, ILIAS\Skill\Node\SkillDeletionManager\$usage_manager, and ILIAS\Skill\Node\SkillDeletionManager\$user_level_repo.

Member Function Documentation

◆ deleteNode()

ILIAS\Skill\Node\SkillDeletionManager::deleteNode ( int  $node_id,
?\ilSkillTree  $tree = null 
)

Definition at line 95 of file class.SkillDeletionManager.php.

95 : void
96 {
97 if ($node_id != \ilTree::POS_FIRST_NODE || $node_id !== 0) {
98 if (!$tree) {
99 $tree = $this->tree_repo->getTreeForNodeId($node_id);
100 }
102 $node_data = $tree->getNodeData($node_id);
103 if (is_object($obj)) {
104 $obj_type = $obj->getType();
105 switch ($obj_type) {
106 case "skrt":
107 $this->deleteSkillRoot($obj->getId(), $tree);
108 break;
109 case "skll":
110 $this->deleteSkill($obj->getId());
111 break;
112 case "scat":
113 $this->deleteSkillCategory($obj->getId(), $tree);
114 break;
115 case "sktr":
116 $this->deleteSkillTemplateReference($obj->getId());
117 break;
118 case "sktp":
119 $this->deleteSkillTemplate($obj->getId());
120 break;
121 case "sctp":
122 $this->deleteSkillCategoryTemplate($obj->getId(), $tree);
123 break;
124 }
125 $obj->delete();
126 }
127 if ($tree->isInTree($node_id)) {
128 $tree->deleteTree($node_data);
129 }
130 }
131 }
deleteSkillCategoryTemplate(int $sctp_id, \ilSkillTree $tree)
deleteSkillCategory(int $scat_id, \ilSkillTree $tree)
deleteSkillRoot(int $skrt_id, \ilSkillTree $tree)
const POS_FIRST_NODE

References ILIAS\Skill\Node\SkillDeletionManager\deleteSkill(), ILIAS\Skill\Node\SkillDeletionManager\deleteSkillCategory(), ILIAS\Skill\Node\SkillDeletionManager\deleteSkillCategoryTemplate(), ILIAS\Skill\Node\SkillDeletionManager\deleteSkillRoot(), ILIAS\Skill\Node\SkillDeletionManager\deleteSkillTemplate(), ILIAS\Skill\Node\SkillDeletionManager\deleteSkillTemplateReference(), ilSkillTreeNodeFactory\getInstance(), and ilTree\POS_FIRST_NODE.

Referenced by ILIAS\Skill\Node\SkillDeletionManager\deleteSkillCategory(), ILIAS\Skill\Node\SkillDeletionManager\deleteSkillCategoryTemplate(), ILIAS\Skill\Node\SkillDeletionManager\deleteSkillRoot(), ILIAS\Skill\Node\SkillDeletionManager\deleteSkillTemplate(), and ILIAS\Skill\Node\SkillDeletionManager\deleteTree().

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

◆ deleteSkill()

ILIAS\Skill\Node\SkillDeletionManager::deleteSkill ( int  $skll_id)
protected

Definition at line 144 of file class.SkillDeletionManager.php.

144 : void
145 {
146 $this->level_repo->deleteLevelsOfSkill($skll_id);
147 $this->user_level_repo->deleteUserLevelsOfSkill($skll_id);
148 $this->usage_manager->removeUsagesForSkill($skll_id);
149 $this->personal_manager->removePersonalSkillsForSkill($skll_id);
150 $this->material_manager->removeAssignedMaterialsForSkill($skll_id);
151 $this->profile_manager->deleteProfileLevelsForSkill($skll_id);
152 $this->resources_manager->removeResourcesForSkill($skll_id);
153 $this->event_handler->raise("components/ILIAS/Skill", "deleteSkill", ["node_id" => $skll_id, "is_reference" => false]);
154 }

Referenced by ILIAS\Skill\Node\SkillDeletionManager\deleteNode().

+ Here is the caller graph for this function:

◆ deleteSkillCategory()

ILIAS\Skill\Node\SkillDeletionManager::deleteSkillCategory ( int  $scat_id,
\ilSkillTree  $tree 
)
protected

Definition at line 156 of file class.SkillDeletionManager.php.

156 : void
157 {
158 $childs = $tree->getChildsByTypeFilter(
159 $scat_id,
160 ["skll", "scat", "sktr"]
161 );
162 foreach ($childs as $node) {
163 $this->deleteNode((int) $node["obj_id"], $tree);
164 }
165
166 $this->personal_manager->removePersonalSkillsForSkill($scat_id);
167 }
deleteNode(int $node_id, ?\ilSkillTree $tree=null)

References ILIAS\Skill\Node\SkillDeletionManager\deleteNode(), and ilSkillTree\getChildsByTypeFilter().

Referenced by ILIAS\Skill\Node\SkillDeletionManager\deleteNode().

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

◆ deleteSkillCategoryTemplate()

ILIAS\Skill\Node\SkillDeletionManager::deleteSkillCategoryTemplate ( int  $sctp_id,
\ilSkillTree  $tree 
)
protected

Definition at line 195 of file class.SkillDeletionManager.php.

195 : void
196 {
197 $childs = $tree->getChildsByTypeFilter(
198 $sctp_id,
199 ["sktp", "sctp"]
200 );
201 foreach ($childs as $node) {
202 $this->deleteNode((int) $node["obj_id"], $tree);
203 }
204
205 foreach (\ilSkillTemplateReference::_lookupTrefIdsForTopTemplateId($sctp_id) as $tref_id) {
206 $this->deleteNode($tref_id);
207 }
208 }
static _lookupTrefIdsForTopTemplateId(int $a_template_id)

References ilSkillTemplateReference\_lookupTrefIdsForTopTemplateId(), ILIAS\Skill\Node\SkillDeletionManager\deleteNode(), and ilSkillTree\getChildsByTypeFilter().

Referenced by ILIAS\Skill\Node\SkillDeletionManager\deleteNode().

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

◆ deleteSkillRoot()

ILIAS\Skill\Node\SkillDeletionManager::deleteSkillRoot ( int  $skrt_id,
\ilSkillTree  $tree 
)
protected

Definition at line 133 of file class.SkillDeletionManager.php.

133 : void
134 {
135 $childs = $tree->getChildsByTypeFilter(
136 $skrt_id,
137 ["skll", "scat", "sktp", "sctp", "sktr"]
138 );
139 foreach ($childs as $node) {
140 $this->deleteNode((int) $node["obj_id"], $tree);
141 }
142 }

References ILIAS\Skill\Node\SkillDeletionManager\deleteNode(), and ilSkillTree\getChildsByTypeFilter().

Referenced by ILIAS\Skill\Node\SkillDeletionManager\deleteNode().

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

◆ deleteSkillTemplate()

ILIAS\Skill\Node\SkillDeletionManager::deleteSkillTemplate ( int  $sktp_id)
protected

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

180 : void
181 {
182 $this->level_repo->deleteLevelsOfSkill($sktp_id);
183 $this->user_level_repo->deleteUserLevelsOfSkill($sktp_id);
184 $this->usage_manager->removeUsagesForSkill($sktp_id);
185 $this->material_manager->removeAssignedMaterialsForSkill($sktp_id);
186 $this->profile_manager->deleteProfileLevelsForSkill($sktp_id);
187 $this->resources_manager->removeResourcesForSkill($sktp_id);
188 $this->event_handler->raise("components/ILIAS/Skill", "deleteSkill", ["node_id" => $sktp_id, "is_reference" => false]);
189
190 foreach (\ilSkillTemplateReference::_lookupTrefIdsForTopTemplateId($sktp_id) as $tref_id) {
191 $this->deleteNode($tref_id);
192 }
193 }

References ilSkillTemplateReference\_lookupTrefIdsForTopTemplateId(), and ILIAS\Skill\Node\SkillDeletionManager\deleteNode().

Referenced by ILIAS\Skill\Node\SkillDeletionManager\deleteNode().

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

◆ deleteSkillTemplateReference()

ILIAS\Skill\Node\SkillDeletionManager::deleteSkillTemplateReference ( int  $sktr_id)
protected

Definition at line 169 of file class.SkillDeletionManager.php.

169 : void
170 {
171 $this->user_level_repo->deleteUserLevelsOfSkill($sktr_id, true);
172 $this->usage_manager->removeUsagesForSkill($sktr_id, true);
173 $this->personal_manager->removePersonalSkillsForSkill($sktr_id);
174 $this->material_manager->removeAssignedMaterialsForSkill($sktr_id, true);
175 $this->profile_manager->deleteProfileLevelsForSkill($sktr_id, true);
176 $this->resources_manager->removeResourcesForSkill($sktr_id, true);
177 $this->event_handler->raise("components/ILIAS/Skill", "deleteSkill", ["node_id" => $sktr_id, "is_reference" => true]);
178 }

Referenced by ILIAS\Skill\Node\SkillDeletionManager\deleteNode().

+ Here is the caller graph for this function:

◆ deleteTree()

ILIAS\Skill\Node\SkillDeletionManager::deleteTree ( int  $node_id)

Definition at line 77 of file class.SkillDeletionManager.php.

77 : void
78 {
79 if ($node_id != \ilTree::POS_FIRST_NODE) {
80 $tree = $this->tree_repo->getTreeForNodeId($node_id);
81 $tree_obj = $this->tree_manager->getTree($tree->getTreeId());
82
83 // delete competence profiles of tree
84 $tree_profiles = $this->profile_manager->getProfilesForSkillTree($tree->getTreeId());
85 foreach ($tree_profiles as $profile) {
86 $this->profile_manager->delete($profile->getId());
87 $this->profile_completion_manager->deleteEntriesForProfile($profile->getId());
88 }
89
90 $this->deleteNode($node_id, $tree);
91 $this->tree_manager->deleteTree($tree_obj);
92 }
93 }

References ILIAS\Skill\Node\SkillDeletionManager\deleteNode(), and ilTree\POS_FIRST_NODE.

+ Here is the call graph for this function:

◆ updateProfileCompletions()

ILIAS\Skill\Node\SkillDeletionManager::updateProfileCompletions ( \ilSkillTree  $tree)

Definition at line 210 of file class.SkillDeletionManager.php.

210 : void
211 {
212 $tree_profiles = $this->profile_manager->getProfilesForSkillTree($tree->getTreeId());
213 foreach ($tree_profiles as $profile) {
214 $this->profile_completion_manager->writeCompletionEntryForAllAssignedUsersOfProfile($profile->getId());
215 }
216 }

References ilTree\getTreeId().

+ Here is the call graph for this function:

Field Documentation

◆ $event_handler

ilAppEventHandler ILIAS\Skill\Node\SkillDeletionManager::$event_handler
protected

◆ $level_repo

ilSkillLevelRepository ILIAS\Skill\Node\SkillDeletionManager::$level_repo
protected

◆ $material_manager

AssignedMaterialManager ILIAS\Skill\Node\SkillDeletionManager::$material_manager
protected

◆ $personal_manager

PersonalSkillManager ILIAS\Skill\Node\SkillDeletionManager::$personal_manager
protected

◆ $profile_completion_manager

SkillProfileCompletionManager ILIAS\Skill\Node\SkillDeletionManager::$profile_completion_manager
protected

◆ $profile_manager

SkillProfileManager ILIAS\Skill\Node\SkillDeletionManager::$profile_manager
protected

◆ $resources_manager

SkillResourcesManager ILIAS\Skill\Node\SkillDeletionManager::$resources_manager
protected

◆ $tree_manager

SkillTreeManager ILIAS\Skill\Node\SkillDeletionManager::$tree_manager
protected

◆ $tree_repo

ilSkillTreeRepository ILIAS\Skill\Node\SkillDeletionManager::$tree_repo
protected

◆ $usage_manager

SkillUsageManager ILIAS\Skill\Node\SkillDeletionManager::$usage_manager
protected

◆ $user_level_repo

ilSkillUserLevelRepository ILIAS\Skill\Node\SkillDeletionManager::$user_level_repo
protected

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