diff options
Diffstat (limited to 'phpBB/phpbb/notification/method')
| -rw-r--r-- | phpBB/phpbb/notification/method/email.php | 10 | ||||
| -rw-r--r-- | phpBB/phpbb/notification/method/jabber.php | 10 | ||||
| -rw-r--r-- | phpBB/phpbb/notification/method/messenger_base.php | 15 | 
3 files changed, 31 insertions, 4 deletions
diff --git a/phpBB/phpbb/notification/method/email.php b/phpBB/phpbb/notification/method/email.php index 21a6559012..56dd1e9367 100644 --- a/phpBB/phpbb/notification/method/email.php +++ b/phpBB/phpbb/notification/method/email.php @@ -13,6 +13,8 @@  namespace phpbb\notification\method; +use phpbb\notification\type\type_interface; +  /**  * Email notification method class  * This class handles sending emails for notifications @@ -56,10 +58,14 @@ class email extends \phpbb\notification\method\messenger_base  	/**  	* Is this method available for the user?  	* This is checked on the notifications options +	* +	* @param 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(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..81fdb378e2 100644 --- a/phpBB/phpbb/notification/method/jabber.php +++ b/phpBB/phpbb/notification/method/jabber.php @@ -13,6 +13,8 @@  namespace phpbb\notification\method; +use phpbb\notification\type\type_interface; +  /**  * Jabber notification method class  * This class handles sending Jabber messages for notifications @@ -56,10 +58,14 @@ class jabber extends \phpbb\notification\method\messenger_base  	/**  	* Is this method available for the user?  	* This is checked on the notifications options +	* +	* @param 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(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..32e79aa936 100644 --- a/phpBB/phpbb/notification/method/messenger_base.php +++ b/phpBB/phpbb/notification/method/messenger_base.php @@ -13,6 +13,8 @@  namespace phpbb\notification\method; +use phpbb\notification\type\type_interface; +  /**  * Abstract notification method handling email and jabber notifications  * using the phpBB messenger. @@ -43,6 +45,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 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(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)  | 
