function deleteTrackingDataOfUsers($a_users) { global $ilDB; include_once "./Services/Tracking/classes/class.ilChangeEvent.php"; include_once "./Services/Tracking/classes/class.ilLPStatusWrapper.php"; ilChangeEvent::_deleteReadEventsForUsers($this->getId(), $a_users); foreach ($a_users as $user) { $ilDB->manipulateF(' DELETE FROM scorm_tracking WHERE user_id = %s AND obj_id = %s', array('integer', 'integer'), array($user, $this->getID())); $ilDB->manipulateF(' DELETE FROM sahs_user WHERE user_id = %s AND obj_id = %s', array('integer', 'integer'), array($user, $this->getID())); ilLPStatusWrapper::_updateStatus($this->getId(), $user); } }
public final function resetLPDataForUserIds(array $a_user_ids, $a_recursive = true) { if ((bool) $a_recursive) { $subitems = $this->getPossibleCollectionItems(); if (is_array($subitems)) { foreach ($subitems as $sub_ref_id) { $olp = self::getInstance(ilObject::_lookupObjId($sub_ref_id)); $olp->resetLPDataForUserIds($a_user_ids, false); } } } $this->resetCustomLPDataForUserIds($a_user_ids, (bool) $a_recursive); include_once "Services/Tracking/classes/class.ilLPMarks.php"; ilLPMarks::_deleteForUsers($this->obj_id, $a_user_ids); include_once "Services/Tracking/classes/class.ilChangeEvent.php"; ilChangeEvent::_deleteReadEventsForUsers($this->obj_id, $a_user_ids); // update LP status to get collections up-to-date include_once "Services/Tracking/classes/class.ilLPStatus.php"; foreach ($a_user_ids as $user_id) { ilLPStatus::_updateStatus($this->obj_id, $user_id); } }