mirror of
https://github.com/wbbaddons/Tims-Chat.git
synced 2024-10-31 14:10:08 +00:00
Allow fetching avatars for chat messages
This commit is contained in:
parent
73a152bcfa
commit
9e30cb66e7
@ -44,7 +44,7 @@ class Message extends \chat\data\CHATDatabaseObject {
|
||||
protected static $users = array();
|
||||
|
||||
/**
|
||||
* @see \chat\data\\message\Message::getFormattedMessage()
|
||||
* @see \chat\data\message\Message::getFormattedMessage()
|
||||
*/
|
||||
public function __toString() {
|
||||
return $this->getFormattedMessage();
|
||||
|
54
file/lib/data/message/ViewableMessage.class.php
Normal file
54
file/lib/data/message/ViewableMessage.class.php
Normal file
@ -0,0 +1,54 @@
|
||||
<?php
|
||||
namespace chat\data\message;
|
||||
|
||||
/**
|
||||
* Represents a viewable chat message.
|
||||
*
|
||||
* @author Tim Düsterhus
|
||||
* @copyright 2010-2013 Tim Düsterhus
|
||||
* @license Creative Commons Attribution-NonCommercial-ShareAlike <http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode>
|
||||
* @package be.bastelstu.chat
|
||||
* @subpackage data.message
|
||||
*/
|
||||
class ViewableMessage extends \wcf\data\DatabaseObjectDecorator {
|
||||
/**
|
||||
* @see \wcf\data\DatabaseObjectDecorator::$baseClass
|
||||
*/
|
||||
protected static $baseClass = 'chat\data\message\Message';
|
||||
|
||||
/**
|
||||
* user profile object
|
||||
* @var \wcf\data\user\UserProfile
|
||||
*/
|
||||
protected $userProfile = null;
|
||||
|
||||
/**
|
||||
* Returns the profile object of the user who created the post.
|
||||
*
|
||||
* @return wcf\data\user\UserProfile
|
||||
*/
|
||||
public function getUserProfile() {
|
||||
if ($this->userProfile === null) {
|
||||
$this->userProfile = new \wcf\data\user\UserProfile(new \wcf\data\user\User(null, $this->getDecoratedObject()->data));
|
||||
}
|
||||
|
||||
return $this->userProfile;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \chat\data\message\Message::jsonify()
|
||||
*/
|
||||
public function jsonify($raw = false) {
|
||||
$array = parent::jsonify(true);
|
||||
|
||||
$array['avatar'] = array(
|
||||
16 => $this->getUserProfile()->getAvatar()->getImageTag(16),
|
||||
24 => $this->getUserProfile()->getAvatar()->getImageTag(24),
|
||||
32 => $this->getUserProfile()->getAvatar()->getImageTag(32),
|
||||
48 => $this->getUserProfile()->getAvatar()->getImageTag(48)
|
||||
);
|
||||
|
||||
if ($raw) return $array;
|
||||
return \wcf\util\JSON::encode($array);
|
||||
}
|
||||
}
|
35
file/lib/data/message/ViewableMessageList.class.php
Normal file
35
file/lib/data/message/ViewableMessageList.class.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
namespace chat\data\message;
|
||||
|
||||
/**
|
||||
* Represents a list of viewable chat messages.
|
||||
*
|
||||
* @author Tim Düsterhus
|
||||
* @copyright 2010-2013 Tim Düsterhus
|
||||
* @license Creative Commons Attribution-NonCommercial-ShareAlike <http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode>
|
||||
* @package be.bastelstu.chat
|
||||
* @subpackage chat.room
|
||||
*/
|
||||
class ViewableMessageList extends MessageList {
|
||||
/**
|
||||
* @see \wcf\data\DatabaseObjectList::$decoratorClassName
|
||||
*/
|
||||
public $decoratorClassName = 'chat\data\message\ViewableMessage';
|
||||
|
||||
/**
|
||||
* @see \wcf\data\DatabaseObjectList::__construct()
|
||||
*/
|
||||
public function __construct() {
|
||||
parent::__construct();
|
||||
|
||||
$this->sqlSelects .= "user_avatar.*, user_option_value.*, user_table.*";
|
||||
$this->sqlJoins .= " LEFT JOIN wcf".WCF_N."_user user_table ON (user_table.userID = message.sender)";
|
||||
$this->sqlJoins .= " LEFT JOIN wcf".WCF_N."_user_avatar user_avatar ON (user_avatar.avatarID = user_table.avatarID)";
|
||||
$this->sqlJoins .= " LEFT JOIN wcf".WCF_N."_user_option_value user_option_value ON (user_option_value.userID = user_table.userID)";
|
||||
|
||||
if (MODULE_USER_RANK) {
|
||||
$this->sqlSelects .= ",user_rank.*";
|
||||
$this->sqlJoins .= " LEFT JOIN wcf".WCF_N."_user_rank user_rank ON (user_rank.rankID = user_table.rankID)";
|
||||
}
|
||||
}
|
||||
}
|
@ -73,7 +73,7 @@ public function readData() {
|
||||
* Fetches the new messages
|
||||
*/
|
||||
public function readMessages() {
|
||||
$this->messages = data\message\MessageList::getMessagesSince($this->room, WCF::getUser()->chatLastSeen);
|
||||
$this->messages = data\message\ViewableMessageList::getMessagesSince($this->room, WCF::getUser()->chatLastSeen);
|
||||
|
||||
// update last seen message
|
||||
$sql = "SELECT
|
||||
@ -142,7 +142,11 @@ public function show() {
|
||||
$items = array();
|
||||
if (ENABLE_DEBUG_MODE) {
|
||||
foreach ($b->getItems() as $item) {
|
||||
$items[] = array('text' => $item['text'], 'use' => $item['use']);
|
||||
$items[] = array(
|
||||
'text' => $item['text'],
|
||||
'use' => $item['use'],
|
||||
'trace' => $item['trace']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user