diff options
Diffstat (limited to 'phpBB/includes')
-rw-r--r-- | phpBB/includes/message/admin_form.php | 118 | ||||
-rw-r--r-- | phpBB/includes/message/form.php | 119 | ||||
-rw-r--r-- | phpBB/includes/message/message.php | 186 | ||||
-rw-r--r-- | phpBB/includes/message/topic_form.php | 150 | ||||
-rw-r--r-- | phpBB/includes/message/user_form.php | 111 |
5 files changed, 0 insertions, 684 deletions
diff --git a/phpBB/includes/message/admin_form.php b/phpBB/includes/message/admin_form.php deleted file mode 100644 index a27b281535..0000000000 --- a/phpBB/includes/message/admin_form.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php -/** -* -* @package email -* @copyright (c) 2011 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -class phpbb_message_admin_form extends phpbb_message_form -{ - protected $subject; - protected $sender_name; - protected $sender_address; - - public function check_allow() - { - $error = parent::check_allow(); - if ($error) - { - return $error; - } - - if (!$this->config['contact_admin_form_enable']) /** TODO: && !$this->config['contact_admin_info']) */ - { - return 'NO_CONTACT_PAGE'; - } - - return false; - } - - public function bind($request) - { - parent::bind($request); - - $this->subject = $request->variable('subject', '', true); - $this->sender_address = $request->variable('email', ''); - $this->sender_name = $request->variable('name', '', true); - } - - public function submit(messenger $messenger) - { - if (!$this->subject) - { - $this->errors[] = $this->user->lang['EMPTY_SUBJECT_EMAIL']; - } - if (!$this->body) - { - $this->errors[] = $this->user->lang['EMPTY_MESSAGE_EMAIL']; - } - - if ($this->user->data['is_registered']) - { - $this->message->set_sender_from_user($this->user); - $this->sender_name = $this->user->data['username']; - $this->sender_address = $this->user->data['user_email']; - } - else - { - if (!$this->sender_name) - { - $this->errors[] = $this->user->lang['EMPTY_SENDER_NAME']; - } - if (!$this->sender_address || !preg_match('/^' . get_preg_expression('email') . '$/i', $this->sender_address)) - { - $this->errors[] = $this->user->lang['EMPTY_SENDER_EMAIL']; - } - - $this->message->set_sender($this->user->ip, $this->sender_name, $this->sender_address, $this->user->lang_name); - $this->message->set_sender_notify_type(NOTIFY_EMAIL); - } - - $this->message->set_template('contact_admin'); - $this->message->set_subject($this->subject); - $this->message->set_body($this->body); - $this->message->add_recipient( - $this->user->lang['ADMINISTRATOR'], - $this->config['board_contact'], - $this->config['default_lang'], - NOTIFY_EMAIL - ); - - $this->message->set_template_vars(array( - 'FROM_EMAIL_ADDRESS' => $this->sender_address, - 'FROM_IP_ADDRESS' => $this->user->ip, - 'S_IS_REGISTERED' => $this->user->data['is_registered'], - - 'U_FROM_PROFILE' => generate_board_url() . '/memberlist.' . $this->phpEx . '?mode=viewprofile&u=' . $this->user->data['user_id'], - )); - - parent::submit($messenger); - } - - public function render($template) - { - $template->assign_vars(array( - 'S_CONTACT_ADMIN' => true, - 'S_CONTACT_FORM' => $this->config['contact_admin_form_enable'], - 'S_IS_REGISTERED' => $this->user->data['is_registered'], - - 'CONTACT_INFO' => '', /** TODO: $this->config['contact_admin_info'] */ - 'MESSAGE' => $this->body, - 'SUBJECT' => $this->subject, - 'NAME' => $this->sender_name, - 'EMAIL' => $this->sender_address, - )); - - parent::render($template); - } -} diff --git a/phpBB/includes/message/form.php b/phpBB/includes/message/form.php deleted file mode 100644 index 13909e1938..0000000000 --- a/phpBB/includes/message/form.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php -/** -* -* @package message -* @copyright (c) 2011 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -abstract class phpbb_message_form -{ - protected $phpbb_root_path; - protected $phpEx; - protected $user; - protected $auth; - protected $config; - protected $db; - protected $errors; - protected $message; - protected $cc_sender; - protected $body; - - public function __construct($phpbb_root_path, $phpEx, $user, $auth, $config, $db) - { - $this->phpbb_root_path = $phpbb_root_path; - $this->phpEx = $phpEx; - $this->user = $user; - $this->auth = $auth; - $this->config = $config; - $this->db = $db; - - $this->errors = array(); - - $this->message = new phpbb_message($config['server_name']); - $this->message->set_sender_from_user($this->user); - } - - /** - * Returns the title for the email form page - */ - public function get_page_title() - { - $this->user->lang['SEND_EMAIL']; - } - - public function get_template_file() - { - return 'memberlist_email.html'; - } - - public function check_allow() - { - if (!$this->config['email_enable']) - { - return 'EMAIL_DISABLED'; - } - - if (time() - $this->user->data['user_emailtime'] < $this->config['flood_interval']) - { - return 'FLOOD_EMAIL_LIMIT'; - } - - return false; - } - - public function get_return_message() - { - return sprintf($this->user->lang['RETURN_INDEX'], '<a href="' . append_sid($this->phpbb_root_path . 'index.' . $this->phpEx) . '">', '</a>'); - } - - public function bind(phpbb_request_interface $request) - { - $this->cc_sender = $request->is_set_post('cc_sender'); - $this->body = $request->variable('message', '', true); - } - - public function submit(messenger $messenger) - { - if (!check_form_key('memberlist_email')) - { - $this->errors[] = 'FORM_INVALID'; - } - - if (!sizeof($this->errors)) - { - $sql = 'UPDATE ' . USERS_TABLE . ' - SET user_emailtime = ' . time() . ' - WHERE user_id = ' . $this->user->data['user_id']; - $result = $this->db->sql_query($sql); - - if ($this->cc_sender) - { - $this->message->cc_sender(); - } - - $this->message->send($messenger); - - meta_refresh(3, append_sid($this->phpbb_root_path . 'index.' . $this->phpEx)); - trigger_error($this->user->lang['EMAIL_SENT'] . '<br /><br />' . $this->get_return_message()); - } - } - - public function render($template) - { - add_form_key('memberlist_email'); - - $template->assign_vars(array( - 'ERROR_MESSAGE' => (sizeof($this->errors)) ? implode('<br />', $this->errors) : '', - )); - } -} diff --git a/phpBB/includes/message/message.php b/phpBB/includes/message/message.php deleted file mode 100644 index 1e4f0f65d8..0000000000 --- a/phpBB/includes/message/message.php +++ /dev/null @@ -1,186 +0,0 @@ -<?php -/** -* -* @package message -* @copyright (c) 2011 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -class phpbb_message -{ - protected $server_name; - - protected $subject = ''; - protected $body = ''; - protected $template = ''; - protected $template_vars = array(); - - protected $sender_ip = ''; - protected $sender_name = ''; - protected $sender_address = ''; - protected $sender_lang = ''; - protected $sender_id = ''; - protected $sender_username = ''; - protected $sender_jabber = ''; - protected $sender_notify_type = NOTIFY_EMAIL; - - protected $recipients; - - public function __construct($server_name) - { - $this->server_name = $server_name; - } - - public function set_subject($subject) - { - $this->subject = $subject; - } - - public function set_body($body) - { - $this->body = $body; - } - - public function set_template($template) - { - $this->template = $template; - } - - public function set_template_vars($template_vars) - { - $this->template_vars = $template_vars; - } - - public function add_recipient_from_user_row(array $user) - { - $this->add_recipient( - $user['username'], - $user['user_email'], - $user['user_lang'], - $user['username'], - $user['user_jabber'], - $user['user_notify_type'] - ); - } - - public function add_recipient($recipient_name, $recipient_address, $recipient_lang, $recipient_notify_type = NOTIFY_EMAIL, $recipient_username = '', $recipient_jabber = '') - { - $this->recipients[] = array( - 'name' => $recipient_name, - 'address' => $recipient_address, - 'lang' => $recipient_lang, - 'username' => $recipient_username, - 'jabber' => $recipient_jabber, - 'notify_type' => $recipient_notify_type, - 'to_name' => $recipient_name, - ); - } - - public function set_sender_from_user($user) - { - $this->set_sender( - $user->ip, - $user->data['username'], - $user->data['user_email'], - $user->lang_name, - $user->data['user_id'], - $user->data['username'], - $user->data['user_jabber'] - ); - - $this->set_sender_notify_type($user->data['user_notify_type']); - } - - public function set_sender($sender_ip, $sender_name, $sender_address, $sender_lang = '', $sender_id = 0, $sender_username = '', $sender_jabber = '') - { - $this->sender_ip = $sender_ip; - $this->sender_name = $sender_name; - $this->sender_address = $sender_address; - $this->sender_lang = $sender_lang; - $this->sender_id = $sender_id; - $this->sender_username = $sender_username; - $this->sender_jabber = $sender_jabber; - } - - public function set_sender_notify_type($sender_notify_type) - { - $this->sender_notify_type = $sender_notify_type; - } - - -// Ok, now the same email if CC specified, but without exposing the users email address - public function cc_sender() - { - if (!sizeof($this->recipients)) - { - trigger_error('No email recipients specified'); - } - if (!$this->sender_address) - { - trigger_error('No email sender specified'); - } - - $this->recipients[] = array( - 'lang' => $this->sender_lang, - 'address' => $this->sender_address, - 'name' => $this->sender_name, - 'username' => $this->sender_username, - 'jabber' => $this->sender_jabber, - 'notify_type' => $this->sender_notify_type, - 'to_name' => $this->recipients[0]['to_name'], - ); - } - - public function send(messenger $messenger) - { - if (!sizeof($this->recipients)) - { - return; - } - - foreach ($this->recipients as $recipient) - { - $messenger->template($this->template, $recipient['lang']); - $messenger->replyto($this->sender_address); - $messenger->to($recipient['address'], $recipient['name']); - $messenger->im($recipient['jabber'], $recipient['username']); - - $messenger->headers('X-AntiAbuse: Board servername - ' . $this->server_name); - $messenger->headers('X-AntiAbuse: User IP - ' . $this->sender_ip); - - if ($this->sender_id) - { - $messenger->headers('X-AntiAbuse: User_id - ' . $this->sender_id); - } - if ($this->sender_username) - { - $messenger->headers('X-AntiAbuse: Username - ' . $this->sender_username); - } - - $messenger->subject(htmlspecialchars_decode($this->subject)); - - $messenger->assign_vars(array( - 'BOARD_CONTACT' => generate_board_url() . '/memberlist.' . $phpEx . '?mode=contactadmin', - 'TO_USERNAME' => htmlspecialchars_decode($recipient['to_name']), - 'FROM_USERNAME' => htmlspecialchars_decode($this->sender_name), - 'MESSAGE' => htmlspecialchars_decode($this->body)) - ); - - if (sizeof($this->template_vars)) - { - $messenger->assign_vars($this->template_vars); - } - - $messenger->send($recipient['notify_type']); - } - } -} diff --git a/phpBB/includes/message/topic_form.php b/phpBB/includes/message/topic_form.php deleted file mode 100644 index 0dbfdb0ca2..0000000000 --- a/phpBB/includes/message/topic_form.php +++ /dev/null @@ -1,150 +0,0 @@ -<?php -/** -* -* @package message -* @copyright (c) 2011 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -class phpbb_message_topic_form extends phpbb_message_form -{ - protected $topic_id; - - protected $topic_row; - protected $recipient_address; - protected $recipient_name; - protected $recipient_lang; - - protected function get_topic_row($topic_id) - { - $sql = 'SELECT forum_id, topic_title - FROM ' . TOPICS_TABLE . ' - WHERE topic_id = ' . (int) $topic_id; - $result = $this->db->sql_query($sql); - $row = $this->db->sql_fetchrow($result); - $this->db->sql_freeresult($result); - - return $row; - } - - public function check_allow() - { - $error = parent::check_allow(); - if ($error) - { - return $error; - } - - if (!$this->auth->acl_get('u_sendemail')) - { - return 'NO_EMAIL'; - } - - if (!$this->topic_row) - { - return 'NO_TOPIC'; - } - - /** - * @todo remove else case when global topics have forum id - */ - if ($this->topic_row['forum_id']) - { - if (!$this->auth->acl_get('f_read', $this->topic_row['forum_id'])) - { - return 'SORRY_AUTH_READ'; - } - - if (!$this->auth->acl_get('f_email', $this->topic_row['forum_id'])) - { - return 'NO_EMAIL'; - } - } - else - { - // If global announcement, we need to check if the user is able to at least read and email in one forum... - if (!$this->auth->acl_getf_global('f_read')) - { - return 'SORRY_AUTH_READ'; - } - - if (!$this->auth->acl_getf_global('f_email')) - { - return 'NO_EMAIL'; - } - } - - return false; - } - - public function bind($request) - { - parent::bind($request); - - $this->topic_id = $request->variable('t', 0); - $this->recipient_address = $request->variable('email', ''); - $this->recipient_name = $request->variable('name', '', true); - $this->recipient_lang = $request->variable('lang', $this->config['default_lang']); - - $this->topic_row = $this->get_topic_row($this->topic_id); - } - - public function submit(messenger $messenger) - { - if (!$this->recipient_address || !preg_match('/^' . get_preg_expression('email') . '$/i', $this->recipient_address)) - { - $this->errors[] = $this->user->lang['EMPTY_ADDRESS_EMAIL']; - } - - if (!$this->recipient_name) - { - $this->errors[] = $this->user->lang['EMPTY_NAME_EMAIL']; - } - - - $this->message->set_template('email_notify'); - $this->message->set_template_vars(array( - 'TOPIC_NAME' => htmlspecialchars_decode($this->topic_row['topic_title']), - 'U_TOPIC' => generate_board_url() . '/viewtopic.' . $this->phpEx . '?f=' . $this->topic_row['forum_id'] . '&t=' . $this->topic_id, - )); - - $this->message->add_recipient( - $this->recipient_name, - $this->recipient_address, - $this->recipient_lang, - NOTIFY_EMAIL - ); - $this->message->set_sender_notify_type(NOTIFY_EMAIL); - - parent::submit($messenger); - } - - protected function get_return_message() - { - return sprintf($this->user->lang['RETURN_TOPIC'], '<a href="' . append_sid($this->phpbb_root_path . 'viewtopic.' . $this->phpEx, 'f=' . $this->topic_row['forum_id'] . '&t=' . $this->topic_id) . '">', '</a>'); - } - - public function render($template) - { - parent::render($template); - - $template->assign_vars(array( - 'EMAIL' => $this->recipient_address, - 'NAME' => $this->recipient_name, - 'S_LANG_OPTIONS' => language_select($this->recipient_lang), - 'MESSAGE' => $this->body, - - 'L_EMAIL_BODY_EXPLAIN' => $this->user->lang['EMAIL_TOPIC_EXPLAIN'], - 'S_POST_ACTION' => append_sid($this->phpbb_root_path . 'memberlist.' . $this->phpEx, 'mode=email&t=' . $this->topic_id)) - ); - } -} diff --git a/phpBB/includes/message/user_form.php b/phpBB/includes/message/user_form.php deleted file mode 100644 index 3898975a3f..0000000000 --- a/phpBB/includes/message/user_form.php +++ /dev/null @@ -1,111 +0,0 @@ -<?php -/** -* -* @package message -* @copyright (c) 2011 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License -* -*/ - -/** -* @ignore -*/ -if (!defined('IN_PHPBB')) -{ - exit; -} - -class phpbb_message_user_form extends phpbb_message_form -{ - protected $recipient_id; - protected $subject; - - public function check_allow() - { - $error = parent::check_allow(); - if ($error) - { - return $error; - } - - if (!$this->auth->acl_get('u_sendemail')) - { - return 'NO_EMAIL'; - } - - if ($this->recipient_id == ANONYMOUS || !$this->config['board_email_form']) - { - return 'NO_EMAIL'; - } - - if (!$this->recipient_row) - { - return 'NO_USER'; - } - - // Can we send email to this user? - if (!$this->recipient_row['user_allow_viewemail'] && !$this->auth->acl_get('a_user')) - { - return 'NO_EMAIL'; - } - - return false; - } - - protected function get_user_row($user_id) - { - $sql = 'SELECT username, user_email, user_allow_viewemail, user_lang, user_jabber, user_notify_type - FROM ' . USERS_TABLE . ' - WHERE user_id = ' . ((int) $user_id) . ' - AND user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ')'; - $result = $this->db->sql_query($sql); - $row = $this->db->sql_fetchrow($result); - $this->db->sql_freeresult($result); - - return $row; - } - - public function bind($request) - { - parent::bind($request); - - $this->recipient_id = $request->variable('u', 0); - $this->subject = $request->variable('subject', '', true); - - $this->recipient_row = $this->get_user_row($this->recipient_id); - } - - public function submit(messenger $messenger) - { - if (!$this->subject) - { - $this->errors[] = $this->user->lang['EMPTY_SUBJECT_EMAIL']; - } - - if (!$this->body) - { - $this->errors[] = $this->user->lang['EMPTY_MESSAGE_EMAIL']; - } - - $this->message->set_template('profile_send_email'); - $this->message->set_subject($this->subject); - $this->message->set_body($this->body); - $this->message->add_recipient_from_user_row($this->recipient_row); - - parent::submit($messenger); - } - - public function render($template) - { - parent::render($template); - - $template->assign_vars(array( - 'S_SEND_USER' => true, - 'S_POST_ACTION' => append_sid($this->phpbb_root_path . 'memberlist.' . $this->phpEx, 'mode=email&u=' . $this->recipient_id), - - 'USERNAME' => $this->recipient_row['username'], - 'SUBJECT' => $this->subject, - 'MESSAGE' => $this->body, - )); - } -} |