diff options
Diffstat (limited to 'phpBB/phpbb/notification')
| -rw-r--r-- | phpBB/phpbb/notification/manager.php | 8 | ||||
| -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 | 
4 files changed, 36 insertions, 7 deletions
diff --git a/phpBB/phpbb/notification/manager.php b/phpBB/phpbb/notification/manager.php index 6923d96392..1cd7e5bc9a 100644 --- a/phpBB/phpbb/notification/manager.php +++ b/phpBB/phpbb/notification/manager.php @@ -475,9 +475,10 @@ class manager  				if ($type instanceof \phpbb\notification\type\type_interface && $type->is_available())  				{  					$options = array_merge(array( -						'id' => $type->get_type(), -						'lang' => 'NOTIFICATION_TYPE_' . strtoupper($type->get_type()), -						'group' => 'NOTIFICATION_GROUP_MISCELLANEOUS', +						'type'	=> $type, +						'id'	=> $type->get_type(), +						'lang'	=> 'NOTIFICATION_TYPE_' . strtoupper($type->get_type()), +						'group'	=> 'NOTIFICATION_GROUP_MISCELLANEOUS',  					), (($type::$notification_option !== false) ? $type::$notification_option : array()));  					$this->subscription_types[$options['group']][$options['id']] = $options; @@ -509,6 +510,7 @@ class manager  		foreach ($this->get_available_subscription_methods() as $method_name => $method)  		{  			$subscription_methods[$method_name] = array( +				'method'	=> $method,  				'id'		=> $method->get_type(),  				'lang'		=> str_replace('.', '_', strtoupper($method->get_type())),  			); 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)  | 
