[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 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? * Is this method available for the user?
* This is checked on the notifications options * This is checked on the notifications options
*/ */
public static function is_available() public function is_available()
{ {
// Email is always available // Email is always available
return true; return true;
@ -89,7 +96,7 @@ class phpbb_notifications_method_email extends phpbb_notifications_method_base
'U_UNSUBSCRIBE' => $notification->get_unsubscribe_url(), '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?) // 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 interface phpbb_notifications_method_interface
{ {
public function is_available();
public function notify(); public function notify();
} }

View file

@ -17,20 +17,46 @@ if (!defined('IN_PHPBB'))
/** /**
* Jabber notification method class * Jabber notification method class
* This class handles sending Jabber notifications for notifications * This class handles sending Jabber messages for notifications
* *
* @package 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 ($this->global_available() && $this->phpbb_container->get('user')->data['jabber']);
return false; // for now }
/**
* 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() public function notify()
{ {
// message the user if (!$this->global_available())
{
return;
}
return parent::notify();
} }
} }