/** * @see \wcf\system\user\notification\object\type\IUserNotificationObjectType::getObjectsByIDs() */ public function getObjectsByIDs(array $objectIDs) { $objects = Conversation::getUserConversations($objectIDs, WCF::getUser()->userID); foreach ($objects as $objectID => $conversation) { $objects[$objectID] = new static::$decoratorClassName($conversation); } foreach ($objectIDs as $objectID) { // append empty objects for unknown ids if (!isset($objects[$objectID])) { // '__unknownNotificationObject' tells the notification API // that the object does not exist anymore so that the related // notification can be deleted automatically $objects[$objectID] = new static::$decoratorClassName(new static::$objectClassName(null, array('__unknownNotificationObject' => true, 'conversationID' => $objectID))); } } return $objects; }
/** * @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; } }