Beispiel #1
0
 protected function beforeSubmit(&$response, &$model, &$params)
 {
     $message = new \GO\Base\Mail\Message();
     $message->handleEmailFormInput($params);
     $model->content = $message->toString();
     return parent::beforeSubmit($response, $model, $params);
 }
Beispiel #2
0
 public function notifyUser()
 {
     $notifications = FolderNotificationMessage::getNotifications();
     if (empty($notifications)) {
         return false;
     }
     //userCache
     $users = array();
     $messages = array();
     foreach ($notifications as $notification) {
         if (!isset($messages[$notification->type])) {
             $messages[$notification->type] = array();
         }
         if (!isset($users[$notification->modified_user_id])) {
             $user = \GO::user()->findByPk($notification->modified_user_id);
             if ($user) {
                 $users[$notification->modified_user_id] = $user->getName();
             } else {
                 $users[$notification->modified_user_id] = \GO::t('deletedUser', 'files');
             }
         }
         switch ($notification->type) {
             case FolderNotificationMessage::ADD_FOLDER:
                 $messages[$notification->type][] = sprintf(\GO::t('notifyFolderAdd', 'files'), $notification->arg1, $notification->arg2, $users[$notification->modified_user_id]);
                 break;
             case FolderNotificationMessage::RENAME_FOLDER:
                 $messages[$notification->type][] = sprintf(\GO::t('notifyFolderRename', 'files'), $notification->arg1, $notification->arg2, $users[$notification->modified_user_id]);
                 break;
             case FolderNotificationMessage::MOVE_FOLDER:
                 $messages[$notification->type][] = sprintf(\GO::t('notifyFolderMove', 'files'), $notification->arg1, $notification->arg2, $users[$notification->modified_user_id]);
                 break;
             case FolderNotificationMessage::DELETE_FOLDER:
                 $messages[$notification->type][] = sprintf(\GO::t('notifyFolderDelete', 'files'), $notification->arg1, $users[$notification->modified_user_id]);
                 break;
             case FolderNotificationMessage::ADD_FILE:
                 $messages[$notification->type][] = sprintf(\GO::t('notifyFileAdd', 'files'), $notification->arg1, $notification->arg2, $users[$notification->modified_user_id]);
                 break;
             case FolderNotificationMessage::RENAME_FILE:
                 $messages[$notification->type][] = sprintf(\GO::t('notifyFileRename', 'files'), $notification->arg1, $notification->arg2, $users[$notification->modified_user_id]);
                 break;
             case FolderNotificationMessage::MOVE_FILE:
                 $messages[$notification->type][] = sprintf(\GO::t('notifyFileMove', 'files'), $notification->arg1, $notification->arg2, $users[$notification->modified_user_id]);
                 break;
             case FolderNotificationMessage::DELETE_FILE:
                 $messages[$notification->type][] = sprintf(\GO::t('notifyFileDelete', 'files'), $notification->arg1, $users[$notification->modified_user_id]);
                 break;
             case FolderNotificationMessage::UPDATE_FILE:
                 $messages[$notification->type][] = sprintf(\GO::t('notifyFileUpdate', 'files'), $notification->arg1, $users[$notification->modified_user_id]);
                 break;
         }
         //switch status of notification to sent
         //$notification->status = 1;
         //$notification->save();
         $notification->delete();
     }
     //TODO: create emailBody
     $emailBody = '';
     $types = array_keys($messages);
     foreach ($types as $type) {
         foreach ($messages[$type] as $message) {
             $emailBody .= $message . "\n";
         }
     }
     $message = new \GO\Base\Mail\Message();
     $message->setSubject(\GO::t('notificationEmailSubject', 'files'))->setTo(array(\GO::user()->email => \GO::user()->name))->setFrom(array(\GO::config()->webmaster_email => \GO::config()->title))->setBody($emailBody);
     \GO\Base\Mail\Mailer::newGoInstance()->send($message);
 }