[ticket/11103] Jabber notification method

PHPBB3-11103
This commit is contained in:
Nathan Guse 2012-09-12 23:03:26 -05:00
parent 48cb98045e
commit 97fde62b14
3 changed files with 43 additions and 8 deletions

View file

@ -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?)

View file

@ -21,5 +21,7 @@ if (!defined('IN_PHPBB'))
*/
interface phpbb_notifications_method_interface
{
public function is_available();
public function notify();
}

View file

@ -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();
}
}