/** * 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); }
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(); }
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(); }