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 @@ -23,11 +23,18 @@ 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() { - // Is jabber enabled & can this user receive jabber messages? - return false; // for now + 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() + { + $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(); } }