diff options
author | Nathan Guse <nathaniel.guse@gmail.com> | 2012-09-09 10:36:22 -0500 |
---|---|---|
committer | Nathan Guse <nathaniel.guse@gmail.com> | 2012-09-09 10:36:22 -0500 |
commit | ff45c9aa7c077fc0a03c64764917d1efcccf48f4 (patch) | |
tree | f94942b4ae5d59f56ba4704e9f0552ff6f6e546c | |
parent | 4b4ea7c5cde7c9f3684ca325c110f81eda593d67 (diff) | |
download | forums-ff45c9aa7c077fc0a03c64764917d1efcccf48f4.tar forums-ff45c9aa7c077fc0a03c64764917d1efcccf48f4.tar.gz forums-ff45c9aa7c077fc0a03c64764917d1efcccf48f4.tar.bz2 forums-ff45c9aa7c077fc0a03c64764917d1efcccf48f4.tar.xz forums-ff45c9aa7c077fc0a03c64764917d1efcccf48f4.zip |
[ticket/11103] General notification email template.
PHPBB3-11103
-rw-r--r-- | phpBB/includes/notifications/method/base.php | 13 | ||||
-rw-r--r-- | phpBB/includes/notifications/method/email.php | 15 | ||||
-rw-r--r-- | phpBB/includes/notifications/method/interface.php | 2 | ||||
-rw-r--r-- | phpBB/includes/notifications/service.php | 2 | ||||
-rw-r--r-- | phpBB/includes/notifications/type/base.php | 22 | ||||
-rw-r--r-- | phpBB/includes/notifications/type/interface.php | 4 | ||||
-rw-r--r-- | phpBB/includes/notifications/type/pm.php | 16 | ||||
-rw-r--r-- | phpBB/language/en/email/notification.txt | 16 |
8 files changed, 65 insertions, 25 deletions
diff --git a/phpBB/includes/notifications/method/base.php b/phpBB/includes/notifications/method/base.php index 3ed9d3f33c..b860fcffda 100644 --- a/phpBB/includes/notifications/method/base.php +++ b/phpBB/includes/notifications/method/base.php @@ -83,19 +83,8 @@ abstract class phpbb_notifications_method_base implements phpbb_notifications_me } /** - * Basic run queue function. - * Child methods should override this function if there are more efficient methods to mass-notification + * Empty the queue */ - public function run_queue() - { - foreach ($this->queue as $notification) - { - $this->notify($notification); - } - - $this->empty_queue(); - } - protected function empty_queue() { $this->queue = array(); diff --git a/phpBB/includes/notifications/method/email.php b/phpBB/includes/notifications/method/email.php index 50df9a6c56..69546be73f 100644 --- a/phpBB/includes/notifications/method/email.php +++ b/phpBB/includes/notifications/method/email.php @@ -33,12 +33,7 @@ class phpbb_notifications_method_email extends phpbb_notifications_method_base return true; } - public function notify($notification) - { - // email the user - } - - public function run_queue() + public function notify() { if (!sizeof($this->queue)) { @@ -80,14 +75,18 @@ class phpbb_notifications_method_email extends phpbb_notifications_method_base $user = $this->service->get_user($notification->user_id); - $messenger->template('privmsg_notify', $user['user_lang']); + $messenger->template('notification', $user['user_lang']); $messenger->to($user['user_email'], $user['username']); $messenger->assign_vars(array( - 'SUBJECT' => htmlspecialchars_decode($notification->get_title()), + 'USERNAME' => $user['username'], + + 'MESSAGE' => htmlspecialchars_decode($notification->get_title()), 'U_VIEW_MESSAGE' => $notification->get_full_url(), + + 'U_UNSUBSCRIBE' => $notification->get_unsubscribe_url(), )); $messenger->send('email'); diff --git a/phpBB/includes/notifications/method/interface.php b/phpBB/includes/notifications/method/interface.php index f18d005b8b..7d7f3abcd0 100644 --- a/phpBB/includes/notifications/method/interface.php +++ b/phpBB/includes/notifications/method/interface.php @@ -21,5 +21,5 @@ if (!defined('IN_PHPBB')) */ interface phpbb_notifications_method_interface { - public function notify($notification); + public function notify(); } diff --git a/phpBB/includes/notifications/service.php b/phpBB/includes/notifications/service.php index 50ceb1584a..463798fa07 100644 --- a/phpBB/includes/notifications/service.php +++ b/phpBB/includes/notifications/service.php @@ -169,7 +169,7 @@ class phpbb_notifications_service // run the queue for each method to send notifications foreach ($notification_methods as $method) { - $method->run_queue(); + $method->notify(); } } diff --git a/phpBB/includes/notifications/type/base.php b/phpBB/includes/notifications/type/base.php index b0b8801a7e..91cc9f175a 100644 --- a/phpBB/includes/notifications/type/base.php +++ b/phpBB/includes/notifications/type/base.php @@ -120,7 +120,7 @@ abstract class phpbb_notifications_type_base implements phpbb_notifications_type ), $options); $template->assign_block_vars($options['template_block'], array( - 'TITLE' => $this->get_title(), + 'TITLE' => $this->get_formatted_title(), 'URL' => $this->get_url(), 'TIME' => $user->format_date($this->time), @@ -173,4 +173,24 @@ abstract class phpbb_notifications_type_base implements phpbb_notifications_type return $data; } + + /** + * Get the formatted title of this notification (fall-back) + * + * @return string + */ + public function get_formatted_title() + { + return $this->get_title(); + } + + /** + * URL to unsubscribe to this notification + * + * @param string|bool $method Method name to unsubscribe from (email|jabber|etc), False to unsubscribe from all notifications for this item + */ + public function get_unsubscribe_url($method = false) + { + return false; + } } diff --git a/phpBB/includes/notifications/type/interface.php b/phpBB/includes/notifications/type/interface.php index 85fe41f6ef..c165815835 100644 --- a/phpBB/includes/notifications/type/interface.php +++ b/phpBB/includes/notifications/type/interface.php @@ -29,9 +29,13 @@ interface phpbb_notifications_type_interface public function get_title(); + public function get_formatted_title(); + public function get_url(); public function get_full_url(); + public function get_unsubscribe_url($method); + public function create_insert_array($type_data); } diff --git a/phpBB/includes/notifications/type/pm.php b/phpBB/includes/notifications/type/pm.php index 8b8f41d1c2..702ec39c16 100644 --- a/phpBB/includes/notifications/type/pm.php +++ b/phpBB/includes/notifications/type/pm.php @@ -89,11 +89,11 @@ class phpbb_notifications_type_pm extends phpbb_notifications_type_base } /** - * Get the title of this notification + * Get the HTML formatted title of this notification * * @return string */ - public function get_title() + public function get_formatted_title() { $user_data = $this->service->get_user($this->get_data('from_user_id')); @@ -103,6 +103,18 @@ class phpbb_notifications_type_pm extends phpbb_notifications_type_base } /** + * Get the plain text title of this notification + * + * @return string + */ + public function get_title() + { + $user_data = $this->service->get_user($this->get_data('from_user_id')); + + return $user_data['username'] . ' sent you a private message titled: ' . $this->get_data('message_subject'); + } + + /** * Get the url to this item * * @return string URL diff --git a/phpBB/language/en/email/notification.txt b/phpBB/language/en/email/notification.txt new file mode 100644 index 0000000000..ed35e96c85 --- /dev/null +++ b/phpBB/language/en/email/notification.txt @@ -0,0 +1,16 @@ +Subject: Notification from {SITENAME} + +Hello {USERNAME}, + +{MESSAGE} + +You can view this by clicking on the following link: + +{U_VIEW_MESSAGE} + +<!-- IF U_UNSUBSCRIBE --> +You may unsubscribe by clicking on the following link: +{U_UNSUBSCRIBE} +<!-- ENDIF --> + +{EMAIL_SIG}
\ No newline at end of file |