/** * @see Action::execute() */ public function execute() { parent::execute(); // get pm ids switch ($this->folderID) { // outbox case PMFolderList::FOLDER_OUTBOX: $sql = "SELECT\t\tpmID \n\t\t\t\t\tFROM \t\twcf" . WCF_N . "_pm\n\t\t\t\t\tWHERE \t\tuserID = " . WCF::getUser()->userID . "\n\t\t\t\t\t\t\tAND saveInOutbox = 1"; break; // drafts // drafts case PMFolderList::FOLDER_DRAFTS: $sql = "SELECT\t\tpmID \n\t\t\t\t\tFROM \t\twcf" . WCF_N . "_pm\n\t\t\t\t\tWHERE \t\tuserID = " . WCF::getUser()->userID . "\n\t\t\t\t\t\t\tAND isDraft = 1"; break; // trash // trash case PMFolderList::FOLDER_TRASH: $sql = "SELECT\t\tpmID\n\t\t\t\t\tFROM\t\twcf" . WCF_N . "_pm_to_user\n\t\t\t\t\tWHERE\t\trecipientID = " . WCF::getUser()->userID . "\n\t\t\t\t\t\t\tAND isDeleted = 1"; break; // inbox & own folders // inbox & own folders default: $sql = "SELECT\t\tpmID\n\t\t\t\t\tFROM\t\twcf" . WCF_N . "_pm_to_user\n\t\t\t\t\tWHERE\t\trecipientID = " . WCF::getUser()->userID . "\n\t\t\t\t\t\t\tAND isDeleted = 0\n\t\t\t\t\t\t\tAND folderID = " . $this->folderID; } $pmIDArray = array(); $result = WCF::getDB()->sendQuery($sql); while ($row = WCF::getDB()->fetchArray($result)) { $pmIDArray[] = $row['pmID']; } // update session $markedMessages = PMAction::getMarkedMessages(); if ($markedMessages == null || !is_array($markedMessages)) { WCF::getSession()->register('markedPMs', $pmIDArray); } else { $update = false; foreach ($pmIDArray as $pmID) { if (!in_array($pmID, $markedMessages)) { array_push($markedMessages, $pmID); $update = true; } } if ($update) { WCF::getSession()->register('markedPMs', $markedMessages); } } WCF::getSession()->update(); WCF::getSession()->disableUpdate(true); $this->executed(); HeaderUtil::redirect('index.php?page=PMList&folderID=' . $this->folderID . SID_ARG_2ND_NOT_ENCODED); exit; }