Ejemplo n.º 1
0
Archivo: XA.php Proyecto: movim/moxl
 public function handle($stanza, $parent = false)
 {
     $p = new \Modl\Presence();
     $p->setPresence($stanza);
     $pd = new \Modl\PresenceDAO();
     $pd->set($p);
     $this->event('mypresence');
 }
Ejemplo n.º 2
0
Archivo: Login.php Proyecto: Nyco/movim
 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();
     }
 }
Ejemplo n.º 3
0
 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();
     }
 }
Ejemplo n.º 4
0
Archivo: Chat.php Proyecto: Trim/movim
 /**
  * @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);
 }
Ejemplo n.º 5
0
 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;
 }
Ejemplo n.º 6
0
 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;
     }
 }
Ejemplo n.º 7
0
 private function cleanupDBSessions()
 {
     $sd = new \Modl\SessionxDAO();
     $sd->deleteEmpty();
     $pd = new \Modl\PresenceDAO();
     $pd->cleanPresences();
 }
Ejemplo n.º 8
0
 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);
 }