diff options
| author | kasimi <mail@kasimi.net> | 2017-08-24 10:36:54 +0200 |
|---|---|---|
| committer | kasimi <mail@kasimi.net> | 2017-08-24 10:39:59 +0200 |
| commit | ec2d983ab1864affc6fd5718fc2faede488301dd (patch) | |
| tree | 5c9029ea1cd7bf21b446b6e255e62c33c450fcb0 /phpBB/phpbb/notification/method | |
| parent | 1e605efaf126f5474bb1be99e7fdaed834ebb2a0 (diff) | |
| download | forums-ec2d983ab1864affc6fd5718fc2faede488301dd.tar forums-ec2d983ab1864affc6fd5718fc2faede488301dd.tar.gz forums-ec2d983ab1864affc6fd5718fc2faede488301dd.tar.bz2 forums-ec2d983ab1864affc6fd5718fc2faede488301dd.tar.xz forums-ec2d983ab1864affc6fd5718fc2faede488301dd.zip | |
[ticket/15328] Disable checkbox if notification method isn't supported
PHPBB3-15328
Diffstat (limited to 'phpBB/phpbb/notification/method')
| -rw-r--r-- | phpBB/phpbb/notification/method/email.php | 8 | ||||
| -rw-r--r-- | phpBB/phpbb/notification/method/jabber.php | 8 | ||||
| -rw-r--r-- | phpBB/phpbb/notification/method/messenger_base.php | 13 |
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) |
