3 namespace wcf\data\conversation\message
;
5 use wcf\data\DatabaseObjectDecorator
;
6 use wcf\data\TLegacyUserPropertyAccess
;
7 use wcf\data\user\UserProfile
;
8 use wcf\system\cache\runtime\UserProfileRuntimeCache
;
11 * Represents a viewable conversation message.
14 * @copyright 2001-2019 WoltLab GmbH
15 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
16 * @package WoltLabSuite\Core\Data\Conversation\Message
18 * @method ConversationMessage getDecoratedObject()
19 * @mixin ConversationMessage
21 class ViewableConversationMessage
extends DatabaseObjectDecorator
23 use TLegacyUserPropertyAccess
;
28 protected static $baseClass = ConversationMessage
::class;
34 protected $userProfile;
37 * Returns the user profile object.
41 public function getUserProfile()
43 if ($this->userProfile
=== null) {
45 $this->userProfile
= UserProfileRuntimeCache
::getInstance()->getObject($this->userID
);
47 $this->userProfile
= UserProfile
::getGuestUserProfile($this->username
);
51 return $this->userProfile
;
55 * Returns the viewable conversation message with the given id.
57 * @param int $messageID
58 * @return ViewableConversationMessage
60 public static function getViewableConversationMessage($messageID)
62 $messageList = new ViewableConversationMessageList();
63 $messageList->setObjectIDs([$messageID]);
64 $messageList->readObjects();
66 return $messageList->search($messageID);