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); }
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); }