/**
  * Deletes the data of the specified messages completely.
  * 
  * @param	string		$pmIDs
  */
 protected static function deleteData($pmIDs)
 {
     // delete recipients
     $sql = "DELETE FROM\twcf" . WCF_N . "_pm_to_user\n\t\t\tWHERE\t\tpmID IN (" . $pmIDs . ")";
     WCF::getDB()->sendQuery($sql);
     // delete messages
     $sql = "DELETE FROM\twcf" . WCF_N . "_pm\n\t\t\tWHERE\t\tpmID IN (" . $pmIDs . ")";
     WCF::getDB()->sendQuery($sql);
     // delete pm hashes
     $sql = "DELETE FROM\twcf" . WCF_N . "_pm_hash\n\t\t\tWHERE\t\tpmID IN (" . $pmIDs . ")";
     WCF::getDB()->registerShutdownUpdate($sql);
     // delete attachments
     require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentListEditor.class.php';
     $attachmentList = new MessageAttachmentListEditor(explode(',', $pmIDs), 'pm', WCF::getPackageID('com.woltlab.wcf.data.message.pm'));
     $attachmentList->deleteAll();
 }
 /**
  * Deletes this entry.
  */
 public function delete()
 {
     // delete solutions
     $sql = "DELETE FROM\twcf" . WCF_N . "_contest_solution\n\t\t\tWHERE\t\tcontestID = " . intval($this->contestID);
     WCF::getDB()->sendQuery($sql);
     // delete entry
     $sql = "DELETE FROM\twcf" . WCF_N . "_contest\n\t\t\tWHERE\t\tcontestID = " . intval($this->contestID);
     WCF::getDB()->sendQuery($sql);
     // delete entry to class and update class counters
     $this->setClasses(array());
     // delete entry to participant
     $sql = "DELETE FROM\twcf" . WCF_N . "_contest_participant\n\t\t\tWHERE\t\tcontestID = " . intval($this->contestID);
     WCF::getDB()->sendQuery($sql);
     // delete entry to jury
     $sql = "DELETE FROM\twcf" . WCF_N . "_contest_jury\n\t\t\tWHERE\t\tcontestID = " . intval($this->contestID);
     WCF::getDB()->sendQuery($sql);
     // delete entry to price
     $sql = "DELETE FROM\twcf" . WCF_N . "_contest_price\n\t\t\tWHERE\t\tcontestID = " . intval($this->contestID);
     WCF::getDB()->sendQuery($sql);
     // delete entry to sponsor
     $sql = "DELETE FROM\twcf" . WCF_N . "_contest_sponsor\n\t\t\tWHERE\t\tcontestID = " . intval($this->contestID);
     WCF::getDB()->sendQuery($sql);
     // delete events
     $sql = "DELETE FROM\twcf" . WCF_N . "_contest_event\n\t\t\tWHERE\t\tcontestID = " . intval($this->contestID);
     WCF::getDB()->sendQuery($sql);
     // delete tags
     if (MODULE_TAGGING) {
         require_once WCF_DIR . 'lib/data/tag/TagEngine.class.php';
         $taggable = TagEngine::getInstance()->getTaggable('de.easy-coding.wcf.contest.entry');
         $sql = "DELETE FROM\twcf" . WCF_N . "_tag_to_object\n\t\t\t\tWHERE \t\ttaggableID = " . $taggable->getTaggableID() . "\n\t\t\t\t\t\tAND objectID = " . intval($this->contestID);
         WCF::getDB()->registerShutdownUpdate($sql);
     }
     // delete attachments
     if ($this->attachments > 0) {
         require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentListEditor.class.php';
         $attachmentList = new MessageAttachmentListEditor($this->contestID, 'contestEntry');
         $attachmentList->deleteAll();
     }
 }
 /**
  * Deletes all posts with the given post ids.
  */
 public static function deleteAllCompletely($postIDs, $deleteAttachments = true, $deletePolls = true, $updateUserStats = true)
 {
     if (empty($postIDs)) {
         return;
     }
     // delete attachments
     if ($deleteAttachments) {
         require_once WCF_DIR . 'lib/data/attachment/MessageAttachmentListEditor.class.php';
         $attachment = new MessageAttachmentListEditor(explode(',', $postIDs));
         $attachment->deleteAll();
     }
     // delete polls
     if ($deletePolls) {
         require_once WCF_DIR . 'lib/data/message/poll/PollEditor.class.php';
         PollEditor::deleteAll($postIDs);
     }
     // update user posts & activity points
     if ($updateUserStats) {
         self::updateUserStats($postIDs, 'delete');
     }
     // delete sql data
     self::deleteData($postIDs);
 }