diff options
Diffstat (limited to 'phpBB/includes/notification/method')
-rw-r--r-- | phpBB/includes/notification/method/base.php | 116 | ||||
-rw-r--r-- | phpBB/includes/notification/method/email.php | 52 | ||||
-rw-r--r-- | phpBB/includes/notification/method/interface.php | 48 | ||||
-rw-r--r-- | phpBB/includes/notification/method/jabber.php | 69 | ||||
-rw-r--r-- | phpBB/includes/notification/method/messenger_base.php | 100 |
5 files changed, 0 insertions, 385 deletions
diff --git a/phpBB/includes/notification/method/base.php b/phpBB/includes/notification/method/base.php deleted file mode 100644 index b633956d01..0000000000 --- a/phpBB/includes/notification/method/base.php +++ /dev/null @@ -1,116 +0,0 @@ -<?php -/** -* -* @package notifications -* @copyright (c) 2012 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** -* Base notifications method class -* @package notifications -*/ -abstract class phpbb_notification_method_base implements phpbb_notification_method_interface -{ - /** @var phpbb_notification_manager */ - protected $notification_manager; - - /** @var phpbb_user_loader */ - protected $user_loader; - - /** @var phpbb_db_driver */ - protected $db; - - /** @var phpbb_cache_driver_interface */ - protected $cache; - - /** @var phpbb_template */ - protected $template; - - /** @var phpbb_extension_manager */ - protected $extension_manager; - - /** @var phpbb_user */ - protected $user; - - /** @var phpbb_auth */ - protected $auth; - - /** @var phpbb_config */ - protected $config; - - /** @var string */ - protected $phpbb_root_path; - - /** @var string */ - protected $php_ext; - - /** - * Queue of messages to be sent - * - * @var array - */ - protected $queue = array(); - - /** - * Notification Method Base Constructor - * - * @param phpbb_user_loader $user_loader - * @param phpbb_db_driver $db - * @param phpbb_cache_driver_interface $cache - * @param phpbb_user $user - * @param phpbb_auth $auth - * @param phpbb_config $config - * @param string $phpbb_root_path - * @param string $php_ext - * @return phpbb_notification_method_base - */ - public function __construct(phpbb_user_loader $user_loader, phpbb_db_driver $db, phpbb_cache_driver_interface $cache, $user, phpbb_auth $auth, phpbb_config $config, $phpbb_root_path, $php_ext) - { - $this->user_loader = $user_loader; - $this->db = $db; - $this->cache = $cache; - $this->user = $user; - $this->auth = $auth; - $this->config = $config; - $this->phpbb_root_path = $phpbb_root_path; - $this->php_ext = $php_ext; - } - - /** - * Set notification manager (required) - * - * @param phpbb_notification_manager $notification_manager - */ - public function set_notification_manager(phpbb_notification_manager $notification_manager) - { - $this->notification_manager = $notification_manager; - } - - /** - * Add a notification to the queue - * - * @param phpbb_notification_type_interface $notification - */ - public function add_to_queue(phpbb_notification_type_interface $notification) - { - $this->queue[] = $notification; - } - - /** - * Empty the queue - */ - protected function empty_queue() - { - $this->queue = array(); - } -} diff --git a/phpBB/includes/notification/method/email.php b/phpBB/includes/notification/method/email.php deleted file mode 100644 index 571b0ec656..0000000000 --- a/phpBB/includes/notification/method/email.php +++ /dev/null @@ -1,52 +0,0 @@ -<?php -/** -* -* @package notifications -* @copyright (c) 2012 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** -* Email notification method class -* This class handles sending emails for notifications -* -* @package notifications -*/ -class phpbb_notification_method_email extends phpbb_notification_method_messenger_base -{ - /** - * Get notification method name - * - * @return string - */ - public function get_type() - { - return 'email'; - } - - /** - * Is this method available for the user? - * This is checked on the notifications options - */ - public function is_available() - { - return $this->config['email_enable'] && $this->user->data['user_email']; - } - - /** - * Parse the queue and notify the users - */ - public function notify() - { - return $this->notify_using_messenger(NOTIFY_EMAIL); - } -} diff --git a/phpBB/includes/notification/method/interface.php b/phpBB/includes/notification/method/interface.php deleted file mode 100644 index ef875942cc..0000000000 --- a/phpBB/includes/notification/method/interface.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -/** -* -* @package notifications -* @copyright (c) 2012 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** -* Base notifications method interface -* @package notifications -*/ -interface phpbb_notification_method_interface -{ - /** - * Get notification method name - * - * @return string - */ - public function get_type(); - - /** - * Is this method available for the user? - * This is checked on the notifications options - */ - public function is_available(); - - /** - * Add a notification to the queue - * - * @param phpbb_notification_type_interface $notification - */ - public function add_to_queue(phpbb_notification_type_interface $notification); - - /** - * Parse the queue and notify the users - */ - public function notify(); -} diff --git a/phpBB/includes/notification/method/jabber.php b/phpBB/includes/notification/method/jabber.php deleted file mode 100644 index d3b756d020..0000000000 --- a/phpBB/includes/notification/method/jabber.php +++ /dev/null @@ -1,69 +0,0 @@ -<?php -/** -* -* @package notifications -* @copyright (c) 2012 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** -* Jabber notification method class -* This class handles sending Jabber messages for notifications -* -* @package notifications -*/ -class phpbb_notification_method_jabber extends phpbb_notification_method_messenger_base -{ - /** - * Get notification method name - * - * @return string - */ - public function get_type() - { - return 'jabber'; - } - - /** - * Is this method available for the user? - * This is checked on the notifications options - */ - public function is_available() - { - return ($this->global_available() && $this->user->data['user_jabber']); - } - - /** - * Is this method available at all? - * This is checked before notifications are sent - */ - public function global_available() - { - return !( - empty($this->config['jab_enable']) || - empty($this->config['jab_host']) || - empty($this->config['jab_username']) || - empty($this->config['jab_password']) || - !@extension_loaded('xml') - ); - } - - public function notify() - { - if (!$this->global_available()) - { - return; - } - - return $this->notify_using_messenger(NOTIFY_IM, 'short/'); - } -} diff --git a/phpBB/includes/notification/method/messenger_base.php b/phpBB/includes/notification/method/messenger_base.php deleted file mode 100644 index 4966aa94bc..0000000000 --- a/phpBB/includes/notification/method/messenger_base.php +++ /dev/null @@ -1,100 +0,0 @@ -<?php -/** -* -* @package notifications -* @copyright (c) 2012 phpBB Group -* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -/** -* Abstract notification method handling email and jabber notifications -* using the phpBB messenger. -* -* @package notifications -*/ -abstract class phpbb_notification_method_messenger_base extends phpbb_notification_method_base -{ - /** - * Notify using phpBB messenger - * - * @param int $notify_method Notify method for messenger (e.g. NOTIFY_IM) - * @param string $template_dir_prefix Base directory to prepend to the email template name - * - * @return null - */ - protected function notify_using_messenger($notify_method, $template_dir_prefix = '') - { - if (empty($this->queue)) - { - return; - } - - // Load all users we want to notify (we need their email address) - $user_ids = $users = array(); - foreach ($this->queue as $notification) - { - $user_ids[] = $notification->user_id; - } - - // We do not send emails to banned users - if (!function_exists('phpbb_get_banned_user_ids')) - { - include($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext); - } - $banned_users = phpbb_get_banned_user_ids($user_ids); - - // Load all the users we need - $this->user_loader->load_users($user_ids); - - // Load the messenger - if (!class_exists('messenger')) - { - include($this->phpbb_root_path . 'includes/functions_messenger.' . $this->php_ext); - } - $messenger = new messenger(); - $board_url = generate_board_url(); - - // Time to go through the queue and send emails - foreach ($this->queue as $notification) - { - if ($notification->get_email_template() === false) - { - continue; - } - - $user = $this->user_loader->get_user($notification->user_id); - - if ($user['user_type'] == USER_IGNORE || in_array($notification->user_id, $banned_users)) - { - continue; - } - - $messenger->template($template_dir_prefix . $notification->get_email_template(), $user['user_lang']); - - $messenger->set_addresses($user); - - $messenger->assign_vars(array_merge(array( - 'USERNAME' => $user['username'], - - 'U_NOTIFICATION_SETTINGS' => generate_board_url() . '/ucp.' . $this->php_ext . '?i=ucp_notifications', - ), $notification->get_email_template_variables())); - - $messenger->send($notify_method); - } - - // Save the queue in the messenger class (has to be called or these emails could be lost?) - $messenger->save_queue(); - - // We're done, empty the queue - $this->empty_queue(); - } -} |