diff options
Diffstat (limited to 'phpBB/includes/notifications/method/jabber.php')
-rw-r--r-- | phpBB/includes/notifications/method/jabber.php | 38 |
1 files changed, 32 insertions, 6 deletions
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(); } } |