Remove obsolete template code
[GitHub/WoltLab/com.woltlab.wcf.conversation.git] / files / lib / data / conversation / message / ViewableConversationMessage.class.php
1 <?php
2 namespace wcf\data\conversation\message;
3 use wcf\data\user\UserProfile;
4 use wcf\data\DatabaseObjectDecorator;
5 use wcf\data\TLegacyUserPropertyAccess;
6 use wcf\system\cache\runtime\UserProfileRuntimeCache;
7
8 /**
9 * Represents a viewable conversation message.
10 *
11 * @author Marcel Werk
12 * @copyright 2001-2019 WoltLab GmbH
13 * @license GNU Lesser General Public License <http://opensource.org/licenses/lgpl-license.php>
14 * @package WoltLabSuite\Core\Data\Conversation\Message
15 *
16 * @method ConversationMessage getDecoratedObject()
17 * @mixin ConversationMessage
18 */
19 class ViewableConversationMessage extends DatabaseObjectDecorator {
20 use TLegacyUserPropertyAccess;
21
22 /**
23 * @inheritDoc
24 */
25 protected static $baseClass = ConversationMessage::class;
26
27 /**
28 * user profile object
29 * @var UserProfile
30 */
31 protected $userProfile;
32
33 /**
34 * Returns the user profile object.
35 *
36 * @return UserProfile
37 */
38 public function getUserProfile() {
39 if ($this->userProfile === null) {
40 if ($this->userID) {
41 $this->userProfile = UserProfileRuntimeCache::getInstance()->getObject($this->userID);
42 }
43 else {
44 $this->userProfile = UserProfile::getGuestUserProfile($this->username);
45 }
46 }
47
48 return $this->userProfile;
49 }
50
51 /**
52 * Returns the viewable conversation message with the given id.
53 *
54 * @param integer $messageID
55 * @return ViewableConversationMessage
56 */
57 public static function getViewableConversationMessage($messageID) {
58 $messageList = new ViewableConversationMessageList();
59 $messageList->setObjectIDs([$messageID]);
60 $messageList->readObjects();
61
62 return $messageList->search($messageID);
63 }
64 }