/** * @see \wcf\data\IExtendedMessageQuickReplyAction::jumpToExtended() */ public function jumpToExtended() { // quick reply if ($this->message === null) { QuickReplyManager::getInstance()->setMessage('conversation', $this->conversation->conversationID, $this->parameters['message']); $url = LinkHandler::getInstance()->getLink('ConversationMessageAdd', array('id' => $this->conversation->conversationID)); } else { // editing message QuickReplyManager::getInstance()->setMessage('conversationMessage', $this->message->messageID, $this->parameters['message']); $url = LinkHandler::getInstance()->getLink('ConversationMessageEdit', array('id' => $this->message->messageID)); } if (!empty($this->parameters['tmpHash'])) { QuickReplyManager::getInstance()->setTmpHash($this->parameters['tmpHash']); } // redirect return array('url' => $url); }
/** * @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(); }