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 {
94 }
95 } else {
98 }
99
101
102 $ilUser =
$DIC->user();
104
106 $node_data['obj_id'],
107 $ilUser->getId(),
108 'purge',
109 null
110 );
111
112
113
114 if (!$a_from_recovery_folder) {
116 } else {
118 }
119
120
122
123 foreach ($subtree_nodes as $node) {
125 continue;
126 }
127
128 $logger->info(
129 'delete obj_id: ' . $node_obj->getId() .
130 ', ref_id: ' . $node_obj->getRefId() .
131 ', type: ' . $node_obj->getType() .
132 ', title: ' . $node_obj->getTitle()
133 );
134 $affected_ids[$node["ref_id"]] = [
135 "ref_id" => $node["ref_id"],
136 "obj_id" => $node_obj->getId(),
137 "type" => $node_obj->getType(),
138 "old_parent_ref_id" => $node["parent"]
139 ];
140
141
142
143
144
145 if (!$a_from_recovery_folder || $node_obj->getType() !== "fold") {
146 $node_obj->delete();
147 }
148 }
149
150
151 if (!$a_from_recovery_folder) {
152 if ($saved_tree) {
153 $saved_tree->deleteTree($node_data);
154 }
155 } else {
157 }
158
159 $logger->info(
160 'deleted tree, tree_id: ' . $node_data['tree'] .
161 ', child: ' . $node_data['child']
162 );
163 }
164
165
166 foreach ($affected_ids as $aid) {
167 $ilAppEventHandler->raise(
168 "components/ILIAS/ILIASObject",
169 "delete",
170 [
171 "obj_id" => $aid["obj_id"],
172 "ref_id" => $aid["ref_id"],
173 "type" => $aid["type"],
174 "old_parent_ref_id" => $aid["old_parent_ref_id"]
175 ]
176 );
177 }
178 }
$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