Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 8 |
CRAP | |
0.00% |
0 / 60 |
| form | |
0.00% |
0 / 1 |
|
0.00% |
0 / 8 |
240 | |
0.00% |
0 / 60 |
| __construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 10 |
|||
| get_page_title | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| get_template_file | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| check_allow | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 11 |
|||
| get_return_message | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
| bind | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| submit | |
0.00% |
0 / 1 |
30 | |
0.00% |
0 / 20 |
|||
| render | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 6 |
|||
| <?php | |
| /** | |
| * | |
| * This file is part of the phpBB Forum Software package. | |
| * | |
| * @copyright (c) phpBB Limited <https://www.phpbb.com> | |
| * @license GNU General Public License, version 2 (GPL-2.0) | |
| * | |
| * For full copyright and license information, please see | |
| * the docs/CREDITS.txt file. | |
| * | |
| */ | |
| namespace phpbb\message; | |
| /** | |
| * Abstract class form | |
| */ | |
| abstract class form | |
| { | |
| /** @var \phpbb\auth\auth */ | |
| protected $auth; | |
| /** @var \phpbb\config\config */ | |
| protected $config; | |
| /** @var \phpbb\db\driver\driver_interface */ | |
| protected $db; | |
| /** @var \phpbb\message\message */ | |
| protected $message; | |
| /** @var \phpbb\user */ | |
| protected $user; | |
| /** @var string */ | |
| protected $phpbb_root_path; | |
| /** @var string */ | |
| protected $phpEx; | |
| /** @var array */ | |
| protected $errors = array(); | |
| /** @var bool */ | |
| protected $cc_sender; | |
| /** @var string */ | |
| protected $body; | |
| /** | |
| * Construct | |
| * | |
| * @param \phpbb\auth\auth $auth | |
| * @param \phpbb\config\config $config | |
| * @param \phpbb\db\driver\driver_interface $db | |
| * @param \phpbb\user $user | |
| * @param string $phpbb_root_path | |
| * @param string $phpEx | |
| */ | |
| public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\user $user, $phpbb_root_path, $phpEx) | |
| { | |
| $this->phpbb_root_path = $phpbb_root_path; | |
| $this->phpEx = $phpEx; | |
| $this->user = $user; | |
| $this->auth = $auth; | |
| $this->config = $config; | |
| $this->db = $db; | |
| $this->message = new message($config['server_name']); | |
| $this->message->set_sender_from_user($this->user); | |
| } | |
| /** | |
| * Returns the title for the email form page | |
| * | |
| * @return string | |
| */ | |
| public function get_page_title() | |
| { | |
| return $this->user->lang['SEND_EMAIL']; | |
| } | |
| /** | |
| * Returns the file name of the form template | |
| * | |
| * @return string | |
| */ | |
| public function get_template_file() | |
| { | |
| return 'memberlist_email.html'; | |
| } | |
| /** | |
| * Checks whether the user is allowed to use the form | |
| * | |
| * @return false|string Error string if not allowed, false otherwise | |
| */ | |
| 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; | |
| } | |
| /** | |
| * Get the return link after the message has been sent | |
| * | |
| * @return string | |
| */ | |
| public function get_return_message() | |
| { | |
| return sprintf($this->user->lang['RETURN_INDEX'], '<a href="' . append_sid($this->phpbb_root_path . 'index.' . $this->phpEx) . '">', '</a>'); | |
| } | |
| /** | |
| * Bind the values of the request to the form | |
| * | |
| * @param \phpbb\request\request_interface $request | |
| * @return null | |
| */ | |
| public function bind(\phpbb\request\request_interface $request) | |
| { | |
| $this->cc_sender = $request->is_set_post('cc_sender'); | |
| $this->body = $request->variable('message', '', true); | |
| } | |
| /** | |
| * Submit form, generate the email and send it | |
| * | |
| * @param \messenger $messenger | |
| * @return null | |
| */ | |
| public function submit(\messenger $messenger) | |
| { | |
| if (!check_form_key('memberlist_email')) | |
| { | |
| $this->errors[] = $this->user->lang('FORM_INVALID'); | |
| } | |
| if (!count($this->errors)) | |
| { | |
| $sql = 'UPDATE ' . USERS_TABLE . ' | |
| SET user_emailtime = ' . time() . ' | |
| WHERE user_id = ' . $this->user->data['user_id']; | |
| $this->db->sql_query($sql); | |
| if ($this->cc_sender && $this->user->data['is_registered']) | |
| { | |
| $this->message->cc_sender(); | |
| } | |
| $this->message->send($messenger, phpbb_get_board_contact($this->config, $this->phpEx)); | |
| 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()); | |
| } | |
| } | |
| /** | |
| * Render the template of the form | |
| * | |
| * @param \phpbb\template\template $template | |
| * @return null | |
| */ | |
| public function render(\phpbb\template\template $template) | |
| { | |
| add_form_key('memberlist_email'); | |
| $template->assign_vars(array( | |
| 'ERROR_MESSAGE' => (count($this->errors)) ? implode('<br />', $this->errors) : '', | |
| )); | |
| } | |
| } |