/** * @brief Get history */ function ajaxGetHistory($jid) { if (!$this->validateJid($jid)) { return; } $md = new \Modl\MessageDAO(); $messages = $md->getContact(echapJid($jid), 0, 1); $g = new \Moxl\Xec\Action\MAM\Get(); $g->setJid(echapJid($jid)); if (!empty($messages)) { $g->setStart(strtotime($messages[0]->published)); } $g->request(); }
/** * @brief Get history */ function ajaxGetHistory($jid = false) { $g = new \Moxl\Xec\Action\MAM\Get(); $md = new \Modl\MessageDAO(); if ($jid == false) { $chats = Cache::c('chats'); foreach ($chats as $jid => $value) { $messages = $md->getContact(echapJid($jid), 0, 1); $g->setJid(echapJid($jid)); if (!empty($messages)) { $g->setStart(strtotime($messages[0]->published) + 10); } $g->request(); } } elseif ($this->validateJid($jid)) { $messages = $md->getContact(echapJid($jid), 0, 1); $g->setJid(echapJid($jid)); if (!empty($messages)) { // We add a little delay of 10sec to prevent some sync issues $g->setStart(strtotime($messages[0]->published) + 10); } $g->request(); } }
function prepareMessages($jid) { if (!$this->validateJid($jid)) { return; } $md = new \Modl\MessageDAO(); $messages = $md->getContact(echapJid($jid), 0, 30); if (is_array($messages)) { $messages = array_reverse($messages); foreach ($messages as $message) { $this->prepareMessage($message); } } $view = $this->tpl(); $view->assign('jid', $jid); $cd = new \Modl\ContactDAO(); $contact = $cd->get($jid); $me = $cd->get(); if ($me == null) { $me = new \Modl\Contact(); } $view->assign('contact', $contact); $view->assign('me', false); $left = $view->draw('_chat_bubble', true); $view->assign('contact', $me); $view->assign('me', true); $right = $view->draw('_chat_bubble', true); $room = $view->draw('_chat_bubble_room', true); RPC::call('Chat.setBubbles', $left, $right, $room); RPC::call('Chat.appendMessages', $messages); }
function prepareMessages($jid, $muc = false) { if (!$this->validateJid($jid)) { return; } $md = new \Modl\MessageDAO(); if ($muc) { $messages = $md->getRoom(echapJid($jid)); } else { $messages = $md->getContact(echapJid($jid), 0, $this->_pagination); } if (is_array($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) { $this->prepareMessage($message); } } $view = $this->tpl(); $view->assign('jid', $jid); $cd = new \Modl\ContactDAO(); $contact = $cd->get($jid); $me = $cd->get(); if ($me == null) { $me = new \Modl\Contact(); } $view->assign('contact', $contact); $view->assign('me', false); $left = $view->draw('_chat_bubble', true); $view->assign('contact', $me); $view->assign('me', true); $right = $view->draw('_chat_bubble', true); $room = $view->draw('_chat_bubble_room', true); RPC::call('Chat.setBubbles', $left, $right, $room); //RPC::call('Chat.appendMessages', $messages); RPC::call('Chat.appendMessagesWrapper', $this->_wrapper); RPC::call('MovimTpl.scrollPanel'); }