|
|
@ -91,22 +91,17 @@ class Chat extends \Movim\Widget\Base |
|
|
4, |
|
|
4, |
|
|
$this->route('chat', $contact->jid) |
|
|
$this->route('chat', $contact->jid) |
|
|
); |
|
|
); |
|
|
} elseif($message->type == 'groupchat') { |
|
|
|
|
|
$pd = new \Modl\PresenceDAO; |
|
|
|
|
|
$p = $pd->getMyPresenceRoom($from); |
|
|
|
|
|
|
|
|
|
|
|
// If we are quoted in a chatroom
|
|
|
|
|
|
if(strpos($message->body, $p->resource) !== false) { |
|
|
|
|
|
$cd = new \Modl\ConferenceDAO; |
|
|
|
|
|
$c = $cd->get($from); |
|
|
|
|
|
|
|
|
|
|
|
Notification::append( |
|
|
|
|
|
'chat|'.$from, |
|
|
|
|
|
($c != null && $c->name) ? $c->name : $from, |
|
|
|
|
|
$message->body, |
|
|
|
|
|
false, |
|
|
|
|
|
4); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} elseif ($message->type == 'groupchat' |
|
|
|
|
|
&& $message->quoted) { |
|
|
|
|
|
$cd = new \Modl\ConferenceDAO; |
|
|
|
|
|
$c = $cd->get($from); |
|
|
|
|
|
|
|
|
|
|
|
Notification::append( |
|
|
|
|
|
'chat|'.$from, |
|
|
|
|
|
($c != null && $c->name) ? $c->name : $from, |
|
|
|
|
|
$message->resource.': '.$message->body, |
|
|
|
|
|
false, |
|
|
|
|
|
4); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
RPC::call('MovimTpl.fill', '#' . cleanupId($from.'_state'), $contact->jid); |
|
|
RPC::call('MovimTpl.fill', '#' . cleanupId($from.'_state'), $contact->jid); |
|
|
@ -539,11 +534,6 @@ class Chat extends \Movim\Widget\Base |
|
|
if(is_array($messages)) { |
|
|
if(is_array($messages)) { |
|
|
$messages = array_reverse($messages); |
|
|
$messages = array_reverse($messages); |
|
|
|
|
|
|
|
|
/*foreach($messages as $message) { |
|
|
|
|
|
$this->_msgMap[$message->published.$message->jid] = $message; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
foreach($this->_msgMap as $message) {*/ |
|
|
|
|
|
foreach($messages as $message) { |
|
|
foreach($messages as $message) { |
|
|
$this->prepareMessage($message); |
|
|
$this->prepareMessage($message); |
|
|
} |
|
|
} |
|
|
@ -576,7 +566,7 @@ class Chat extends \Movim\Widget\Base |
|
|
RPC::call('Chat.clearReplace'); |
|
|
RPC::call('Chat.clearReplace'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
function prepareMessage(&$message, $jid=null) |
|
|
|
|
|
|
|
|
function prepareMessage(&$message, $jid = null) |
|
|
{ |
|
|
{ |
|
|
if($jid != $message->jidto && $jid != $message->jidfrom && $jid != null) |
|
|
if($jid != $message->jidto && $jid != $message->jidfrom && $jid != null) |
|
|
return $this->_wrapper; |
|
|
return $this->_wrapper; |
|
|
@ -587,10 +577,8 @@ class Chat extends \Movim\Widget\Base |
|
|
if (isset($message->html)) { |
|
|
if (isset($message->html)) { |
|
|
$message->body = $message->html; |
|
|
$message->body = $message->html; |
|
|
} else { |
|
|
} else { |
|
|
// We add some smileys...
|
|
|
|
|
|
$message->convertEmojis(); |
|
|
$message->convertEmojis(); |
|
|
$message->addUrls(); |
|
|
$message->addUrls(); |
|
|
// $message->body = prepareString(htmlentities($message->body , ENT_COMPAT,'UTF-8'));
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (isset($message->sticker)) { |
|
|
if (isset($message->sticker)) { |
|
|
@ -620,7 +608,6 @@ class Chat extends \Movim\Widget\Base |
|
|
]; |
|
|
]; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$message->publishedPrepared = prepareDate(strtotime($message->published), true); |
|
|
$message->publishedPrepared = prepareDate(strtotime($message->published), true); |
|
|
|
|
|
|
|
|
if ($message->delivered) { |
|
|
if ($message->delivered) { |
|
|
@ -639,29 +626,37 @@ class Chat extends \Movim\Widget\Base |
|
|
else |
|
|
else |
|
|
array_push($this->_wrapper[$date], $message); |
|
|
array_push($this->_wrapper[$date], $message); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$pd = new \Modl\PresenceDAO; |
|
|
|
|
|
$p = $pd->getMyPresenceRoom($message->from); |
|
|
} else { |
|
|
} else { |
|
|
$msgkey = $message->jidfrom . '>' . substr($message->published, 11, 5); |
|
|
$msgkey = $message->jidfrom . '>' . substr($message->published, 11, 5); |
|
|
|
|
|
|
|
|
//fillup $wrapper
|
|
|
//fillup $wrapper
|
|
|
if (!array_key_exists($date, $this->_wrapper)) { |
|
|
if (!array_key_exists($date, $this->_wrapper)) { |
|
|
$sticker = ""; |
|
|
$sticker = ""; |
|
|
|
|
|
|
|
|
if (isset($message->sticker)) { |
|
|
if (isset($message->sticker)) { |
|
|
$sticker = "sticker"; |
|
|
$sticker = "sticker"; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$this->_wrapper[$date] = ['0' . $sticker . '<' . $msgkey => [$message]]; |
|
|
$this->_wrapper[$date] = ['0' . $sticker . '<' . $msgkey => [$message]]; |
|
|
} else { //date contains at least one speaker@time=>msg already
|
|
|
} else { //date contains at least one speaker@time=>msg already
|
|
|
end($this->_wrapper[$date]); |
|
|
end($this->_wrapper[$date]); |
|
|
$lastkey = key($this->_wrapper[$date]); |
|
|
$lastkey = key($this->_wrapper[$date]); |
|
|
|
|
|
|
|
|
if (substr($lastkey, strpos($lastkey, '<') + 1) == $msgkey // same jidfrom, same min
|
|
|
if (substr($lastkey, strpos($lastkey, '<') + 1) == $msgkey // same jidfrom, same min
|
|
|
&& !isset($message->sticker) // this msg is not a sticker
|
|
|
&& !isset($message->sticker) // this msg is not a sticker
|
|
|
&& strpos($lastkey, "sticker<") === false |
|
|
&& strpos($lastkey, "sticker<") === false |
|
|
) { // the previous msg was not a sticker
|
|
|
) { // the previous msg was not a sticker
|
|
|
array_push($this->_wrapper[$date][$lastkey], $message); |
|
|
array_push($this->_wrapper[$date][$lastkey], $message); |
|
|
} |
|
|
|
|
|
else { |
|
|
|
|
|
|
|
|
} else { |
|
|
$sticker = ""; |
|
|
$sticker = ""; |
|
|
|
|
|
|
|
|
if (isset($message->sticker)) { |
|
|
if (isset($message->sticker)) { |
|
|
$sticker = "sticker"; |
|
|
$sticker = "sticker"; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$this->_wrapper[$date][count($this->_wrapper[$date]) . $sticker . '<' . $msgkey] = [$message]; |
|
|
$this->_wrapper[$date][count($this->_wrapper[$date]) . $sticker . '<' . $msgkey] = [$message]; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|