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'], '', ''); } /** * 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[] = 'FORM_INVALID'; } if (!sizeof($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->message->cc_sender(); } $this->message->send($messenger, $this->phpEx); meta_refresh(3, append_sid($this->phpbb_root_path . 'index.' . $this->phpEx)); trigger_error($this->user->lang['EMAIL_SENT'] . '

' . $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' => (sizeof($this->errors)) ? implode('
', $this->errors) : '', )); } }