/** * On User delete, also delete all comments * * @param type $event */ public static function onUserDelete($event) { Yii::import('application.modules.mail.models.*'); // Delete all message entries foreach (MessageEntry::model()->findAllByAttributes(array('user_id' => $event->sender->id)) as $messageEntry) { $messageEntry->delete(); } // Leaves all my conversations foreach (UserMessage::model()->findAllByAttributes(array('user_id' => $event->sender->id)) as $userMessage) { $userMessage->message->leave($event->sender->id); } return true; }
/** * Executes the widgets */ public function run() { // Some member stats Yii::import('application.modules.mail.models.*'); $statsTotalUsers = User::model()->count(); $criteria = new CDbCriteria(); $criteria->group = 'user_id'; $criteria->condition = 'user_id IS NOT null'; $statsUserOnline = UserHttpSession::model()->count($criteria); $statsMessageEntries = 0; if (Yii::app()->moduleManager->isEnabled('mail')) { $statsMessageEntries = MessageEntry::model()->count(); } $statsUserFollow = UserFollow::model()->countByAttributes(array('object_model' => 'User')); // Render widgets view $this->render('memberStats', array('statsTotalUsers' => $statsTotalUsers, 'statsUserOnline' => $statsUserOnline, 'statsMessageEntries' => $statsMessageEntries, 'statsUserFollow' => $statsUserFollow)); }
/** * Delete Entry Id * * Users can delete the own message entries. */ public function actionDeleteEntry() { $this->forcePostRequest(); $messageEntryId = (int) Yii::app()->request->getQuery('messageEntryId'); $entry = MessageEntry::model()->findByPk($messageEntryId); // Check if message entry exists and it´s by this user if ($entry == null || $entry->user_id != Yii::app()->user->id) { throw new CHttpException(404, 'Could not find message entry!'); } $entry->message->deleteEntry($entry); if (Yii::app()->request->isAjaxRequest) { $this->htmlRedirect($this->createUrl('index', array('id' => $entry->message_id))); } else { $this->redirect($this->createUrl('index', array('id' => $entry->message_id))); } }
/** * Deletes a message, including all dependencies. */ public function delete() { foreach (MessageEntry::model()->findAllByAttributes(array('message_id' => $this->id)) as $messageEntry) { $messageEntry->delete(); } foreach (UserMessage::model()->findAllByAttributes(array('message_id' => $this->id)) as $userMessage) { $userMessage->delete(); } parent::delete(); }