1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-12 03:34:04 +02:00

[ticket/15328] Disable checkbox if notification method isn't supported

PHPBB3-15328
This commit is contained in:
kasimi
2017-08-24 10:36:54 +02:00
parent 1e605efaf1
commit ec2d983ab1
6 changed files with 36 additions and 11 deletions

View File

@@ -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'];
}
/**

View File

@@ -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'];
}
/**

View File

@@ -42,6 +42,19 @@ abstract class messenger_base extends \phpbb\notification\method\base
$this->php_ext = $php_ext;
}
/**
* 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
*