Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * 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));
 }
 /**
  * Deletes message entry by given Id
  * If it's the last entry, the whole message will be deleted.
  *
  * @param MessageEntry $entry
  */
 public function deleteEntry($entry)
 {
     if ($entry->message->id == $this->id) {
         if (count($this->entries) > 1) {
             $entry->delete();
         } else {
             $this->delete();
         }
     }
 }
Example #4
0
 /**
  * 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)));
     }
 }
Example #5
0
 /**
  * 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();
 }