Esempio n. 1
0
 /**
  * Pre-delete hook. If overridden, should be called at end of function.
  *
  * @return void
  */
 protected function _delete()
 {
     if ($this->_disableHooks) {
         return;
     }
     parent::_delete();
     Engine_Hooks_Dispatcher::getInstance()->callEvent('on' . $this->getType(true) . 'DeleteBefore', $this);
     Engine_Hooks_Dispatcher::getInstance()->callEvent('onItemDeleteBefore', $this);
     // Unindex from search
     Engine_Api::_()->getApi('search', 'core')->unindex($this);
 }
Esempio n. 2
0
 protected function _delete()
 {
     $ids = $this->getUsersToBeNotifiedOfPresence();
     if (!empty($ids)) {
         // Announce presence to all online friends
         $eventTable = Engine_Api::_()->getDbtable('events', 'chat');
         foreach ($ids as $id) {
             $eventTable->insert(array('user_id' => $id, 'date' => date('Y-m-d H:i:s'), 'type' => 'presence', 'body' => array('user_id' => $this->user_id, 'state' => '0')));
         }
         // Increment event count for each user
         Engine_Api::_()->getDbtable('users', 'chat')->update(array('event_count' => new Zend_Db_Expr('event_count+1')), array('user_id IN(\'' . join("', '", $ids) . '\')'));
         // Do rooms now
         foreach ($this->getRoomUsers() as $roomuser) {
             $roomuser->delete();
         }
     }
     parent::_delete();
 }
Esempio n. 3
0
 protected function _delete()
 {
     // Decrement room user count
     $room = $this->getRoom();
     //$room->user_count--;
     if (null !== $room) {
         $room->user_count = new Zend_Db_Expr('user_count - 1');
         $room->save();
         // Announce loss of prescence
         $ids = $this->getRoom()->getUserIds();
         // Remove self
         if (false !== ($index = array_search($this->user_id, $ids))) {
             unset($ids[$index]);
         }
         if (!empty($ids)) {
             $eventTable = Engine_Api::_()->getDbtable('events', 'chat');
             foreach ($ids as $id) {
                 $eventTable->createRow()->setFromArray(array('user_id' => $id, 'date' => date('Y-m-d H:i:s'), 'type' => 'grouppresence', 'body' => array('room_id' => $this->room_id, 'user_id' => $this->user_id, 'state' => '0')))->save();
             }
             // Increment event count for each user
             Engine_Api::_()->getDbtable('users', 'chat')->update(array('event_count' => new Zend_Db_Expr('event_count+1')), array('user_id IN(\'' . join("', '", $ids) . '\')'));
         }
     }
     parent::_delete();
 }