19declare(strict_types=1);
38 SELECT cmi_node.cmi_node_id
39 FROM cmi_node, cp_node
40 WHERE cp_node.slm_id = %s AND cmi_node.cp_node_id = cp_node.cp_node_id',
44 $cmi_node_values = [];
46 $cmi_node_values[] =
$data[
'cmi_node_id'];
52 $query =
'DELETE FROM cmi_custom WHERE obj_id = %s';
56 $query =
'DELETE FROM sahs_user WHERE obj_id = %s';
60 $query =
'DELETE FROM cmi_gobjective WHERE scope_id = %s';
64 if ($s_globalObjectiveId !=
"") {
66 'DELETE FROM cmi_gobjective WHERE scope_id = %s AND objective_id in (' . $s_globalObjectiveId .
')',
82 SELECT cmi_node.cmi_node_id
83 FROM cmi_node, cp_node
84 WHERE cmi_node.user_id = %s AND cmi_node.cp_node_id = cp_node.cp_node_id',
89 $cmi_node_values = [];
91 $cmi_node_values[] =
$data[
'cmi_node_id'];
98 'DELETE FROM cmi_custom WHERE user_id = %s',
105 'DELETE FROM sahs_user WHERE user_id = %s',
112 'DELETE FROM cmi_gobjective WHERE user_id = %s',
127 SELECT cmi_node.cmi_node_id
128 FROM cmi_node, cp_node
129 WHERE cmi_node.user_id = %s AND cmi_node.cp_node_id = cp_node.cp_node_id AND cp_node.slm_id = %s',
130 array(
'integer',
'integer'),
133 $cmi_node_values = [];
135 $cmi_node_values[] =
$data[
'cmi_node_id'];
142 'DELETE FROM cmi_custom WHERE user_id = %s AND obj_id = %s',
143 array(
'integer',
'integer'),
149 'DELETE FROM sahs_user WHERE user_id = %s AND obj_id = %s',
150 array(
'integer',
'integer'),
156 'DELETE FROM cmi_gobjective WHERE user_id = %s AND scope_id = %s',
157 array(
'integer',
'integer'),
162 if ($s_globalObjectiveId !=
"") {
164 'DELETE FROM cmi_gobjective WHERE user_id = %s AND scope_id = %s AND objective_id in (' . $s_globalObjectiveId .
')',
165 array(
'integer',
'integer'),
178 $cmi_inode_values = array();
180 $query =
'SELECT cmi_interaction_id FROM cmi_interaction WHERE '
181 .
$ilDB->in(
'cmi_interaction.cmi_node_id', $cmi_node_values,
false,
'integer');
184 $cmi_inode_values[] =
$data[
'cmi_interaction_id'];
188 $query =
'DELETE FROM cmi_correct_response WHERE '
189 .
$ilDB->in(
'cmi_correct_response.cmi_interaction_id', $cmi_inode_values,
false,
'integer');
190 $ilDB->manipulate($query);
193 $query =
'DELETE FROM cmi_objective WHERE '
194 .
$ilDB->in(
'cmi_objective.cmi_interaction_id', $cmi_inode_values,
false,
'integer');
195 $ilDB->manipulate($query);
198 $query =
'DELETE FROM cmi_objective WHERE '
199 .
$ilDB->in(
'cmi_objective.cmi_node_id', $cmi_node_values,
false,
'integer');
200 $ilDB->manipulate($query);
203 $query =
'DELETE FROM cmi_interaction WHERE '
204 .
$ilDB->in(
'cmi_interaction.cmi_node_id', $cmi_node_values,
false,
'integer');
205 $ilDB->manipulate($query);
208 $query =
'DELETE FROM cmi_comment WHERE '
209 .
$ilDB->in(
'cmi_comment.cmi_node_id', $cmi_node_values,
false,
'integer');
210 $ilDB->manipulate($query);
213 $query =
'DELETE FROM cmi_node WHERE '
214 .
$ilDB->in(
'cmi_node.cmi_node_id', $cmi_node_values,
false,
'integer');
215 $ilDB->manipulate($query);
224 $existing_key_template =
"";
225 $global_to_system = 1;
228 'SELECT global_to_system FROM cp_package WHERE obj_id = %s',
233 $global_to_system =
$data[
'global_to_system'];
235 if ($global_to_system == 0) {
241 SELECT targetobjectiveid
242 FROM cp_mapinfo, cp_node
243 WHERE cp_node.slm_id = %s
244 AND cp_node.nodename = %s
245 AND cp_mapinfo.cp_node_id = cp_node.cp_node_id',
246 array(
'integer',
'text'),
250 $existing_key_template .=
"'" .
$data[
'targetobjectiveid'] .
"',";
253 $existing_key_template = substr($existing_key_template, 0, -1);
254 if ($existing_key_template ==
false) {
258 return $existing_key_template;
Class ilSCORM2004DeleteData.
static removeCMIDataForPackage(int $packageId)
static getGlobalToSystemObjectiveIdStringForPackage(int $packageId)
static removeCMIDataForUser(int $user_id)
static removeCMIDataForUserAndPackage(int $user_id, int $packageId)
static removeCMIDataForNodes(array $cmi_node_values)