remove objects from trash bin and all entries therefore every object needs a specific deleteObject() method
67 : void {
69
70 $ilLog =
$DIC[
"ilLog"];
71 $ilAppEventHandler =
$DIC[
"ilAppEventHandler"];
73 $logger =
$DIC->logger()->rep();
74
76
77 $affected_ids = [];
78
79
80 $a_ref_ids = array_map('intval', $a_ref_ids);
81 foreach ($a_ref_ids as
$id) {
82 $saved_tree = null;
83
84 if (!$a_from_recovery_folder) {
86 $tree_id = end($trees);
87
88 if ($tree_id) {
89 $saved_tree =
new ilTree($tree_id);
90 $node_data = $saved_tree->getNodeData(
$id);
91 $subtree_nodes = $saved_tree->getSubTree($node_data);
92 } else {
93 if (isset($affected_ids[
$id])) {
94 continue;
95 } else {
97 }
98 }
99 } else {
102 }
103
105
106 $ilUser =
$DIC->user();
108
110 $node_data['obj_id'],
111 $ilUser->getId(),
112 'purge',
113 null
114 );
115
116
117
118 if (!$a_from_recovery_folder) {
120 } else {
122 }
123
124
126
127 foreach ($subtree_nodes as $node) {
129 continue;
130 }
131
132 $logger->info(
133 'delete obj_id: ' . $node_obj->getId() .
134 ', ref_id: ' . $node_obj->getRefId() .
135 ', type: ' . $node_obj->getType() .
136 ', title: ' . $node_obj->getTitle()
137 );
138 $affected_ids[$node["ref_id"]] = [
139 "ref_id" => $node["ref_id"],
140 "obj_id" => $node_obj->getId(),
141 "type" => $node_obj->getType(),
142 "old_parent_ref_id" => $node["parent"]
143 ];
144
145 $node_obj->delete();
146 }
147
148
149 if (!$a_from_recovery_folder) {
150 if ($saved_tree) {
151 $saved_tree->deleteTree($node_data);
152 }
153 } else {
155 }
156
157 $logger->info(
158 'deleted tree, tree_id: ' . $node_data['tree'] .
159 ', child: ' . $node_data['child']
160 );
161 }
162
163
164 foreach ($affected_ids as $aid) {
165 $ilAppEventHandler->raise(
166 "components/ILIAS/ILIASObject",
167 "delete",
168 [
169 "obj_id" => $aid["obj_id"],
170 "ref_id" => $aid["ref_id"],
171 "type" => $aid["type"],
172 "old_parent_ref_id" => $aid["old_parent_ref_id"]
173 ]
174 );
175 }
176 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
static _recordWriteEvent(int $obj_id, int $usr_id, string $action, ?int $parent_obj_id=null)
Records a write event.
static lookupTreesForNode(int $node_id)
deleteTree(array $a_node)
delete node and the whole subtree under this node