diff options
author | Joas Schilling <nickvergessen@gmx.de> | 2014-04-11 18:09:25 +0200 |
---|---|---|
committer | Joas Schilling <nickvergessen@gmx.de> | 2014-05-29 02:14:29 +0200 |
commit | fffb07fd91b42d64e71e16a13bcdde87114fad19 (patch) | |
tree | b0733d3cc0fab9186b1090b91a4671401d6c1765 /phpBB/phpbb/message/admin_form.php | |
parent | 6c287e57fc3d93b98632d19933968ce1bed9dee2 (diff) | |
download | forums-fffb07fd91b42d64e71e16a13bcdde87114fad19.tar forums-fffb07fd91b42d64e71e16a13bcdde87114fad19.tar.gz forums-fffb07fd91b42d64e71e16a13bcdde87114fad19.tar.bz2 forums-fffb07fd91b42d64e71e16a13bcdde87114fad19.tar.xz forums-fffb07fd91b42d64e71e16a13bcdde87114fad19.zip |
[ticket/10073] Use namespaces and fix all class names
PHPBB3-10073
Diffstat (limited to 'phpBB/phpbb/message/admin_form.php')
-rw-r--r-- | phpBB/phpbb/message/admin_form.php | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/phpBB/phpbb/message/admin_form.php b/phpBB/phpbb/message/admin_form.php new file mode 100644 index 0000000000..dc995062a0 --- /dev/null +++ b/phpBB/phpbb/message/admin_form.php @@ -0,0 +1,112 @@ +<?php +/** +* +* @package message +* @copyright (c) 2014 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +namespace phpbb\message; + +class admin_form extends 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(\phpbb\request\request_interface $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(\phpbb\template\template $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); + } +} |