aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Guse <nathaniel.guse@gmail.com>2012-09-09 10:36:22 -0500
committerNathan Guse <nathaniel.guse@gmail.com>2012-09-09 10:36:22 -0500
commitff45c9aa7c077fc0a03c64764917d1efcccf48f4 (patch)
treef94942b4ae5d59f56ba4704e9f0552ff6f6e546c
parent4b4ea7c5cde7c9f3684ca325c110f81eda593d67 (diff)
downloadforums-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.php13
-rw-r--r--phpBB/includes/notifications/method/email.php15
-rw-r--r--phpBB/includes/notifications/method/interface.php2
-rw-r--r--phpBB/includes/notifications/service.php2
-rw-r--r--phpBB/includes/notifications/type/base.php22
-rw-r--r--phpBB/includes/notifications/type/interface.php4
-rw-r--r--phpBB/includes/notifications/type/pm.php16
-rw-r--r--phpBB/language/en/email/notification.txt16
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