/** * @see \wcf\system\attachment\IAttachmentObjectType::cacheObjects() */ public function cacheObjects(array $objectIDs) { $messageList = new ConversationMessageList(); $messageList->setObjectIDs($objectIDs); $messageList->readObjects(); $conversationIDs = array(); foreach ($messageList as $message) { $conversationIDs[] = $message->conversationID; } if (!empty($conversationIDs)) { $conversations = Conversation::getUserConversations($conversationIDs, WCF::getUser()->userID); foreach ($messageList as $message) { if (isset($conversations[$message->conversationID])) { $message->setConversation($conversations[$message->conversationID]); } } } foreach ($messageList->getObjects() as $objectID => $object) { $this->cachedObjects[$objectID] = $object; } }
/** * @see \wcf\system\moderation\queue\IModerationQueueHandler::populate() */ public function populate(array $queues) { $objectIDs = array(); foreach ($queues as $object) { $objectIDs[] = $object->objectID; } // fetch messages $messageList = new ConversationMessageList(); $messageList->setObjectIDs($objectIDs); $messageList->readObjects(); $messages = $messageList->getObjects(); // set orphaned queues foreach ($queues as $queue) { if (!isset($messages[$queue->objectID])) { $queue->setIsOrphaned(); } } // fetch conversations $conversationIDs = array(); foreach ($messages as $message) { $conversationIDs[] = $message->conversationID; } if (!empty($conversationIDs)) { $conversationList = new ConversationList(); $conversationList->setObjectIDs($conversationIDs); $conversationList->readObjects(); $conversations = $conversationList->getObjects(); foreach ($queues as $object) { if (isset($messages[$object->objectID])) { $message = $messages[$object->objectID]; $message->setConversation($conversations[$message->conversationID]); $object->setAffectedObject($message); } } } }