/** * @see \wcf\system\message\quote\AbstractMessageQuoteHandler::getMessages() */ protected function getMessages(array $data) { // read news entries $newsList = new NewsList(); $newsList->getConditionBuilder()->add('news.newsID IN (?)', array(array_keys($data))); $newsList->readObjects(); $quotedMessages = $validNewsIDs = array(); // create QuotedMessage objects foreach ($newsList->getObjects() as $news) { $validNewsIDs[] = $news->newsID; $message = new QuotedMessage($news); foreach (array_keys($data[$news->newsID]) as $quoteID) { $message->addQuote($quoteID, MessageQuoteManager::getInstance()->getQuote($quoteID, false), MessageQuoteManager::getInstance()->getQuote($quoteID, true)); } $quotedMessages[] = $message; } // check for orphaned quotes if (count($validNewsIDs) != count($data)) { $orphanedQuoteIDs = array(); foreach ($data as $newsID => $quoteIDs) { if (!in_array($newsID, $validNewsIDs)) { foreach (array_keys($quoteIDs) as $quoteID) { $orphanedQuoteIDs[] = $quoteID; } } } MessageQuoteManager::getInstance()->removeOrphanedQuotes($orphanedQuoteIDs); } return $quotedMessages; }
/** * @see \wcf\system\message\quote\AbstractMessageQuoteHandler::getMessages() */ protected function getMessages(array $data) { // read messages $messageList = new ConversationMessageList(); $messageList->getConditionBuilder()->add("conversation_message.messageID IN (?)", array(array_keys($data))); $messageList->readObjects(); $messages = $messageList->getObjects(); // read conversations $conversationIDs = $validMessageIDs = array(); foreach ($messages as $message) { $conversationIDs[] = $message->conversationID; $validMessageIDs[] = $message->messageID; } $quotedMessages = array(); if (!empty($conversationIDs)) { $conversationList = new ConversationList(); $conversationList->getConditionBuilder()->add("conversation.conversationID IN (?)", array($conversationIDs)); $conversationList->readObjects(); $conversations = $conversationList->getObjects(); // create QuotedMessage objects foreach ($messages as $conversationMessage) { $conversationMessage->setConversation($conversations[$conversationMessage->conversationID]); $message = new QuotedMessage($conversationMessage); foreach (array_keys($data[$conversationMessage->messageID]) as $quoteID) { $message->addQuote($quoteID, MessageQuoteManager::getInstance()->getQuote($quoteID, false), MessageQuoteManager::getInstance()->getQuote($quoteID, true)); } $quotedMessages[] = $message; } } // check for orphaned quotes if (count($validMessageIDs) != count($data)) { $orphanedQuoteIDs = array(); foreach ($data as $messageID => $quoteIDs) { if (!in_array($messageID, $validMessageIDs)) { foreach (array_keys($quoteIDs) as $quoteID) { $orphanedQuoteIDs[] = $quoteID; } } } MessageQuoteManager::getInstance()->removeOrphanedQuotes($orphanedQuoteIDs); } return $quotedMessages; }