aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/acp/acp_contact.php
blob: 13d38d9f29a91e88d7e25423317dd636cd7cd8c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
/**
*
* @package acp
* @copyright (c) 2014 phpBB Group
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

/**
* @package acp
*/
class acp_contact
{
	public $u_action;

	public function main($id, $mode)
	{
		global $user, $request, $template;
		global $config, $phpbb_root_path, $phpEx, $phpbb_container;

		$user->add_lang(array('acp/board', 'posting'));

		$this->tpl_name = 'acp_contact';
		$this->page_title = 'ACP_CONTACT_SETTINGS';
		$form_name = 'acp_contact';
		add_form_key($form_name);
		$error = '';

		if (!function_exists('display_custom_bbcodes'))
		{
			include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
		}
		if (!class_exists('parse_message'))
		{
			include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
		}

		$config_text = $phpbb_container->get('config_text');

		$contact_admin_data			= $config_text->get_array(array(
			'contact_admin_info',
			'contact_admin_info_uid',
			'contact_admin_info_bitfield',
			'contact_admin_info_flags',
		));

		$contact_admin_info			= $contact_admin_data['contact_admin_info'];
		$contact_admin_info_uid		= $contact_admin_data['contact_admin_info_uid'];
		$contact_admin_info_bitfield= $contact_admin_data['contact_admin_info_bitfield'];
		$contact_admin_info_flags	= $contact_admin_data['contact_admin_info_flags'];

		if ($request->is_set_post('submit') || $request->is_set_post('preview'))
		{
			if (!check_form_key($form_name))
			{
				$error = $user->lang('FORM_INVALID');
			}

			$contact_admin_info = $request->variable('contact_admin_info', '', true);

			generate_text_for_storage(
				$contact_admin_info,
				$contact_admin_info_uid,
				$contact_admin_info_bitfield,
				$contact_admin_info_flags,
				!$request->variable('disable_bbcode', false),
				!$request->variable('disable_magic_url', false),
				!$request->variable('disable_smilies', false)
			);

			if (empty($error) && $request->is_set_post('submit'))
			{
				$config->set('contact_admin_form_enable', $request->variable('contact_admin_form_enable', false));

				$config_text->set_array(array(
					'contact_admin_info'			=> $contact_admin_info,
					'contact_admin_info_uid'		=> $contact_admin_info_uid,
					'contact_admin_info_bitfield'	=> $contact_admin_info_bitfield,
					'contact_admin_info_flags'		=> $contact_admin_info_flags,
				));

				trigger_error($user->lang['CONTACT_US_INFO_UPDATED'] . adm_back_link($this->u_action));
			}
		}

		$contact_admin_info_preview = '';
		if ($request->is_set_post('preview'))
		{
			$contact_admin_info_preview = generate_text_for_display($contact_admin_info, $contact_admin_info_uid, $contact_admin_info_bitfield, $contact_admin_info_flags);
		}

		$contact_admin_edit = generate_text_for_edit($contact_admin_info, $contact_admin_info_uid, $contact_admin_info_flags);

		$template->assign_vars(array(
			'ERRORS'			=> $error,
			'CONTACT_ENABLED'	=> $config['contact_admin_form_enable'],

			'CONTACT_US_INFO'			=> $contact_admin_edit['text'],
			'CONTACT_US_INFO_PREVIEW'	=> $contact_admin_info_preview,

			'S_BBCODE_DISABLE_CHECKED'		=> !$contact_admin_edit['allow_bbcode'],
			'S_SMILIES_DISABLE_CHECKED'		=> !$contact_admin_edit['allow_smilies'],
			'S_MAGIC_URL_DISABLE_CHECKED'	=> !$contact_admin_edit['allow_urls'],

			'BBCODE_STATUS'			=> $user->lang('BBCODE_IS_ON', '<a href="' . append_sid("{$phpbb_root_path}faq.$phpEx", 'mode=bbcode') . '">', '</a>'),
			'SMILIES_STATUS'		=> $user->lang['SMILIES_ARE_ON'],
			'IMG_STATUS'			=> $user->lang['IMAGES_ARE_ON'],
			'FLASH_STATUS'			=> $user->lang['FLASH_IS_ON'],
			'URL_STATUS'			=> $user->lang['URL_IS_ON'],

			'S_BBCODE_ALLOWED'		=> true,
			'S_SMILIES_ALLOWED'		=> true,
			'S_BBCODE_IMG'			=> true,
			'S_BBCODE_FLASH'		=> true,
			'S_LINKS_ALLOWED'		=> true,
		));

		// Assigning custom bbcodes
		display_custom_bbcodes();
	}
}