[ Index ] |
PHP Cross Reference of phpBB-3.2.11-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * 4 * This file is part of the phpBB Forum Software package. 5 * 6 * @copyright (c) phpBB Limited <https://www.phpbb.com> 7 * @license GNU General Public License, version 2 (GPL-2.0) 8 * 9 * For full copyright and license information, please see 10 * the docs/CREDITS.txt file. 11 * 12 */ 13 14 namespace phpbb\message; 15 16 /** 17 * Abstract class form 18 */ 19 abstract class form 20 { 21 /** @var \phpbb\auth\auth */ 22 protected $auth; 23 /** @var \phpbb\config\config */ 24 protected $config; 25 /** @var \phpbb\db\driver\driver_interface */ 26 protected $db; 27 /** @var \phpbb\message\message */ 28 protected $message; 29 /** @var \phpbb\user */ 30 protected $user; 31 32 /** @var string */ 33 protected $phpbb_root_path; 34 /** @var string */ 35 protected $phpEx; 36 37 /** @var array */ 38 protected $errors = array(); 39 /** @var bool */ 40 protected $cc_sender; 41 /** @var string */ 42 protected $body; 43 44 /** 45 * Construct 46 * 47 * @param \phpbb\auth\auth $auth 48 * @param \phpbb\config\config $config 49 * @param \phpbb\db\driver\driver_interface $db 50 * @param \phpbb\user $user 51 * @param string $phpbb_root_path 52 * @param string $phpEx 53 */ 54 public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\user $user, $phpbb_root_path, $phpEx) 55 { 56 $this->phpbb_root_path = $phpbb_root_path; 57 $this->phpEx = $phpEx; 58 $this->user = $user; 59 $this->auth = $auth; 60 $this->config = $config; 61 $this->db = $db; 62 63 $this->message = new message($config['server_name']); 64 $this->message->set_sender_from_user($this->user); 65 } 66 67 /** 68 * Returns the title for the email form page 69 * 70 * @return string 71 */ 72 public function get_page_title() 73 { 74 return $this->user->lang['SEND_EMAIL']; 75 } 76 77 /** 78 * Returns the file name of the form template 79 * 80 * @return string 81 */ 82 public function get_template_file() 83 { 84 return 'memberlist_email.html'; 85 } 86 87 /** 88 * Checks whether the user is allowed to use the form 89 * 90 * @return false|string Error string if not allowed, false otherwise 91 */ 92 public function check_allow() 93 { 94 if (!$this->config['email_enable']) 95 { 96 return 'EMAIL_DISABLED'; 97 } 98 99 if (time() - $this->user->data['user_emailtime'] < $this->config['flood_interval']) 100 { 101 return 'FLOOD_EMAIL_LIMIT'; 102 } 103 104 return false; 105 } 106 107 /** 108 * Get the return link after the message has been sent 109 * 110 * @return string 111 */ 112 public function get_return_message() 113 { 114 return sprintf($this->user->lang['RETURN_INDEX'], '<a href="' . append_sid($this->phpbb_root_path . 'index.' . $this->phpEx) . '">', '</a>'); 115 } 116 117 /** 118 * Bind the values of the request to the form 119 * 120 * @param \phpbb\request\request_interface $request 121 * @return null 122 */ 123 public function bind(\phpbb\request\request_interface $request) 124 { 125 $this->cc_sender = $request->is_set_post('cc_sender'); 126 $this->body = $request->variable('message', '', true); 127 } 128 129 /** 130 * Submit form, generate the email and send it 131 * 132 * @param \messenger $messenger 133 * @return null 134 */ 135 public function submit(\messenger $messenger) 136 { 137 if (!check_form_key('memberlist_email')) 138 { 139 $this->errors[] = $this->user->lang('FORM_INVALID'); 140 } 141 142 if (!count($this->errors)) 143 { 144 $sql = 'UPDATE ' . USERS_TABLE . ' 145 SET user_emailtime = ' . time() . ' 146 WHERE user_id = ' . $this->user->data['user_id']; 147 $this->db->sql_query($sql); 148 149 if ($this->cc_sender && $this->user->data['is_registered']) 150 { 151 $this->message->cc_sender(); 152 } 153 154 $this->message->send($messenger, phpbb_get_board_contact($this->config, $this->phpEx)); 155 156 meta_refresh(3, append_sid($this->phpbb_root_path . 'index.' . $this->phpEx)); 157 trigger_error($this->user->lang['EMAIL_SENT'] . '<br /><br />' . $this->get_return_message()); 158 } 159 } 160 161 /** 162 * Render the template of the form 163 * 164 * @param \phpbb\template\template $template 165 * @return null 166 */ 167 public function render(\phpbb\template\template $template) 168 { 169 add_form_key('memberlist_email'); 170 171 $template->assign_vars(array( 172 'ERROR_MESSAGE' => (count($this->errors)) ? implode('<br />', $this->errors) : '', 173 )); 174 } 175 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Nov 11 20:33:01 2020 | Cross-referenced by PHPXref 0.7.1 |