public function handle($stanza, $parent = false) { $p = new \Modl\Presence(); $p->setPresence($stanza); $pd = new \Modl\PresenceDAO(); $pd->set($p); $this->event('mypresence'); }
function onStart($packet) { $pd = new \Modl\PresenceDAO(); $pd->clearPresence($this->user->getLogin()); $session = \Sessionx::start(); $session->load(); if ($session->mechanism != 'ANONYMOUS') { // http://xmpp.org/extensions/xep-0280.html \Moxl\Stanza\Carbons::enable(); // We refresh the roster $r = new GetList(); $r->request(); // We get the configuration $s = new Get(); $s->setXmlns('movim:prefs')->request(); } }
public function handle($stanza, $parent = false) { // Subscribe request if ((string) $stanza->attributes()->type == 'subscribe') { $session = \Session::start(); $notifs = $session->get('activenotifs'); $notifs[(string) $stanza->attributes()->from] = 'sub'; $session->set('activenotifs', $notifs); $this->event('subscribe', (string) $stanza->attributes()->from); } else { $p = new \Modl\Presence(); $p->setPresence($stanza); $pd = new \Modl\PresenceDAO(); $pd->set($p); /*if($p->photo) { $r = new Get; $r->setTo(echapJid((string)$stanza->attributes()->from))->request(); }*/ if ($p->muc && isset($stanza->x) && isset($stanza->x->status)) { $code = (string) $stanza->x->status->attributes()->code; if (isset($code) && $code == '110') { if ($p->value != 5 && $p->value != 6) { $this->method('muc_handle'); $this->pack($p); } elseif ($p->value == 5) { $pd->clearMuc($p->jid); $this->method('unavailable_handle'); $this->pack($p); $this->deliver(); } } } else { $cd = new \Modl\ContactDAO(); $c = $cd->getRosterItem($p->jid, true); $this->pack($c); if ($p->value == 5 || $p->value == 6) { $pd->delete($p); } } $this->deliver(); } }
/** * @brief Prepare the contact header * * @param string $jid */ function prepareHeaderRoom($room) { $view = $this->tpl(); $md = new \Modl\MessageDAO(); $s = $md->getRoomSubject($room); $cd = new \Modl\ConferenceDAO(); $c = $cd->get($room); $pd = new \Modl\PresenceDAO(); $p = $pd->getMyPresenceRoom($room); $view->assign('room', $room); $view->assign('subject', $s); $view->assign('presence', $p); $view->assign('conference', $c); return $view->draw('_chat_header_room', true); }
function preparePresenceList() { $txt = getPresences(); $txts = getPresencesTxt(); $session = \Session::start(); $pd = new \Modl\PresenceDAO(); $p = $pd->getPresence($session->get('jid'), $session->get('resource')); $cd = new \Modl\ContactDAO(); $contact = $cd->get($session->get('jid')); if ($contact == null) { $contact = new \Modl\Contact(); } $presencetpl = $this->tpl(); $presencetpl->assign('contact', $contact); $presencetpl->assign('p', $p); $presencetpl->assign('txt', $txt); $presencetpl->assign('txts', $txts); $html = $presencetpl->draw('_presence_list', true); return $html; }
function checkConnected($room, $resource = false) { if (!$this->validateRoom($room)) { return; } if ($resource && !$this->validateResource($resource)) { Notification::append(null, $this->__('chatrooms.bad_id')); return; } $pd = new \Modl\PresenceDAO(); if ($resource == false) { $session = \Session::start(); $resource = $session->get('username'); } $presence = $pd->getPresence($room, $resource); if ($presence != null) { return true; } else { return false; } }
private function cleanupDBSessions() { $sd = new \Modl\SessionxDAO(); $sd->deleteEmpty(); $pd = new \Modl\PresenceDAO(); $pd->cleanPresences(); }
function prepareChat($jid, $muc = false) { $view = $this->tpl(); $view->assign('jid', $jid); $jid = echapJS($jid); $view->assign('composing', $this->call('ajaxSendComposing', "'" . $jid . "'")); $view->assign('paused', $this->call('ajaxSendPaused', "'" . $jid . "'")); $view->assign('smiley', $this->call('ajaxSmiley')); $view->assign('emoji', prepareString('😀')); $view->assign('muc', $muc); $view->assign('anon', false); if ($muc) { $md = new \Modl\MessageDAO(); $s = $md->getRoomSubject($jid); $cd = new \Modl\ConferenceDAO(); $c = $cd->get($jid); $pd = new \Modl\PresenceDAO(); $p = $pd->getMyPresenceRoom($jid); $view->assign('room', $jid); $view->assign('subject', $s); $view->assign('presence', $p); $view->assign('conference', $c); } else { $cd = new \Modl\ContactDAO(); $cr = $cd->getRosterItem($jid); if (isset($cr)) { $contact = $cr; } else { $contact = $cd->get($jid); } $view->assign('contact', $contact); $view->assign('jid', $jid); } return $view->draw('_chat', true); }