From d86eacf9b44466db3b445eb9dcb3da5cb9072cb8 Mon Sep 17 00:00:00 2001 From: Charlie Date: Fri, 3 Mar 2017 11:43:22 -0800 Subject: [PATCH] Potential all users fix, add forum name var --- .../Controller/SendAdminEmailController.php | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/Api/Controller/SendAdminEmailController.php b/src/Api/Controller/SendAdminEmailController.php index ebcd24a..46a94ff 100644 --- a/src/Api/Controller/SendAdminEmailController.php +++ b/src/Api/Controller/SendAdminEmailController.php @@ -59,26 +59,35 @@ public function handle(ServerRequestInterface $request) if ($actor !== null && $actor->isAdmin()) { $data = array_get($request->getParsedBody(), 'data', []); + $this->replaceStrings($subject if (isset($data['forAll']) && !empty($data['forAll'])) { $users = $this->users->query()->whereVisibleTo($actor)->get(); foreach ($users as $user) { - $this->sendMail($user->email, $data['subject'], $data['text'], $user->username); + $this->sendMail($user->email, $this->replaceStrings($data['subject'], $user->username), $this->replaceStrings($data['text'], $user->username)); } } else { foreach ($data['emails'] as $email) { - $this->sendMail($email, $data['subject'], $data['text'], $data['username']); } + $this->sendMail($email, $this->replaceStrings($data['subject'], $data['username']), $this->replaceStrings($data['text'], $data['username'])); } } } return new EmptyResponse; } - protected function sendMail($email, $subject, $text, $user) + protected function replaceStrings($input, $user) { - $varText = str_replace("!!user!!", $user, $text); - $this->mailer->send('issyrocks12-userlist::default', ['text' => $varText], function (Message $message) use ($email, $subject) { + $varText = str_replace(array("\r\n", "\n\r", "\r", "\n"), "
", $input); + $varText = str_replace("!!user!!", $user, $varText); + $varText = str_replace("!!forum_name!!", $this->settings->get('forum_title'), $varText); + return $varText; + } + + protected function sendMail($email, $subject, $text) + { + $this->mailer->send('issyrocks12-userlist::default', ['text' => $text], function (Message $message) use ($email, $subject) { $message->to($email); - $message->subject('[' . $this->settings->get('forum_title') . '] ' . ($subject !== '' ? $subject : $this->translator->trans('issyrocks12-users-list.email.default_subject'))); + $message->subject(($subject !== '' ? $subject : $this->translator->trans('issyrocks12-users-list.email.default_subject'))); }); } } +{