ILIAS  trunk Revision v11.0_alpha-1831-g8615d53dadb
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
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.

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.

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:22

Member Function Documentation

◆ deleteNode()

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

Definition at line 95 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().

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  }
101  $obj = \ilSkillTreeNodeFactory::getInstance($node_id);
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  }
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 144 of file class.SkillDeletionManager.php.

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

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  }
+ 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.

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

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

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

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

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

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)
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 133 of file class.SkillDeletionManager.php.

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

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

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  }
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 180 of file class.SkillDeletionManager.php.

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

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

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  }
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 169 of file class.SkillDeletionManager.php.

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

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  }
+ 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.

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

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  }
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 210 of file class.SkillDeletionManager.php.

References ilTree\getTreeId().

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  }
+ 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: