aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/notification/method
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/phpbb/notification/method')
-rw-r--r--phpBB/phpbb/notification/method/email.php8
-rw-r--r--phpBB/phpbb/notification/method/jabber.php8
-rw-r--r--phpBB/phpbb/notification/method/messenger_base.php13
3 files changed, 25 insertions, 4 deletions
diff --git a/phpBB/phpbb/notification/method/email.php b/phpBB/phpbb/notification/method/email.php
index 21a6559012..b330aa9da8 100644
--- a/phpBB/phpbb/notification/method/email.php
+++ b/phpBB/phpbb/notification/method/email.php
@@ -56,10 +56,14 @@ class email extends \phpbb\notification\method\messenger_base
/**
* Is this method available for the user?
* This is checked on the notifications options
+ *
+ * @param \phpbb\notification\type\type_interface $notification_type An optional instance of a notification type. If provided, this
+ * method additionally checks if the type provides an email template.
+ * @return bool
*/
- public function is_available()
+ public function is_available(\phpbb\notification\type\type_interface $notification_type = null)
{
- return $this->config['email_enable'] && $this->user->data['user_email'];
+ return parent::is_available($notification_type) && $this->config['email_enable'] && $this->user->data['user_email'];
}
/**
diff --git a/phpBB/phpbb/notification/method/jabber.php b/phpBB/phpbb/notification/method/jabber.php
index 509c6b432c..4b461a5da3 100644
--- a/phpBB/phpbb/notification/method/jabber.php
+++ b/phpBB/phpbb/notification/method/jabber.php
@@ -56,10 +56,14 @@ class jabber extends \phpbb\notification\method\messenger_base
/**
* Is this method available for the user?
* This is checked on the notifications options
+ *
+ * @param \phpbb\notification\type\type_interface $notification_type An optional instance of a notification type. If provided, this
+ * method additionally checks if the type provides an email template.
+ * @return bool
*/
- public function is_available()
+ public function is_available(\phpbb\notification\type\type_interface $notification_type = null)
{
- return ($this->global_available() && $this->user->data['user_jabber']);
+ return parent::is_available($notification_type) && $this->global_available() && $this->user->data['user_jabber'];
}
/**
diff --git a/phpBB/phpbb/notification/method/messenger_base.php b/phpBB/phpbb/notification/method/messenger_base.php
index 1f5525accc..7c99085a95 100644
--- a/phpBB/phpbb/notification/method/messenger_base.php
+++ b/phpBB/phpbb/notification/method/messenger_base.php
@@ -43,6 +43,19 @@ abstract class messenger_base extends \phpbb\notification\method\base
}
/**
+ * Is this method available for the user?
+ * This is checked on the notifications options
+ *
+ * @param \phpbb\notification\type\type_interface $notification_type An optional instance of a notification type. This method returns false
+ * only if the type is provided and if it doesn't provide an email template.
+ * @return bool
+ */
+ public function is_available(\phpbb\notification\type\type_interface $notification_type = null)
+ {
+ return $notification_type === null || $notification_type->get_email_template() !== false;
+ }
+
+ /**
* Notify using phpBB messenger
*
* @param int $notify_method Notify method for messenger (e.g. NOTIFY_IM)