From 26ccbc61e07d06bb86d2de9fc4770b1a8a7acd68 Mon Sep 17 00:00:00 2001 From: coderkun Date: Tue, 27 May 2014 11:43:53 +0200 Subject: [PATCH] add e?mail notifcation for approved Quests (resolves issue #298) --- controllers/MailController.inc | 24 ++++++++++++ controllers/QuestsController.inc | 37 ++++++++++++++++++ locale/de_DE/LC_MESSAGES/The Legend of Z.mo | Bin 16284 -> 16530 bytes locale/de_DE/LC_MESSAGES/The Legend of Z.po | 19 ++++++--- .../mail/charactersubmissionapproved.tpl | 2 + .../mail/charactersubmissionapproved.tpl | 2 + 6 files changed, 78 insertions(+), 6 deletions(-) create mode 100644 views/htmlmail/mail/charactersubmissionapproved.tpl create mode 100644 views/textmail/mail/charactersubmissionapproved.tpl diff --git a/controllers/MailController.inc b/controllers/MailController.inc index f4696091..bcc4307d 100644 --- a/controllers/MailController.inc +++ b/controllers/MailController.inc @@ -106,6 +106,30 @@ $this->set('character', $character); } + + /** + * Action: charactersubmissionapproved. + * + * Generate a mail message to notify a Character that its + * submission has been approved. + * + * @param array $receiver User that the message will be send to + * @param array $seminary Seminary which the Quest belongs to + * @param array $questgroup Questgroup of Quest + * @param array $quest Quest the answer has been submitted for + */ + public function charactersubmissionapproved($receiver, $seminary, $questgroup, $quest) + { + // Set subject + $this->response->setSubject(_('Character submission approved')); + + + // Pass data to view + $this->set('seminary', $seminary); + $this->set('questgroup', $questgroup); + $this->set('quest', $quest); + } + } ?> diff --git a/controllers/QuestsController.inc b/controllers/QuestsController.inc index 4b23d8af..61f5bb8a 100644 --- a/controllers/QuestsController.inc +++ b/controllers/QuestsController.inc @@ -746,6 +746,9 @@ // Save additional data for Character answers $questtypeAgent->controller->saveDataForCharacterAnswers($seminary, $questgroup, $quest, $character, $this->request->getPostParam('characterdata')); + // Send notification + $this->sendSubmissionApprovedMail($character, $seminary, $questgroup, $quest); + // Redirect $this->redirect($this->linker->link(array('submissions', $seminary['url'], $questgroup['url'], $quest['url']), 1)); } @@ -890,6 +893,40 @@ } } + + /** + * Send mail for approval of a Character submission. + * + * @param array $character Character of submission that has been approved + * @param array $seminary Seminary which the Quest belongs to + * @param array $questgroup Questgroup of Quest + * @param array $quest Quest the submission has been approved for + */ + private function sendSubmissionApprovedMail($character, $seminary, $questgroup, $quest) + { + // Get user + $user = $this->Users->getUserById($character['user_id']); + + // Send notification mail + try { + \hhu\z\Utils::sendMail( + $user['email'], + 'charactersubmissionapproved', + true, + array( + $user, + $seminary, + $questgroup, + $quest + ), + $this->linker + ); + } + catch(\hhu\z\exceptions\MailingException $e) { + $this->log($e->getMessage()); + } + } + } ?> diff --git a/locale/de_DE/LC_MESSAGES/The Legend of Z.mo b/locale/de_DE/LC_MESSAGES/The Legend of Z.mo index 0e3f0964d902c00bb9f0f8597660a1f63b26a9ff..a81cb049e7d511cf653aec86eb09c837f6301285 100644 GIT binary patch delta 5469 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 K;+qrfY#0Hg5i~>q delta 5344 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: +//// diff --git a/views/textmail/mail/charactersubmissionapproved.tpl b/views/textmail/mail/charactersubmissionapproved.tpl new file mode 100644 index 00000000..309645af --- /dev/null +++ b/views/textmail/mail/charactersubmissionapproved.tpl @@ -0,0 +1,2 @@ +. +link(array('quests','quest',$seminary['url'],$questgroup['url'],$quest['url']),0,true,null,false,null,true)?>