/**
  * @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;
 }