ILIAS  release_10 Revision v10.1-43-ga1241a92c2f
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 36 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 50 of file class.SkillDeletionManager.php.

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.

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

Member Function Documentation

◆ deleteNode()

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

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

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().

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

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

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

◆ deleteSkillCategory()

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

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

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

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

157  : void
158  {
159  $childs = $tree->getChildsByTypeFilter(
160  $scat_id,
161  ["skll", "scat", "sktr"]
162  );
163  foreach ($childs as $node) {
164  $this->deleteNode((int) $node["obj_id"], $tree);
165  }
166 
167  $this->personal_manager->removePersonalSkillsForSkill($scat_id);
168  }
deleteNode(int $node_id, \ilSkillTree $tree=null)
+ 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 196 of file class.SkillDeletionManager.php.

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

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

196  : void
197  {
198  $childs = $tree->getChildsByTypeFilter(
199  $sctp_id,
200  ["sktp", "sctp"]
201  );
202  foreach ($childs as $node) {
203  $this->deleteNode((int) $node["obj_id"], $tree);
204  }
205 
206  foreach (\ilSkillTemplateReference::_lookupTrefIdsForTopTemplateId($sctp_id) as $tref_id) {
207  $this->deleteNode($tref_id);
208  }
209  }
static _lookupTrefIdsForTopTemplateId(int $a_template_id)
deleteNode(int $node_id, \ilSkillTree $tree=null)
+ 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 134 of file class.SkillDeletionManager.php.

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

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

134  : void
135  {
136  $childs = $tree->getChildsByTypeFilter(
137  $skrt_id,
138  ["skll", "scat", "sktp", "sctp", "sktr"]
139  );
140  foreach ($childs as $node) {
141  $this->deleteNode((int) $node["obj_id"], $tree);
142  }
143  }
deleteNode(int $node_id, \ilSkillTree $tree=null)
+ 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 181 of file class.SkillDeletionManager.php.

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

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

181  : void
182  {
183  $this->level_repo->deleteLevelsOfSkill($sktp_id);
184  $this->user_level_repo->deleteUserLevelsOfSkill($sktp_id);
185  $this->usage_manager->removeUsagesForSkill($sktp_id);
186  $this->material_manager->removeAssignedMaterialsForSkill($sktp_id);
187  $this->profile_manager->deleteProfileLevelsForSkill($sktp_id);
188  $this->resources_manager->removeResourcesForSkill($sktp_id);
189  $this->event_handler->raise("components/ILIAS/Skill", "deleteSkill", ["node_id" => $sktp_id, "is_reference" => false]);
190 
191  foreach (\ilSkillTemplateReference::_lookupTrefIdsForTopTemplateId($sktp_id) as $tref_id) {
192  $this->deleteNode($tref_id);
193  }
194  }
static _lookupTrefIdsForTopTemplateId(int $a_template_id)
deleteNode(int $node_id, \ilSkillTree $tree=null)
+ 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 170 of file class.SkillDeletionManager.php.

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

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

◆ deleteTree()

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

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

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

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

◆ updateProfileCompletions()

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

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

References ilTree\getTreeId().

211  : void
212  {
213  $tree_profiles = $this->profile_manager->getProfilesForSkillTree($tree->getTreeId());
214  foreach ($tree_profiles as $profile) {
215  $this->profile_completion_manager->writeCompletionEntryForAllAssignedUsersOfProfile($profile->getId());
216  }
217  }
+ 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: