diff options
Diffstat (limited to 'phpBB')
| -rw-r--r-- | phpBB/includes/notifications/method/email.php | 11 | ||||
| -rw-r--r-- | phpBB/includes/notifications/method/interface.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/notifications/method/jabber.php | 38 | 
3 files changed, 43 insertions, 8 deletions
| diff --git a/phpBB/includes/notifications/method/email.php b/phpBB/includes/notifications/method/email.php index d6468c9dc3..1bcea13d92 100644 --- a/phpBB/includes/notifications/method/email.php +++ b/phpBB/includes/notifications/method/email.php @@ -24,10 +24,17 @@ if (!defined('IN_PHPBB'))  class phpbb_notifications_method_email extends phpbb_notifications_method_base  {  	/** +	* Notify method (since jabber gets sent through the same messenger, we let the jabber class inherit from this to reduce code duplication) +	* +	* @var mixed +	*/ +	protected $notify_method = NOTIFY_EMAIL; + +	/**  	* Is this method available for the user?  	* This is checked on the notifications options  	*/ -	public static function is_available() +	public function is_available()  	{  		// Email is always available  		return true; @@ -89,7 +96,7 @@ class phpbb_notifications_method_email extends phpbb_notifications_method_base  				'U_UNSUBSCRIBE'		=> $notification->get_unsubscribe_url(),  			)); -			$messenger->send('email'); +			$messenger->send($this->notify_method);  		}  		// Save the queue in the messenger class (has to be called or these emails could be lost?) diff --git a/phpBB/includes/notifications/method/interface.php b/phpBB/includes/notifications/method/interface.php index 7d7f3abcd0..820cf4fc12 100644 --- a/phpBB/includes/notifications/method/interface.php +++ b/phpBB/includes/notifications/method/interface.php @@ -21,5 +21,7 @@ if (!defined('IN_PHPBB'))  */  interface phpbb_notifications_method_interface  { +	public function is_available(); +  	public function notify();  } diff --git a/phpBB/includes/notifications/method/jabber.php b/phpBB/includes/notifications/method/jabber.php index 15614db96c..738400a50e 100644 --- a/phpBB/includes/notifications/method/jabber.php +++ b/phpBB/includes/notifications/method/jabber.php @@ -17,20 +17,46 @@ if (!defined('IN_PHPBB'))  /**  * Jabber notification method class -* This class handles sending Jabber notifications for notifications +* This class handles sending Jabber messages for notifications  *  * @package notifications  */ -class phpbb_notifications_method_jabber extends phpbb_notifications_method_base +class phpbb_notifications_method_jabber extends phpbb_notifications_method_email  { -	public static function is_available() +	/** +	* Notify method (since jabber gets sent through the same messenger, we let the jabber class inherit from this to reduce code duplication) +	* +	* @var mixed +	*/ +	protected $notify_method = NOTIFY_IM; + +	/** +	* Is this method available for the user? +	* This is checked on the notifications options +	*/ +	public function is_available() +	{ +		return ($this->global_available() && $this->phpbb_container->get('user')->data['jabber']); +	} + +	/** +	* Is this method available at all? +	* This is checked before notifications are sent +	*/ +	public function global_available()  	{ -		// Is jabber enabled & can this user receive jabber messages? -		return false; // for now +		$config = $this->phpbb_container->get('config'); + +		return ($config['jab_enable'] && @extension_loaded('xml'));  	}  	public function notify()  	{ -		// message the user +		if (!$this->global_available()) +		{ +			return; +		} + +		return parent::notify();  	}  } | 
