/** * @see \wcf\data\IMessageQuoteAction::saveFullQuote() */ public function saveFullQuote() { $quoteID = MessageQuoteManager::getInstance()->addQuote('com.woltlab.wcf.conversation.message', $this->message->conversationID, $this->message->messageID, $this->message->getExcerpt(), $this->message->getMessage()); if ($quoteID === false) { $removeQuoteID = MessageQuoteManager::getInstance()->getQuoteID('com.woltlab.wcf.conversation.message', $this->message->conversationID, $this->message->messageID, $this->message->getExcerpt(), $this->message->getMessage()); MessageQuoteManager::getInstance()->removeQuote($removeQuoteID); } $returnValues = array('count' => MessageQuoteManager::getInstance()->countQuotes(), 'fullQuoteMessageIDs' => MessageQuoteManager::getInstance()->getFullQuoteObjectIDs(array('com.woltlab.wcf.conversation.message'))); if ($quoteID) { $returnValues['renderedQuote'] = MessageQuoteManager::getInstance()->getQuoteComponents($quoteID); } return $returnValues; }
/** * @see \wcf\form\IPage::readParameters() */ public function readParameters() { MessageForm::readParameters(); if (isset($_REQUEST['id'])) { $this->messageID = intval($_REQUEST['id']); } $this->message = new ConversationMessage($this->messageID); if (!$this->message->messageID) { throw new IllegalLinkException(); } if (!$this->message->canEdit()) { throw new PermissionDeniedException(); } // get conversation $this->conversationID = $this->message->conversationID; $this->conversation = $this->message->getConversation(); if ($this->conversation->firstMessageID == $this->message->messageID) { $this->isFirstMessage = true; } // set attachment object id $this->attachmentObjectID = $this->message->messageID; }
/** * @see \wcf\page\IPage::readData() */ public function readData() { parent::readData(); if (empty($_POST)) { // check for quick reply message $this->text = QuickReplyManager::getInstance()->getMessage('conversation', $this->conversation->conversationID); if (empty($this->text)) { if (MessageQuoteManager::getInstance()->getQuoteMessageID()) { $message = new ConversationMessage(MessageQuoteManager::getInstance()->getQuoteMessageID()); if (!$message->messageID) { throw new IllegalLinkException(); } if ($message->conversationID == $this->conversation->conversationID) { $message->setConversation($this->conversation); $this->text = MessageQuoteManager::getInstance()->renderQuote($message, $message->message); } } if (empty($this->text)) { // get all message ids from current conversation $sql = "SELECT\tmessageID\n\t\t\t\t\t\tFROM\twcf" . WCF_N . "_conversation_message\n\t\t\t\t\t\tWHERE\tconversationID = ?"; $statement = WCF::getDB()->prepareStatement($sql); $statement->execute(array($this->conversation->conversationID)); $messageIDs = array(); while ($row = $statement->fetchArray()) { $messageIDs[] = $row['messageID']; } $renderedQuotes = MessageQuoteManager::getInstance()->getQuotesByObjectIDs('com.woltlab.wcf.conversation.message', $messageIDs); if (!empty($renderedQuotes)) { $this->text = implode("\n", $renderedQuotes); } } } } // add breadcrumbs WCF::getBreadcrumbs()->add(new Breadcrumb(WCF::getLanguage()->get('wcf.conversation.conversations'), LinkHandler::getInstance()->getLink('ConversationList'))); WCF::getBreadcrumbs()->add($this->conversation->getBreadcrumb()); // get message list $this->messageList = new ViewableConversationMessageList(); $this->messageList->setConversation($this->conversation); $this->messageList->sqlLimit = CONVERSATION_REPLY_SHOW_MESSAGES_MAX; $this->messageList->sqlOrderBy = 'conversation_message.time DESC'; $this->messageList->getConditionBuilder()->add('conversation_message.conversationID = ?', array($this->conversation->conversationID)); $this->messageList->readObjects(); }