Fix deleting all activity events for likes/follows instead of specific ones
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / lib / system / user / activity / event / UserActivityEventHandler.class.php
index 5d1db1e09bd585f159c02bc58e94ea6f610597e2..0fcf9cc03b9c17a6069c88a96dc7227631df63fe 100644 (file)
@@ -99,6 +99,34 @@ class UserActivityEventHandler extends SingletonFactory {
                return $returnValues['returnValues'];
        }
        
+       /**
+        * Removes an activity event.
+        * 
+        * @param       integer         $objectType
+        * @param       integer         $objectID
+        * @param       integer         $userID
+        * @throws      SystemException
+        */
+       public function removeEvent($objectType, $objectID, $userID = null) {
+               $objectTypeID = $this->getObjectTypeID($objectType);
+               if ($objectTypeID === null) {
+                       throw new SystemException("Unknown recent activity event '".$objectType."'");
+               }
+               
+               if ($userID === null) $userID = WCF::getUser()->userID;
+               
+               $sql = "DELETE FROM     wcf".WCF_N."_user_activity_event
+                       WHERE           objectTypeID = ?
+                                       AND objectID = ?
+                                       AND userID = ?";
+               $statement = WCF::getDB()->prepareStatement($sql);
+               $statement->execute(array(
+                       $objectTypeID,
+                       $objectID,
+                       $userID
+               ));
+       }
+       
        /**
         * Removes activity events.
         *