phpBB
Statistics
| Revision:

root / branches / phpBB-3_0_0 / phpBB / includes / acp / acp_board.php

History | View | Annotate | Download (48.4 kB)

1 5303 acydburn
<?php
2 7736 acydburn
/**
3 5303 acydburn
*
4 5303 acydburn
* @package acp
5 5303 acydburn
* @version $Id$
6 7736 acydburn
* @copyright (c) 2005 phpBB Group
7 7736 acydburn
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
8 5303 acydburn
*
9 5929 acydburn
* @todo add cron intervals to server settings? (database_gc, queue_interval, session_gc, search_gc, cache_gc, warnings_gc)
10 5303 acydburn
*/
11 5303 acydburn
12 5303 acydburn
/**
13 8147 acydburn
* @ignore
14 8147 acydburn
*/
15 8147 acydburn
if (!defined('IN_PHPBB'))
16 8147 acydburn
{
17 8147 acydburn
        exit;
18 8147 acydburn
}
19 8147 acydburn
20 8147 acydburn
/**
21 5303 acydburn
* @package acp
22 5303 acydburn
*/
23 5303 acydburn
class acp_board
24 5303 acydburn
{
25 5558 acydburn
        var $u_action;
26 5336 acydburn
        var $new_config = array();
27 5336 acydburn
28 5303 acydburn
        function main($id, $mode)
29 5303 acydburn
        {
30 5303 acydburn
                global $db, $user, $auth, $template;
31 6015 acydburn
                global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
32 10354 bantu
                global $cache;
33 5303 acydburn
34 5303 acydburn
                $user->add_lang('acp/board');
35 5303 acydburn
36 5303 acydburn
                $action        = request_var('action', '');
37 10491 bantu
                $submit = (isset($_POST['submit']) || isset($_POST['allow_quick_reply_enable'])) ? true : false;
38 5303 acydburn
39 8120 kellanved
                $form_key = 'acp_board';
40 8120 kellanved
                add_form_key($form_key);
41 8120 kellanved
42 6730 acydburn
                /**
43 6730 acydburn
                *        Validation types are:
44 6730 acydburn
                *                string, int, bool,
45 6730 acydburn
                *                script_path (absolute path in url - beginning with / and no trailing slash),
46 7455 acydburn
                *                rpath (relative), rwpath (realtive, writable), path (relative path, but able to escape the root), wpath (writable)
47 6730 acydburn
                */
48 5303 acydburn
                switch ($mode)
49 5303 acydburn
                {
50 5787 acydburn
                        case 'settings':
51 5303 acydburn
                                $display_vars = array(
52 5787 acydburn
                                        'title'        => 'ACP_BOARD_SETTINGS',
53 5303 acydburn
                                        'vars'        => array(
54 5787 acydburn
                                                'legend1'                                => 'ACP_BOARD_SETTINGS',
55 6367 acydburn
                                                'sitename'                                => array('lang' => 'SITE_NAME',                                'validate' => 'string',        'type' => 'text:40:255', 'explain' => false),
56 6367 acydburn
                                                'site_desc'                                => array('lang' => 'SITE_DESC',                                'validate' => 'string',        'type' => 'text:40:255', 'explain' => false),
57 6367 acydburn
                                                'board_disable'                        => array('lang' => 'DISABLE_BOARD',                        'validate' => 'bool',        'type' => 'custom', 'method' => 'board_disable', 'explain' => true),
58 5787 acydburn
                                                'board_disable_msg'                => false,
59 7790 kellanved
                                                'default_lang'                        => array('lang' => 'DEFAULT_LANGUAGE',                'validate' => 'lang',        'type' => 'select', 'function' => 'language_select', 'params' => array('{CONFIG_VALUE}'), 'explain' => false),
60 6367 acydburn
                                                'default_dateformat'        => array('lang' => 'DEFAULT_DATE_FORMAT',        'validate' => 'string',        'type' => 'custom', 'method' => 'dateformat_select', 'explain' => true),
61 10699 git-gate
                                                'board_timezone'                => array('lang' => 'SYSTEM_TIMEZONE',                'validate' => 'string',        'type' => 'select', 'function' => 'tz_select', 'params' => array('{CONFIG_VALUE}', 1), 'explain' => true),
62 6367 acydburn
                                                'board_dst'                                => array('lang' => 'SYSTEM_DST',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
63 7241 acydburn
                                                'default_style'                        => array('lang' => 'DEFAULT_STYLE',                        'validate' => 'int',        'type' => 'select', 'function' => 'style_select', 'params' => array('{CONFIG_VALUE}', false), 'explain' => false),
64 6367 acydburn
                                                'override_user_style'        => array('lang' => 'OVERRIDE_STYLE',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
65 5787 acydburn
66 5787 acydburn
                                                'legend2'                                => 'WARNINGS',
67 6666 dhn2
                                                'warnings_expire_days'        => array('lang' => 'WARNINGS_EXPIRE',                'validate' => 'int',        'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
68 9575 acydburn
69 9575 acydburn
                                                'legend3'                                        => 'ACP_SUBMIT_CHANGES',
70 5303 acydburn
                                        )
71 5303 acydburn
                                );
72 5337 acydburn
                        break;
73 5303 acydburn
74 5787 acydburn
                        case 'features':
75 5787 acydburn
                                $display_vars = array(
76 5787 acydburn
                                        'title'        => 'ACP_BOARD_FEATURES',
77 5787 acydburn
                                        'vars'        => array(
78 5787 acydburn
                                                'legend1'                                => 'ACP_BOARD_FEATURES',
79 6367 acydburn
                                                'allow_privmsg'                        => array('lang' => 'BOARD_PM',                                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
80 6367 acydburn
                                                'allow_topic_notify'        => array('lang' => 'ALLOW_TOPIC_NOTIFY',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
81 6367 acydburn
                                                'allow_forum_notify'        => array('lang' => 'ALLOW_FORUM_NOTIFY',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
82 6367 acydburn
                                                'allow_namechange'                => array('lang' => 'ALLOW_NAME_CHANGE',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
83 6367 acydburn
                                                'allow_attachments'                => array('lang' => 'ALLOW_ATTACHMENTS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
84 6367 acydburn
                                                'allow_pm_attach'                => array('lang' => 'ALLOW_PM_ATTACHMENTS',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
85 9814 naderman
                                                'allow_pm_report'                => array('lang' => 'ALLOW_PM_REPORT',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
86 6367 acydburn
                                                'allow_bbcode'                        => array('lang' => 'ALLOW_BBCODE',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
87 6367 acydburn
                                                'allow_smilies'                        => array('lang' => 'ALLOW_SMILIES',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
88 6367 acydburn
                                                'allow_sig'                                => array('lang' => 'ALLOW_SIG',                                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
89 6367 acydburn
                                                'allow_nocensors'                => array('lang' => 'ALLOW_NO_CENSORS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
90 6367 acydburn
                                                'allow_bookmarks'                => array('lang' => 'ALLOW_BOOKMARKS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
91 7909 acydburn
                                                'allow_birthdays'                => array('lang' => 'ALLOW_BIRTHDAYS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
92 10491 bantu
                                                'allow_quick_reply'                => array('lang' => 'ALLOW_QUICK_REPLY',                'validate' => 'bool',        'type' => 'custom', 'method' => 'quick_reply', 'explain' => true),
93 6161 acydburn
94 6161 acydburn
                                                'legend2'                                => 'ACP_LOAD_SETTINGS',
95 7909 acydburn
                                                'load_birthdays'                => array('lang' => 'YES_BIRTHDAYS',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
96 6367 acydburn
                                                'load_moderators'                => array('lang' => 'YES_MODERATORS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
97 6367 acydburn
                                                'load_jumpbox'                        => array('lang' => 'YES_JUMPBOX',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
98 6367 acydburn
                                                'load_cpf_memberlist'        => array('lang' => 'LOAD_CPF_MEMBERLIST',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
99 6367 acydburn
                                                'load_cpf_viewprofile'        => array('lang' => 'LOAD_CPF_VIEWPROFILE',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
100 6367 acydburn
                                                'load_cpf_viewtopic'        => array('lang' => 'LOAD_CPF_VIEWTOPIC',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
101 9575 acydburn
102 9575 acydburn
                                                'legend3'                                        => 'ACP_SUBMIT_CHANGES',
103 5787 acydburn
                                        )
104 5787 acydburn
                                );
105 5787 acydburn
                        break;
106 5787 acydburn
107 5303 acydburn
                        case 'avatar':
108 5303 acydburn
                                $display_vars = array(
109 5303 acydburn
                                        'title'        => 'ACP_AVATAR_SETTINGS',
110 5303 acydburn
                                        'vars'        => array(
111 5303 acydburn
                                                'legend1'                                => 'ACP_AVATAR_SETTINGS',
112 5303 acydburn
113 8493 Kellanved
                                                'avatar_min_width'                => array('lang' => 'MIN_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
114 8493 Kellanved
                                                'avatar_min_height'                => array('lang' => 'MIN_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
115 8493 Kellanved
                                                'avatar_max_width'                => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
116 8493 Kellanved
                                                'avatar_max_height'                => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
117 8493 Kellanved
118 9632 nickvergessen
                                                'allow_avatar'                        => array('lang' => 'ALLOW_AVATARS',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
119 6367 acydburn
                                                'allow_avatar_local'        => array('lang' => 'ALLOW_LOCAL',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
120 6367 acydburn
                                                'allow_avatar_remote'        => array('lang' => 'ALLOW_REMOTE',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
121 6367 acydburn
                                                'allow_avatar_upload'        => array('lang' => 'ALLOW_UPLOAD',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
122 9757 nickvergessen
                                                'allow_avatar_remote_upload'=> array('lang' => 'ALLOW_REMOTE_UPLOAD', 'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
123 8407 Kellanved
                                                'avatar_filesize'                => array('lang' => 'MAX_FILESIZE',                        'validate' => 'int:0',        'type' => 'text:4:10', 'explain' => true, 'append' => ' ' . $user->lang['BYTES']),
124 8407 Kellanved
                                                'avatar_min'                        => array('lang' => 'MIN_AVATAR_SIZE',                'validate' => 'int:0',        'type' => 'dimension:3:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
125 8407 Kellanved
                                                'avatar_max'                        => array('lang' => 'MAX_AVATAR_SIZE',                'validate' => 'int:0',        'type' => 'dimension:3:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
126 6436 acydburn
                                                'avatar_path'                        => array('lang' => 'AVATAR_STORAGE_PATH',        'validate' => 'rwpath',        'type' => 'text:20:255', 'explain' => true),
127 6367 acydburn
                                                'avatar_gallery_path'        => array('lang' => 'AVATAR_GALLERY_PATH',        'validate' => 'rpath',        'type' => 'text:20:255', 'explain' => true)
128 5303 acydburn
                                        )
129 5303 acydburn
                                );
130 5337 acydburn
                        break;
131 5303 acydburn
132 5787 acydburn
                        case 'message':
133 5303 acydburn
                                $display_vars = array(
134 5787 acydburn
                                        'title'        => 'ACP_MESSAGE_SETTINGS',
135 5787 acydburn
                                        'lang'        => 'ucp',
136 5303 acydburn
                                        'vars'        => array(
137 5787 acydburn
                                                'legend1'                                => 'GENERAL_SETTINGS',
138 6367 acydburn
                                                'allow_privmsg'                        => array('lang' => 'BOARD_PM',                                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
139 8407 Kellanved
                                                'pm_max_boxes'                        => array('lang' => 'BOXES_MAX',                                'validate' => 'int:0',        'type' => 'text:4:4', 'explain' => true),
140 8407 Kellanved
                                                'pm_max_msgs'                        => array('lang' => 'BOXES_LIMIT',                        'validate' => 'int:0',        'type' => 'text:4:4', 'explain' => true),
141 6367 acydburn
                                                'full_folder_action'        => array('lang' => 'FULL_FOLDER_ACTION',        'validate' => 'int',        'type' => 'select', 'method' => 'full_folder_select', 'explain' => true),
142 8407 Kellanved
                                                'pm_edit_time'                        => array('lang' => 'PM_EDIT_TIME',                        'validate' => 'int:0',        'type' => 'text:5:5', 'explain' => true, 'append' => ' ' . $user->lang['MINUTES']),
143 8911 acydburn
                                                'pm_max_recipients'                => array('lang' => 'PM_MAX_RECIPIENTS',                'validate' => 'int:0',        'type' => 'text:5:5', 'explain' => true),
144 8350 acydburn
145 5787 acydburn
                                                'legend2'                                => 'GENERAL_OPTIONS',
146 6367 acydburn
                                                'allow_mass_pm'                        => array('lang' => 'ALLOW_MASS_PM',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
147 6367 acydburn
                                                'auth_bbcode_pm'                => array('lang' => 'ALLOW_BBCODE_PM',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
148 6367 acydburn
                                                'auth_smilies_pm'                => array('lang' => 'ALLOW_SMILIES_PM',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
149 6367 acydburn
                                                'allow_pm_attach'                => array('lang' => 'ALLOW_PM_ATTACHMENTS',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
150 6367 acydburn
                                                'allow_sig_pm'                        => array('lang' => 'ALLOW_SIG_PM',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
151 6367 acydburn
                                                'print_pm'                                => array('lang' => 'ALLOW_PRINT_PM',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
152 6367 acydburn
                                                'forward_pm'                        => array('lang' => 'ALLOW_FORWARD_PM',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
153 6367 acydburn
                                                'auth_img_pm'                        => array('lang' => 'ALLOW_IMG_PM',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
154 7722 kellanved
                                                'auth_flash_pm'                        => array('lang' => 'ALLOW_FLASH_PM',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
155 9575 acydburn
                                                'enable_pm_icons'                => array('lang' => 'ENABLE_PM_ICONS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
156 9575 acydburn
157 9575 acydburn
                                                'legend3'                                        => 'ACP_SUBMIT_CHANGES',
158 5787 acydburn
                                        )
159 5787 acydburn
                                );
160 5787 acydburn
                        break;
161 5303 acydburn
162 5787 acydburn
                        case 'post':
163 5787 acydburn
                                $display_vars = array(
164 5787 acydburn
                                        'title'        => 'ACP_POST_SETTINGS',
165 5787 acydburn
                                        'vars'        => array(
166 5787 acydburn
                                                'legend1'                                => 'GENERAL_OPTIONS',
167 6367 acydburn
                                                'allow_topic_notify'        => array('lang' => 'ALLOW_TOPIC_NOTIFY',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
168 6367 acydburn
                                                'allow_forum_notify'        => array('lang' => 'ALLOW_FORUM_NOTIFY',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
169 6367 acydburn
                                                'allow_bbcode'                        => array('lang' => 'ALLOW_BBCODE',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
170 7722 kellanved
                                                'allow_post_flash'                => array('lang' => 'ALLOW_POST_FLASH',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
171 6367 acydburn
                                                'allow_smilies'                        => array('lang' => 'ALLOW_SMILIES',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
172 6367 acydburn
                                                'allow_post_links'                => array('lang' => 'ALLOW_POST_LINKS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
173 6367 acydburn
                                                'allow_nocensors'                => array('lang' => 'ALLOW_NO_CENSORS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
174 6367 acydburn
                                                'allow_bookmarks'                => array('lang' => 'ALLOW_BOOKMARKS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
175 6367 acydburn
                                                'enable_post_confirm'        => array('lang' => 'VISUAL_CONFIRM_POST',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
176 10492 bantu
                                                'allow_quick_reply'                => array('lang' => 'ALLOW_QUICK_REPLY',                'validate' => 'bool',        'type' => 'custom', 'method' => 'quick_reply', 'explain' => true),
177 5303 acydburn
178 5787 acydburn
                                                'legend2'                                => 'POSTING',
179 5787 acydburn
                                                'bump_type'                                => false,
180 8593 Kellanved
                                                'edit_time'                                => array('lang' => 'EDIT_TIME',                                'validate' => 'int:0',                'type' => 'text:5:5', 'explain' => true, 'append' => ' ' . $user->lang['MINUTES']),
181 10080 nickvergessen
                                                'delete_time'                        => array('lang' => 'DELETE_TIME',                        'validate' => 'int:0',                'type' => 'text:5:5', 'explain' => true, 'append' => ' ' . $user->lang['MINUTES']),
182 8593 Kellanved
                                                'display_last_edited'        => array('lang' => 'DISPLAY_LAST_EDITED',        'validate' => 'bool',                'type' => 'radio:yes_no', 'explain' => true),
183 8593 Kellanved
                                                'flood_interval'                => array('lang' => 'FLOOD_INTERVAL',                'validate' => 'int:0',                'type' => 'text:3:10', 'explain' => true, 'append' => ' ' . $user->lang['SECONDS']),
184 8593 Kellanved
                                                'bump_interval'                        => array('lang' => 'BUMP_INTERVAL',                        'validate' => 'int:0',                'type' => 'custom', 'method' => 'bump_interval', 'explain' => true),
185 8593 Kellanved
                                                'topics_per_page'                => array('lang' => 'TOPICS_PER_PAGE',                'validate' => 'int:1',                'type' => 'text:3:4', 'explain' => false),
186 8593 Kellanved
                                                'posts_per_page'                => array('lang' => 'POSTS_PER_PAGE',                'validate' => 'int:1',                'type' => 'text:3:4', 'explain' => false),
187 9763 aptx
                                                'smilies_per_page'                => array('lang' => 'SMILIES_PER_PAGE',                'validate' => 'int:1',                'type' => 'text:3:4', 'explain' => false),
188 8593 Kellanved
                                                'hot_threshold'                        => array('lang' => 'HOT_THRESHOLD',                        'validate' => 'int:0',                'type' => 'text:3:4', 'explain' => true),
189 8593 Kellanved
                                                'max_poll_options'                => array('lang' => 'MAX_POLL_OPTIONS',                'validate' => 'int:2:127',        'type' => 'text:4:4', 'explain' => false),
190 8593 Kellanved
                                                'max_post_chars'                => array('lang' => 'CHAR_LIMIT',                        'validate' => 'int:0',                'type' => 'text:4:6', 'explain' => true),
191 11492 git-gate
                                                'min_post_chars'                => array('lang' => 'MIN_CHAR_LIMIT',                'validate' => 'int:1',                'type' => 'text:4:6', 'explain' => true),
192 8593 Kellanved
                                                'max_post_smilies'                => array('lang' => 'SMILIES_LIMIT',                        'validate' => 'int:0',                'type' => 'text:4:4', 'explain' => true),
193 8593 Kellanved
                                                'max_post_urls'                        => array('lang' => 'MAX_POST_URLS',                        'validate' => 'int:0',                'type' => 'text:5:4', 'explain' => true),
194 8593 Kellanved
                                                'max_post_font_size'        => array('lang' => 'MAX_POST_FONT_SIZE',        'validate' => 'int:0',                'type' => 'text:5:4', 'explain' => true, 'append' => ' %'),
195 8593 Kellanved
                                                'max_quote_depth'                => array('lang' => 'QUOTE_DEPTH_LIMIT',                'validate' => 'int:0',                'type' => 'text:4:4', 'explain' => true),
196 8593 Kellanved
                                                'max_post_img_width'        => array('lang' => 'MAX_POST_IMG_WIDTH',        'validate' => 'int:0',                'type' => 'text:5:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
197 8593 Kellanved
                                                'max_post_img_height'        => array('lang' => 'MAX_POST_IMG_HEIGHT',        'validate' => 'int:0',                'type' => 'text:5:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
198 9575 acydburn
199 9575 acydburn
                                                'legend3'                                        => 'ACP_SUBMIT_CHANGES',
200 5303 acydburn
                                        )
201 5303 acydburn
                                );
202 5337 acydburn
                        break;
203 5303 acydburn
204 5787 acydburn
                        case 'signature':
205 5303 acydburn
                                $display_vars = array(
206 5787 acydburn
                                        'title'        => 'ACP_SIGNATURE_SETTINGS',
207 5303 acydburn
                                        'vars'        => array(
208 5787 acydburn
                                                'legend1'                                => 'GENERAL_OPTIONS',
209 6367 acydburn
                                                'allow_sig'                                => array('lang' => 'ALLOW_SIG',                                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
210 6367 acydburn
                                                'allow_sig_bbcode'                => array('lang' => 'ALLOW_SIG_BBCODE',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
211 6367 acydburn
                                                'allow_sig_img'                        => array('lang' => 'ALLOW_SIG_IMG',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
212 6367 acydburn
                                                'allow_sig_flash'                => array('lang' => 'ALLOW_SIG_FLASH',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
213 6367 acydburn
                                                'allow_sig_smilies'                => array('lang' => 'ALLOW_SIG_SMILIES',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
214 6367 acydburn
                                                'allow_sig_links'                => array('lang' => 'ALLOW_SIG_LINKS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
215 5787 acydburn
216 5787 acydburn
                                                'legend2'                                => 'GENERAL_SETTINGS',
217 8407 Kellanved
                                                'max_sig_chars'                        => array('lang' => 'MAX_SIG_LENGTH',                'validate' => 'int:0',        'type' => 'text:5:4', 'explain' => true),
218 8407 Kellanved
                                                'max_sig_urls'                        => array('lang' => 'MAX_SIG_URLS',                        'validate' => 'int:0',        'type' => 'text:5:4', 'explain' => true),
219 8407 Kellanved
                                                'max_sig_font_size'                => array('lang' => 'MAX_SIG_FONT_SIZE',                'validate' => 'int:0',        'type' => 'text:5:4', 'explain' => true, 'append' => ' %'),
220 8407 Kellanved
                                                'max_sig_smilies'                => array('lang' => 'MAX_SIG_SMILIES',                'validate' => 'int:0',        'type' => 'text:5:4', 'explain' => true),
221 8407 Kellanved
                                                'max_sig_img_width'                => array('lang' => 'MAX_SIG_IMG_WIDTH',                'validate' => 'int:0',        'type' => 'text:5:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
222 8407 Kellanved
                                                'max_sig_img_height'        => array('lang' => 'MAX_SIG_IMG_HEIGHT',        'validate' => 'int:0',        'type' => 'text:5:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
223 9575 acydburn
224 9575 acydburn
                                                'legend3'                                        => 'ACP_SUBMIT_CHANGES',
225 5787 acydburn
                                        )
226 5787 acydburn
                                );
227 5787 acydburn
                        break;
228 5303 acydburn
229 5787 acydburn
                        case 'registration':
230 5787 acydburn
                                $display_vars = array(
231 5787 acydburn
                                        'title'        => 'ACP_REGISTER_SETTINGS',
232 5787 acydburn
                                        'vars'        => array(
233 5787 acydburn
                                                'legend1'                                => 'GENERAL_SETTINGS',
234 8407 Kellanved
                                                'max_name_chars'                => array('lang' => 'USERNAME_LENGTH', 'validate' => 'int:8:180', 'type' => false, 'method' => false, 'explain' => false,),
235 8407 Kellanved
                                                'max_pass_chars'                => array('lang' => 'PASSWORD_LENGTH', 'validate' => 'int:8:255', 'type' => false, 'method' => false, 'explain' => false,),
236 5787 acydburn
237 11589 git-gate
                                                'require_activation'        => array('lang' => 'ACC_ACTIVATION',        'validate' => 'int',        'type' => 'select', 'method' => 'select_acc_activation', 'explain' => true),
238 9636 acydburn
                                                'new_member_post_limit'        => array('lang' => 'NEW_MEMBER_POST_LIMIT', 'validate' => 'int:0:255', 'type' => 'text:4:4', 'explain' => true, 'append' => ' ' . $user->lang['POSTS']),
239 9636 acydburn
                                                'new_member_group_default'=> array('lang' => 'NEW_MEMBER_GROUP_DEFAULT', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
240 8422 Kellanved
                                                'min_name_chars'                => array('lang' => 'USERNAME_LENGTH',        'validate' => 'int:1',        'type' => 'custom:5:180', 'method' => 'username_length', 'explain' => true),
241 8407 Kellanved
                                                'min_pass_chars'                => array('lang' => 'PASSWORD_LENGTH',        'validate' => 'int:1',        'type' => 'custom', 'method' => 'password_length', 'explain' => true),
242 6367 acydburn
                                                'allow_name_chars'                => array('lang' => 'USERNAME_CHARS',        'validate' => 'string',        'type' => 'select', 'method' => 'select_username_chars', 'explain' => true),
243 6367 acydburn
                                                'pass_complex'                        => array('lang' => 'PASSWORD_TYPE',                'validate' => 'string',        'type' => 'select', 'method' => 'select_password_chars', 'explain' => true),
244 8407 Kellanved
                                                'chg_passforce'                        => array('lang' => 'FORCE_PASS_CHANGE',        'validate' => 'int:0',        'type' => 'text:3:3', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
245 5787 acydburn
246 5303 acydburn
                                                'legend2'                                => 'GENERAL_OPTIONS',
247 6367 acydburn
                                                'allow_namechange'                => array('lang' => 'ALLOW_NAME_CHANGE',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
248 6367 acydburn
                                                'allow_emailreuse'                => array('lang' => 'ALLOW_EMAIL_REUSE',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
249 6367 acydburn
                                                'enable_confirm'                => array('lang' => 'VISUAL_CONFIRM_REG',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
250 8407 Kellanved
                                                'max_login_attempts'        => array('lang' => 'MAX_LOGIN_ATTEMPTS',        'validate' => 'int:0',        'type' => 'text:3:3', 'explain' => true),
251 8407 Kellanved
                                                'max_reg_attempts'                => array('lang' => 'REG_LIMIT',                                'validate' => 'int:0',        'type' => 'text:4:4', 'explain' => true),
252 5787 acydburn
253 5787 acydburn
                                                'legend3'                        => 'COPPA',
254 6367 acydburn
                                                'coppa_enable'                => array('lang' => 'ENABLE_COPPA',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
255 6367 acydburn
                                                'coppa_mail'                => array('lang' => 'COPPA_MAIL',                'validate' => 'string',        'type' => 'textarea:5:40', 'explain' => true),
256 6367 acydburn
                                                'coppa_fax'                        => array('lang' => 'COPPA_FAX',                        'validate' => 'string',        'type' => 'text:25:100', 'explain' => false),
257 9575 acydburn
258 9575 acydburn
                                                'legend4'                        => 'ACP_SUBMIT_CHANGES',
259 5303 acydburn
                                        )
260 5303 acydburn
                                );
261 5337 acydburn
                        break;
262 5303 acydburn
263 9575 acydburn
                        case 'feed':
264 9575 acydburn
                                $display_vars = array(
265 9575 acydburn
                                        'title'        => 'ACP_FEED_MANAGEMENT',
266 9575 acydburn
                                        'vars'        => array(
267 9575 acydburn
                                                'legend1'                                        => 'ACP_FEED_GENERAL',
268 9575 acydburn
                                                'feed_enable'                                => array('lang' => 'ACP_FEED_ENABLE',                                'validate' => 'bool',        'type' => 'radio:enabled_disabled',        'explain' => true ),
269 9575 acydburn
                                                'feed_item_statistics'                => array('lang' => 'ACP_FEED_ITEM_STATISTICS',                'validate' => 'bool',        'type' => 'radio:enabled_disabled',        'explain' => true),
270 10430 bantu
                                                'feed_http_auth'                        => array('lang' => 'ACP_FEED_HTTP_AUTH',                        'validate' => 'bool',        'type' => 'radio:enabled_disabled',        'explain' => true),
271 10374 bantu
272 10374 bantu
                                                'legend2'                                        => 'ACP_FEED_POST_BASED',
273 10374 bantu
                                                'feed_limit_post'                        => array('lang' => 'ACP_FEED_LIMIT',                                'validate' => 'int:5',        'type' => 'text:3:4',                                'explain' => true),
274 10363 bantu
                                                'feed_overall'                                => array('lang' => 'ACP_FEED_OVERALL',                                'validate' => 'bool',        'type' => 'radio:enabled_disabled',        'explain' => true ),
275 9575 acydburn
                                                'feed_forum'                                => array('lang' => 'ACP_FEED_FORUM',                                'validate' => 'bool',        'type' => 'radio:enabled_disabled',        'explain' => true ),
276 9575 acydburn
                                                'feed_topic'                                => array('lang' => 'ACP_FEED_TOPIC',                                'validate' => 'bool',        'type' => 'radio:enabled_disabled',        'explain' => true ),
277 10374 bantu
278 10374 bantu
                                                'legend3'                                        => 'ACP_FEED_TOPIC_BASED',
279 10374 bantu
                                                'feed_limit_topic'                        => array('lang' => 'ACP_FEED_LIMIT',                                'validate' => 'int:5',        'type' => 'text:3:4',                                'explain' => true),
280 10382 bantu
                                                'feed_topics_new'                        => array('lang' => 'ACP_FEED_TOPICS_NEW',                        'validate' => 'bool',        'type' => 'radio:enabled_disabled',        'explain' => true ),
281 10382 bantu
                                                'feed_topics_active'                => array('lang' => 'ACP_FEED_TOPICS_ACTIVE',                'validate' => 'bool',        'type' => 'radio:enabled_disabled',        'explain' => true ),
282 10374 bantu
                                                'feed_news_id'                                => array('lang' => 'ACP_FEED_NEWS',                                        'validate' => 'string',        'type' => 'custom', 'method' => 'select_news_forums', 'explain' => true),
283 10374 bantu
284 10374 bantu
                                                'legend4'                                        => 'ACP_FEED_SETTINGS_OTHER',
285 10367 bantu
                                                'feed_overall_forums'                => array('lang'        => 'ACP_FEED_OVERALL_FORUMS',                'validate' => 'bool',        'type' => 'radio:enabled_disabled',        'explain' => true ),
286 9965 acydburn
                                                'feed_exclude_id'                        => array('lang' => 'ACP_FEED_EXCLUDE_ID',                        'validate' => 'string',        'type' => 'custom', 'method' => 'select_exclude_forums', 'explain' => true),
287 9575 acydburn
                                        )
288 9575 acydburn
                                );
289 9575 acydburn
                        break;
290 9575 acydburn
291 5787 acydburn
                        case 'cookie':
292 5787 acydburn
                                $display_vars = array(
293 5787 acydburn
                                        'title'        => 'ACP_COOKIE_SETTINGS',
294 5787 acydburn
                                        'vars'        => array(
295 5787 acydburn
                                                'legend1'                => 'ACP_COOKIE_SETTINGS',
296 6367 acydburn
                                                'cookie_domain'        => array('lang' => 'COOKIE_DOMAIN',        'validate' => 'string',        'type' => 'text::255', 'explain' => false),
297 6367 acydburn
                                                'cookie_name'        => array('lang' => 'COOKIE_NAME',        'validate' => 'string',        'type' => 'text::16', 'explain' => false),
298 6367 acydburn
                                                'cookie_path'        => array('lang'        => 'COOKIE_PATH',        'validate' => 'string',        'type' => 'text::255', 'explain' => false),
299 6367 acydburn
                                                'cookie_secure'        => array('lang' => 'COOKIE_SECURE',        'validate' => 'bool',        'type' => 'radio:disabled_enabled', 'explain' => true)
300 5787 acydburn
                                        )
301 5787 acydburn
                                );
302 5787 acydburn
                        break;
303 5787 acydburn
304 5303 acydburn
                        case 'load':
305 5303 acydburn
                                $display_vars = array(
306 5303 acydburn
                                        'title'        => 'ACP_LOAD_SETTINGS',
307 5303 acydburn
                                        'vars'        => array(
308 5303 acydburn
                                                'legend1'                        => 'GENERAL_SETTINGS',
309 7218 acydburn
                                                'limit_load'                => array('lang' => 'LIMIT_LOAD',                'validate' => 'string',        'type' => 'text:4:4', 'explain' => true),
310 8407 Kellanved
                                                'session_length'        => array('lang' => 'SESSION_LENGTH',        'validate' => 'int:60',        'type' => 'text:5:10', 'explain' => true, 'append' => ' ' . $user->lang['SECONDS']),
311 8407 Kellanved
                                                'active_sessions'        => array('lang' => 'LIMIT_SESSIONS',        'validate' => 'int:0',        'type' => 'text:4:4', 'explain' => true),
312 8407 Kellanved
                                                'load_online_time'        => array('lang' => 'ONLINE_LENGTH',                'validate' => 'int:0',        'type' => 'text:4:3', 'explain' => true, 'append' => ' ' . $user->lang['MINUTES']),
313 5303 acydburn
314 5624 acydburn
                                                'legend2'                                => 'GENERAL_OPTIONS',
315 6367 acydburn
                                                'load_db_track'                        => array('lang' => 'YES_POST_MARKING',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
316 6367 acydburn
                                                'load_db_lastread'                => array('lang' => 'YES_READ_MARKING',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
317 6367 acydburn
                                                'load_anon_lastread'        => array('lang' => 'YES_ANON_READ_MARKING',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
318 6367 acydburn
                                                'load_online'                        => array('lang' => 'YES_ONLINE',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
319 6367 acydburn
                                                'load_online_guests'        => array('lang' => 'YES_ONLINE_GUESTS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
320 6367 acydburn
                                                'load_onlinetrack'                => array('lang' => 'YES_ONLINE_TRACK',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
321 7909 acydburn
                                                'load_birthdays'                => array('lang' => 'YES_BIRTHDAYS',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
322 10790 git-gate
                                                'load_unreads_search'        => array('lang' => 'YES_UNREAD_SEARCH',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
323 6367 acydburn
                                                'load_moderators'                => array('lang' => 'YES_MODERATORS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
324 6367 acydburn
                                                'load_jumpbox'                        => array('lang' => 'YES_JUMPBOX',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
325 6367 acydburn
                                                'load_user_activity'        => array('lang' => 'LOAD_USER_ACTIVITY',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
326 7605 shs
                                                'load_tplcompile'                => array('lang' => 'RECOMPILE_STYLES',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
327 8350 acydburn
328 5712 acydburn
                                                'legend3'                                => 'CUSTOM_PROFILE_FIELDS',
329 6367 acydburn
                                                'load_cpf_memberlist'        => array('lang' => 'LOAD_CPF_MEMBERLIST',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
330 6367 acydburn
                                                'load_cpf_viewprofile'        => array('lang' => 'LOAD_CPF_VIEWPROFILE',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
331 6367 acydburn
                                                'load_cpf_viewtopic'        => array('lang' => 'LOAD_CPF_VIEWTOPIC',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => false),
332 9575 acydburn
333 9575 acydburn
                                                'legend4'                                        => 'ACP_SUBMIT_CHANGES',
334 5303 acydburn
                                        )
335 5303 acydburn
                                );
336 5337 acydburn
                        break;
337 5303 acydburn
338 5303 acydburn
                        case 'auth':
339 5303 acydburn
                                $display_vars = array(
340 5303 acydburn
                                        'title'        => 'ACP_AUTH_SETTINGS',
341 5303 acydburn
                                        'vars'        => array(
342 5303 acydburn
                                                'legend1'                => 'ACP_AUTH_SETTINGS',
343 6367 acydburn
                                                'auth_method'        => array('lang' => 'AUTH_METHOD',        'validate' => 'string',        'type' => 'select', 'method' => 'select_auth_method', 'explain' => false)
344 5303 acydburn
                                        )
345 5303 acydburn
                                );
346 5337 acydburn
                        break;
347 5303 acydburn
348 5303 acydburn
                        case 'server':
349 5303 acydburn
                                $display_vars = array(
350 5303 acydburn
                                        'title'        => 'ACP_SERVER_SETTINGS',
351 5303 acydburn
                                        'vars'        => array(
352 5337 acydburn
                                                'legend1'                                => 'ACP_SERVER_SETTINGS',
353 7079 naderman
                                                'gzip_compress'                        => array('lang' => 'ENABLE_GZIP',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
354 5303 acydburn
355 5337 acydburn
                                                'legend2'                                => 'PATH_SETTINGS',
356 6367 acydburn
                                                'smilies_path'                        => array('lang' => 'SMILIES_PATH',                'validate' => 'rpath',        'type' => 'text:20:255', 'explain' => true),
357 6367 acydburn
                                                'icons_path'                        => array('lang' => 'ICONS_PATH',                'validate' => 'rpath',        'type' => 'text:20:255', 'explain' => true),
358 6436 acydburn
                                                'upload_icons_path'                => array('lang' => 'UPLOAD_ICONS_PATH',        'validate' => 'rpath',        'type' => 'text:20:255', 'explain' => true),
359 6367 acydburn
                                                'ranks_path'                        => array('lang' => 'RANKS_PATH',                'validate' => 'rpath',        'type' => 'text:20:255', 'explain' => true),
360 5595 acydburn
361 5595 acydburn
                                                'legend3'                                => 'SERVER_URL_SETTINGS',
362 6730 acydburn
                                                'force_server_vars'                => array('lang' => 'FORCE_SERVER_VARS',        'validate' => 'bool',                        'type' => 'radio:yes_no', 'explain' => true),
363 6730 acydburn
                                                'server_protocol'                => array('lang' => 'SERVER_PROTOCOL',        'validate' => 'string',                        'type' => 'text:10:10', 'explain' => true),
364 6730 acydburn
                                                'server_name'                        => array('lang' => 'SERVER_NAME',                'validate' => 'string',                        'type' => 'text:40:255', 'explain' => true),
365 8407 Kellanved
                                                'server_port'                        => array('lang' => 'SERVER_PORT',                'validate' => 'int:0',                        'type' => 'text:5:5', 'explain' => true),
366 6730 acydburn
                                                'script_path'                        => array('lang' => 'SCRIPT_PATH',                'validate' => 'script_path',        'type' => 'text::255', 'explain' => true),
367 9575 acydburn
368 9575 acydburn
                                                'legend4'                                        => 'ACP_SUBMIT_CHANGES',
369 5303 acydburn
                                        )
370 5303 acydburn
                                );
371 5337 acydburn
                        break;
372 5303 acydburn
373 5787 acydburn
                        case 'security':
374 5787 acydburn
                                $display_vars = array(
375 5787 acydburn
                                        'title'        => 'ACP_SECURITY_SETTINGS',
376 5787 acydburn
                                        'vars'        => array(
377 5787 acydburn
                                                'legend1'                                => 'ACP_SECURITY_SETTINGS',
378 6367 acydburn
                                                'allow_autologin'                => array('lang' => 'ALLOW_AUTOLOGIN',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
379 8407 Kellanved
                                                'max_autologin_time'        => array('lang' => 'AUTOLOGIN_LENGTH',                'validate' => 'int:0',        'type' => 'text:5:5', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
380 6367 acydburn
                                                'ip_check'                                => array('lang' => 'IP_VALID',                                'validate' => 'int',        'type' => 'custom', 'method' => 'select_ip_check', 'explain' => true),
381 6367 acydburn
                                                'browser_check'                        => array('lang' => 'BROWSER_VALID',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
382 6744 naderman
                                                'forwarded_for_check'        => array('lang' => 'FORWARDED_FOR_VALID',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
383 8554 Kellanved
                                                'referer_validation'        => array('lang' => 'REFERER_VALID',                'validate' => 'int:0:3','type' => 'custom', 'method' => 'select_ref_check', 'explain' => true),
384 6414 acydburn
                                                'check_dnsbl'                        => array('lang' => 'CHECK_DNSBL',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
385 6414 acydburn
                                                'email_check_mx'                => array('lang' => 'EMAIL_CHECK_MX',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
386 11645 git-gate
                                                'max_pass_chars'                => array('lang' => 'PASSWORD_LENGTH', 'validate' => 'int:8:255', 'type' => false, 'method' => false, 'explain' => false,),
387 11645 git-gate
                                                'min_pass_chars'                => array('lang' => 'PASSWORD_LENGTH',        'validate' => 'int:1',        'type' => 'custom', 'method' => 'password_length', 'explain' => true),
388 6367 acydburn
                                                'pass_complex'                        => array('lang' => 'PASSWORD_TYPE',                        'validate' => 'string',        'type' => 'select', 'method' => 'select_password_chars', 'explain' => true),
389 8407 Kellanved
                                                'chg_passforce'                        => array('lang' => 'FORCE_PASS_CHANGE',                'validate' => 'int:0',        'type' => 'text:3:3', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
390 8407 Kellanved
                                                'max_login_attempts'        => array('lang' => 'MAX_LOGIN_ATTEMPTS',        'validate' => 'int:0',        'type' => 'text:3:3', 'explain' => true),
391 11215 git-gate
                                                'ip_login_limit_max'        => array('lang' => 'IP_LOGIN_LIMIT_MAX',        'validate' => 'int:0',        'type' => 'text:3:3', 'explain' => true),
392 11245 git-gate
                                                'ip_login_limit_time'        => array('lang' => 'IP_LOGIN_LIMIT_TIME',        'validate' => 'int:0',        'type' => 'text:5:5', 'explain' => true, 'append' => ' ' . $user->lang['SECONDS']),
393 11215 git-gate
                                                'ip_login_limit_use_forwarded'        => array('lang' => 'IP_LOGIN_LIMIT_USE_FORWARDED',        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
394 6367 acydburn
                                                'tpl_allow_php'                        => array('lang' => 'TPL_ALLOW_PHP',                        'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
395 8407 Kellanved
                                                'form_token_lifetime'        => array('lang' => 'FORM_TIME_MAX',                        'validate' => 'int:-1',        'type' => 'text:5:5', 'explain' => true, 'append' => ' ' . $user->lang['SECONDS']),
396 8156 kellanved
                                                'form_token_sid_guests'        => array('lang' => 'FORM_SID_GUESTS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
397 8156 kellanved
398 5787 acydburn
                                        )
399 5787 acydburn
                                );
400 5787 acydburn
                        break;
401 5787 acydburn
402 5303 acydburn
                        case 'email':
403 5303 acydburn
                                $display_vars = array(
404 5303 acydburn
                                        'title'        => 'ACP_EMAIL_SETTINGS',
405 5303 acydburn
                                        'vars'        => array(
406 5303 acydburn
                                                'legend1'                                => 'GENERAL_SETTINGS',
407 6367 acydburn
                                                'email_enable'                        => array('lang' => 'ENABLE_EMAIL',                        'validate' => 'bool',        'type' => 'radio:enabled_disabled', 'explain' => true),
408 6367 acydburn
                                                'board_email_form'                => array('lang' => 'BOARD_EMAIL_FORM',                'validate' => 'bool',        'type' => 'radio:enabled_disabled', 'explain' => true),
409 6367 acydburn
                                                'email_function_name'        => array('lang' => 'EMAIL_FUNCTION_NAME',        'validate' => 'string',        'type' => 'text:20:50', 'explain' => true),
410 8407 Kellanved
                                                'email_package_size'        => array('lang' => 'EMAIL_PACKAGE_SIZE',        'validate' => 'int:0',        'type' => 'text:5:5', 'explain' => true),
411 6367 acydburn
                                                'board_contact'                        => array('lang' => 'CONTACT_EMAIL',                        'validate' => 'string',        'type' => 'text:25:100', 'explain' => true),
412 6367 acydburn
                                                'board_email'                        => array('lang' => 'ADMIN_EMAIL',                        'validate' => 'string',        'type' => 'text:25:100', 'explain' => true),
413 6367 acydburn
                                                'board_email_sig'                => array('lang' => 'EMAIL_SIG',                                'validate' => 'string',        'type' => 'textarea:5:30', 'explain' => true),
414 6367 acydburn
                                                'board_hide_emails'                => array('lang' => 'BOARD_HIDE_EMAILS',                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
415 6015 acydburn
416 5303 acydburn
                                                'legend2'                                => 'SMTP_SETTINGS',
417 6367 acydburn
                                                'smtp_delivery'                        => array('lang' => 'USE_SMTP',                                'validate' => 'bool',        'type' => 'radio:yes_no', 'explain' => true),
418 6367 acydburn
                                                'smtp_host'                                => array('lang' => 'SMTP_SERVER',                        'validate' => 'string',        'type' => 'text:25:50', 'explain' => false),
419 8407 Kellanved
                                                'smtp_port'                                => array('lang' => 'SMTP_PORT',                                'validate' => 'int:0',        'type' => 'text:4:5', 'explain' => true),
420 6367 acydburn
                                                'smtp_auth_method'                => array('lang' => 'SMTP_AUTH_METHOD',                'validate' => 'string',        'type' => 'select', 'method' => 'mail_auth_select', 'explain' => true),
421 6367 acydburn
                                                'smtp_username'                        => array('lang' => 'SMTP_USERNAME',                        'validate' => 'string',        'type' => 'text:25:255', 'explain' => true),
422 9575 acydburn
                                                'smtp_password'                        => array('lang' => 'SMTP_PASSWORD',                        'validate' => 'string',        'type' => 'password:25:255', 'explain' => true),
423 9575 acydburn
424 9575 acydburn
                                                'legend3'                                        => 'ACP_SUBMIT_CHANGES',
425 5303 acydburn
                                        )
426 5303 acydburn
                                );
427 5337 acydburn
                        break;
428 5303 acydburn
429 5303 acydburn
                        default:
430 6320 acydburn
                                trigger_error('NO_MODE', E_USER_ERROR);
431 6320 acydburn
                        break;
432 5303 acydburn
                }
433 5303 acydburn
434 5303 acydburn
                if (isset($display_vars['lang']))
435 5303 acydburn
                {
436 5303 acydburn
                        $user->add_lang($display_vars['lang']);
437 5303 acydburn
                }
438 5303 acydburn
439 5303 acydburn
                $this->new_config = $config;
440 6584 acydburn
                $cfg_array = (isset($_REQUEST['config'])) ? utf8_normalize_nfc(request_var('config', array('' => ''), true)) : $this->new_config;
441 6367 acydburn
                $error = array();
442 5303 acydburn
443 6367 acydburn
                // We validate the complete config if whished
444 6367 acydburn
                validate_config_vars($display_vars['vars'], $cfg_array, $error);
445 6367 acydburn
446 8120 kellanved
                if ($submit && !check_form_key($form_key))
447 8120 kellanved
                {
448 8120 kellanved
                        $error[] = $user->lang['FORM_INVALID'];
449 8120 kellanved
                }
450 6367 acydburn
                // Do not write values if there is an error
451 6367 acydburn
                if (sizeof($error))
452 6367 acydburn
                {
453 6367 acydburn
                        $submit = false;
454 6367 acydburn
                }
455 6367 acydburn
456 5303 acydburn
                // We go through the display_vars to make sure no one is trying to set variables he/she is not allowed to...
457 5303 acydburn
                foreach ($display_vars['vars'] as $config_name => $null)
458 5303 acydburn
                {
459 9965 acydburn
                        if (!isset($cfg_array[$config_name]) || strpos($config_name, 'legend') !== false)
460 5303 acydburn
                        {
461 5303 acydburn
                                continue;
462 5303 acydburn
                        }
463 5303 acydburn
464 9965 acydburn
                        if ($config_name == 'auth_method' || $config_name == 'feed_news_id' || $config_name == 'feed_exclude_id')
465 5653 naderman
                        {
466 5653 naderman
                                continue;
467 5653 naderman
                        }
468 5653 naderman
469 5902 acydburn
                        $this->new_config[$config_name] = $config_value = $cfg_array[$config_name];
470 5303 acydburn
471 5303 acydburn
                        if ($config_name == 'email_function_name')
472 5303 acydburn
                        {
473 5349 davidmj
                                $this->new_config['email_function_name'] = trim(str_replace(array('(', ')'), array('', ''), $this->new_config['email_function_name']));
474 5349 davidmj
                                $this->new_config['email_function_name'] = (empty($this->new_config['email_function_name']) || !function_exists($this->new_config['email_function_name'])) ? 'mail' : $this->new_config['email_function_name'];
475 5902 acydburn
                                $config_value = $this->new_config['email_function_name'];
476 5303 acydburn
                        }
477 5303 acydburn
478 5303 acydburn
                        if ($submit)
479 5303 acydburn
                        {
480 5303 acydburn
                                set_config($config_name, $config_value);
481 10491 bantu
482 10491 bantu
                                if ($config_name == 'allow_quick_reply' && isset($_POST['allow_quick_reply_enable']))
483 10491 bantu
                                {
484 10491 bantu
                                        enable_bitfield_column_flag(FORUMS_TABLE, 'forum_flags', log(FORUM_FLAG_QUICK_REPLY, 2));
485 10491 bantu
                                }
486 5303 acydburn
                        }
487 5303 acydburn
                }
488 5303 acydburn
489 9965 acydburn
                // Store news and exclude ids
490 9965 acydburn
                if ($mode == 'feed' && $submit)
491 9965 acydburn
                {
492 10354 bantu
                        $cache->destroy('_feed_news_forum_ids');
493 10354 bantu
                        $cache->destroy('_feed_excluded_forum_ids');
494 10354 bantu
495 9965 acydburn
                        $this->store_feed_forums(FORUM_OPTION_FEED_NEWS, 'feed_news_id');
496 9965 acydburn
                        $this->store_feed_forums(FORUM_OPTION_FEED_EXCLUDE, 'feed_exclude_id');
497 9965 acydburn
                }
498 9965 acydburn
499 5340 naderman
                if ($mode == 'auth')
500 5340 naderman
                {
501 5340 naderman
                        // Retrieve a list of auth plugins and check their config values
502 5340 naderman
                        $auth_plugins = array();
503 5340 naderman
504 6912 acydburn
                        $dp = @opendir($phpbb_root_path . 'includes/auth');
505 6912 acydburn
506 6912 acydburn
                        if ($dp)
507 5340 naderman
                        {
508 6912 acydburn
                                while (($file = readdir($dp)) !== false)
509 5340 naderman
                                {
510 6912 acydburn
                                        if (preg_match('#^auth_(.*?)\.' . $phpEx . '$#', $file))
511 6912 acydburn
                                        {
512 8096 acydburn
                                                $auth_plugins[] = basename(preg_replace('#^auth_(.*?)\.' . $phpEx . '$#', '\1', $file));
513 6912 acydburn
                                        }
514 5340 naderman
                                }
515 6912 acydburn
                                closedir($dp);
516 6912 acydburn
517 6912 acydburn
                                sort($auth_plugins);
518 5340 naderman
                        }
519 5340 naderman
520 5653 naderman
                        $updated_auth_settings = false;
521 5653 naderman
                        $old_auth_config = array();
522 5340 naderman
                        foreach ($auth_plugins as $method)
523 5340 naderman
                        {
524 5340 naderman
                                if ($method && file_exists($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx))
525 5340 naderman
                                {
526 5340 naderman
                                        include_once($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx);
527 5340 naderman
528 6151 naderman
                                        $method = 'acp_' . $method;
529 5340 naderman
                                        if (function_exists($method))
530 5340 naderman
                                        {
531 5340 naderman
                                                if ($fields = $method($this->new_config))
532 5340 naderman
                                                {
533 5340 naderman
                                                        // Check if we need to create config fields for this plugin and save config when submit was pressed
534 5340 naderman
                                                        foreach ($fields['config'] as $field)
535 5340 naderman
                                                        {
536 5340 naderman
                                                                if (!isset($config[$field]))
537 5340 naderman
                                                                {
538 5340 naderman
                                                                        set_config($field, '');
539 5340 naderman
                                                                }
540 5340 naderman
541 5340 naderman
                                                                if (!isset($cfg_array[$field]) || strpos($field, 'legend') !== false)
542 5340 naderman
                                                                {
543 5340 naderman
                                                                        continue;
544 5340 naderman
                                                                }
545 5340 naderman
546 5653 naderman
                                                                $old_auth_config[$field] = $this->new_config[$field];
547 5340 naderman
                                                                $config_value = $cfg_array[$field];
548 5340 naderman
                                                                $this->new_config[$field] = $config_value;
549 5340 naderman
550 5340 naderman
                                                                if ($submit)
551 5340 naderman
                                                                {
552 5653 naderman
                                                                        $updated_auth_settings = true;
553 5340 naderman
                                                                        set_config($field, $config_value);
554 5340 naderman
                                                                }
555 5340 naderman
                                                        }
556 5340 naderman
                                                }
557 5340 naderman
                                                unset($fields);
558 5340 naderman
                                        }
559 5340 naderman
                                }
560 5340 naderman
                        }
561 5653 naderman
562 5653 naderman
                        if ($submit && (($cfg_array['auth_method'] != $this->new_config['auth_method']) || $updated_auth_settings))
563 5653 naderman
                        {
564 8096 acydburn
                                $method = basename($cfg_array['auth_method']);
565 5653 naderman
                                if ($method && in_array($method, $auth_plugins))
566 5653 naderman
                                {
567 5653 naderman
                                        include_once($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx);
568 5653 naderman
569 5653 naderman
                                        $method = 'init_' . $method;
570 5653 naderman
                                        if (function_exists($method))
571 5653 naderman
                                        {
572 5655 naderman
                                                if ($error = $method())
573 5653 naderman
                                                {
574 5653 naderman
                                                        foreach ($old_auth_config as $config_name => $config_value)
575 5653 naderman
                                                        {
576 5653 naderman
                                                                set_config($config_name, $config_value);
577 5653 naderman
                                                        }
578 6320 acydburn
                                                        trigger_error($error . adm_back_link($this->u_action), E_USER_WARNING);
579 5653 naderman
                                                }
580 5653 naderman
                                        }
581 8096 acydburn
                                        set_config('auth_method', basename($cfg_array['auth_method']));
582 5653 naderman
                                }
583 5653 naderman
                                else
584 5653 naderman
                                {
585 6320 acydburn
                                        trigger_error('NO_AUTH_PLUGIN', E_USER_ERROR);
586 5653 naderman
                                }
587 5653 naderman
                        }
588 5340 naderman
                }
589 5340 naderman
590 5303 acydburn
                if ($submit)
591 5303 acydburn
                {
592 5310 acydburn
                        add_log('admin', 'LOG_CONFIG_' . strtoupper($mode));
593 5303 acydburn
594 5558 acydburn
                        trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
595 5303 acydburn
                }
596 5303 acydburn
597 5303 acydburn
                $this->tpl_name = 'acp_board';
598 5310 acydburn
                $this->page_title = $display_vars['title'];
599 5303 acydburn
600 5303 acydburn
                $template->assign_vars(array(
601 5303 acydburn
                        'L_TITLE'                        => $user->lang[$display_vars['title']],
602 5303 acydburn
                        'L_TITLE_EXPLAIN'        => $user->lang[$display_vars['title'] . '_EXPLAIN'],
603 6367 acydburn
604 6367 acydburn
                        'S_ERROR'                        => (sizeof($error)) ? true : false,
605 6367 acydburn
                        'ERROR_MSG'                        => implode('<br />', $error),
606 6367 acydburn
607 5558 acydburn
                        'U_ACTION'                        => $this->u_action)
608 5303 acydburn
                );
609 5303 acydburn
610 5303 acydburn
                // Output relevant page
611 5303 acydburn
                foreach ($display_vars['vars'] as $config_key => $vars)
612 5303 acydburn
                {
613 5303 acydburn
                        if (!is_array($vars) && strpos($config_key, 'legend') === false)
614 5303 acydburn
                        {
615 5303 acydburn
                                continue;
616 5303 acydburn
                        }
617 5303 acydburn
618 5303 acydburn
                        if (strpos($config_key, 'legend') !== false)
619 5303 acydburn
                        {
620 5303 acydburn
                                $template->assign_block_vars('options', array(
621 5303 acydburn
                                        'S_LEGEND'                => true,
622 5902 acydburn
                                        'LEGEND'                => (isset($user->lang[$vars])) ? $user->lang[$vars] : $vars)
623 5303 acydburn
                                );
624 5303 acydburn
625 5303 acydburn
                                continue;
626 5303 acydburn
                        }
627 5303 acydburn
628 5303 acydburn
                        $type = explode(':', $vars['type']);
629 5303 acydburn
630 5902 acydburn
                        $l_explain = '';
631 5902 acydburn
                        if ($vars['explain'] && isset($vars['lang_explain']))
632 5902 acydburn
                        {
633 5902 acydburn
                                $l_explain = (isset($user->lang[$vars['lang_explain']])) ? $user->lang[$vars['lang_explain']] : $vars['lang_explain'];
634 5902 acydburn
                        }
635 5902 acydburn
                        else if ($vars['explain'])
636 5902 acydburn
                        {
637 5902 acydburn
                                $l_explain = (isset($user->lang[$vars['lang'] . '_EXPLAIN'])) ? $user->lang[$vars['lang'] . '_EXPLAIN'] : '';
638 5902 acydburn
                        }
639 8804 acydburn
640 8422 Kellanved
                        $content = build_cfg_template($type, $config_key, $this->new_config, $config_key, $vars);
641 8804 acydburn
642 8422 Kellanved
                        if (empty($content))
643 8422 Kellanved
                        {
644 8422 Kellanved
                                continue;
645 8422 Kellanved
                        }
646 8804 acydburn
647 5303 acydburn
                        $template->assign_block_vars('options', array(
648 5303 acydburn
                                'KEY'                        => $config_key,
649 5902 acydburn
                                'TITLE'                        => (isset($user->lang[$vars['lang']])) ? $user->lang[$vars['lang']] : $vars['lang'],
650 5303 acydburn
                                'S_EXPLAIN'                => $vars['explain'],
651 5902 acydburn
                                'TITLE_EXPLAIN'        => $l_explain,
652 8497 Kellanved
                                'CONTENT'                => $content,
653 5303 acydburn
                                )
654 5303 acydburn
                        );
655 8350 acydburn
656 5303 acydburn
                        unset($display_vars['vars'][$config_key]);
657 5303 acydburn
                }
658 5303 acydburn
659 5303 acydburn
                if ($mode == 'auth')
660 5303 acydburn
                {
661 5303 acydburn
                        $template->assign_var('S_AUTH', true);
662 5303 acydburn
663 5303 acydburn
                        foreach ($auth_plugins as $method)
664 5303 acydburn
                        {
665 5303 acydburn
                                if ($method && file_exists($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx))
666 5303 acydburn
                                {
667 6151 naderman
                                        $method = 'acp_' . $method;
668 5303 acydburn
                                        if (function_exists($method))
669 5303 acydburn
                                        {
670 5340 naderman
                                                $fields = $method($this->new_config);
671 5303 acydburn
672 5303 acydburn
                                                if ($fields['tpl'])
673 5303 acydburn
                                                {
674 5303 acydburn
                                                        $template->assign_block_vars('auth_tpl', array(
675 5303 acydburn
                                                                'TPL'        => $fields['tpl'])
676 5303 acydburn
                                                        );
677 5303 acydburn
                                                }
678 5303 acydburn
                                                unset($fields);
679 5303 acydburn
                                        }
680 5303 acydburn
                                }
681 5303 acydburn
                        }
682 5303 acydburn
                }
683 5303 acydburn
        }
684 5303 acydburn
685 6073 acydburn
        /**
686 6073 acydburn
        * Select auth method
687 6073 acydburn
        */
688 5303 acydburn
        function select_auth_method($selected_method, $key = '')
689 5303 acydburn
        {
690 5336 acydburn
                global $phpbb_root_path, $phpEx;
691 5303 acydburn
692 5303 acydburn
                $auth_plugins = array();
693 5303 acydburn
694 6912 acydburn
                $dp = @opendir($phpbb_root_path . 'includes/auth');
695 6912 acydburn
696 6912 acydburn
                if (!$dp)
697 6912 acydburn
                {
698 6912 acydburn
                        return '';
699 6912 acydburn
                }
700 6912 acydburn
701 5594 davidmj
                while (($file = readdir($dp)) !== false)
702 5303 acydburn
                {
703 5303 acydburn
                        if (preg_match('#^auth_(.*?)\.' . $phpEx . '$#', $file))
704 5303 acydburn
                        {
705 5303 acydburn
                                $auth_plugins[] = preg_replace('#^auth_(.*?)\.' . $phpEx . '$#', '\1', $file);
706 5303 acydburn
                        }
707 5303 acydburn
                }
708 6912 acydburn
                closedir($dp);
709 5303 acydburn
710 5303 acydburn
                sort($auth_plugins);
711 5303 acydburn
712 5303 acydburn
                $auth_select = '';
713 5303 acydburn
                foreach ($auth_plugins as $method)
714 5303 acydburn
                {
715 5303 acydburn
                        $selected = ($selected_method == $method) ? ' selected="selected"' : '';
716 5303 acydburn
                        $auth_select .= '<option value="' . $method . '"' . $selected . '>' . ucfirst($method) . '</option>';
717 5303 acydburn
                }
718 5303 acydburn
719 5303 acydburn
                return $auth_select;
720 5303 acydburn
        }
721 5303 acydburn
722 6073 acydburn
        /**
723 6073 acydburn
        * Select mail authentication method
724 6073 acydburn
        */
725 5303 acydburn
        function mail_auth_select($selected_method, $key = '')
726 5303 acydburn
        {
727 5303 acydburn
                global $user;
728 5303 acydburn
729 5303 acydburn
                $auth_methods = array('PLAIN', 'LOGIN', 'CRAM-MD5', 'DIGEST-MD5', 'POP-BEFORE-SMTP');
730 5303 acydburn
                $s_smtp_auth_options = '';
731 5303 acydburn
732 5303 acydburn
                foreach ($auth_methods as $method)
733 5303 acydburn
                {
734 5303 acydburn
                        $s_smtp_auth_options .= '<option value="' . $method . '"' . (($selected_method == $method) ? ' selected="selected"' : '') . '>' . $user->lang['SMTP_' . str_replace('-', '_', $method)] . '</option>';
735 5303 acydburn
                }
736 5303 acydburn
737 5303 acydburn
                return $s_smtp_auth_options;
738 5303 acydburn
        }
739 5303 acydburn
740 6073 acydburn
        /**
741 6073 acydburn
        * Select full folder action
742 6073 acydburn
        */
743 5303 acydburn
        function full_folder_select($value, $key = '')
744 5303 acydburn
        {
745 5303 acydburn
                global $user;
746 5303 acydburn
747 5902 acydburn
                return '<option value="1"' . (($value == 1) ? ' selected="selected"' : '') . '>' . $user->lang['DELETE_OLDEST_MESSAGES'] . '</option><option value="2"' . (($value == 2) ? ' selected="selected"' : '') . '>' . $user->lang['HOLD_NEW_MESSAGES_SHORT'] . '</option>';
748 5303 acydburn
        }
749 5303 acydburn
750 6073 acydburn
        /**
751 6073 acydburn
        * Select ip validation
752 6073 acydburn
        */
753 5303 acydburn
        function select_ip_check($value, $key = '')
754 5303 acydburn
        {
755 6241 naderman
                $radio_ary = array(4 => 'ALL', 3 => 'CLASS_C', 2 => 'CLASS_B', 0 => 'NO_IP_VALIDATION');
756 5303 acydburn
757 5303 acydburn
                return h_radio('config[ip_check]', $radio_ary, $value, $key);
758 5303 acydburn
        }
759 8804 acydburn
760 8554 Kellanved
        /**
761 8554 Kellanved
        * Select referer validation
762 8554 Kellanved
        */
763 8554 Kellanved
        function select_ref_check($value, $key = '')
764 8554 Kellanved
        {
765 8554 Kellanved
                $radio_ary = array(REFERER_VALIDATE_PATH => 'REF_PATH', REFERER_VALIDATE_HOST => 'REF_HOST', REFERER_VALIDATE_NONE => 'NO_REF_VALIDATION');
766 5303 acydburn
767 8554 Kellanved
                return h_radio('config[referer_validation]', $radio_ary, $value, $key);
768 8554 Kellanved
        }
769 8804 acydburn
770 6073 acydburn
        /**
771 6073 acydburn
        * Select account activation method
772 6073 acydburn
        */
773 11589 git-gate
        function select_acc_activation($selected_value, $value)
774 5303 acydburn
        {
775 5303 acydburn
                global $user, $config;
776 5303 acydburn
777 11589 git-gate
                $act_ary = array(
778 11589 git-gate
                  'ACC_DISABLE' => USER_ACTIVATION_DISABLE,
779 11589 git-gate
                  'ACC_NONE' => USER_ACTIVATION_NONE,
780 11177 git-gate
                );
781 5303 acydburn
                if ($config['email_enable'])
782 5303 acydburn
                {
783 11589 git-gate
                        $act_ary['ACC_USER'] = USER_ACTIVATION_SELF;
784 11589 git-gate
                        $act_ary['ACC_ADMIN'] = USER_ACTIVATION_ADMIN;
785 11589 git-gate
                }
786 11589 git-gate
                $act_options = '';
787 11589 git-gate
788 11589 git-gate
                foreach ($act_ary as $key => $value)
789 11589 git-gate
                {
790 11589 git-gate
                        $selected = ($selected_value == $value) ? ' selected="selected"' : '';
791 11589 git-gate
                        $act_options .= '<option value="' . $value . '"' . $selected . '>' . $user->lang[$key] . '</option>';
792 5303 acydburn
                }
793 5303 acydburn
794 11589 git-gate
                return $act_options;
795 5303 acydburn
        }
796 5303 acydburn
797 6073 acydburn
        /**
798 6073 acydburn
        * Maximum/Minimum username length
799 6073 acydburn
        */
800 5303 acydburn
        function username_length($value, $key = '')
801 5303 acydburn
        {
802 5336 acydburn
                global $user;
803 5303 acydburn
804 5336 acydburn
                return '<input id="' . $key . '" type="text" size="3" maxlength="3" name="config[min_name_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . '&nbsp;&nbsp;<input type="text" size="3" maxlength="3" name="config[max_name_chars]" value="' . $this->new_config['max_name_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
805 5303 acydburn
        }
806 5303 acydburn
807 6073 acydburn
        /**
808 6073 acydburn
        * Allowed chars in usernames
809 6073 acydburn
        */
810 5303 acydburn
        function select_username_chars($selected_value, $key)
811 5303 acydburn
        {
812 5303 acydburn
                global $user;
813 5303 acydburn
814 7374 davidmj
                $user_char_ary = array('USERNAME_CHARS_ANY', 'USERNAME_ALPHA_ONLY', 'USERNAME_ALPHA_SPACERS', 'USERNAME_LETTER_NUM', 'USERNAME_LETTER_NUM_SPACERS', 'USERNAME_ASCII');
815 5303 acydburn
                $user_char_options = '';
816 7374 davidmj
                foreach ($user_char_ary as $user_type)
817 5303 acydburn
                {
818 7374 davidmj
                        $selected = ($selected_value == $user_type) ? ' selected="selected"' : '';
819 7374 davidmj
                        $user_char_options .= '<option value="' . $user_type . '"' . $selected . '>' . $user->lang[$user_type] . '</option>';
820 5303 acydburn
                }
821 5303 acydburn
822 5303 acydburn
                return $user_char_options;
823 5303 acydburn
        }
824 5303 acydburn
825 6073 acydburn
        /**
826 6073 acydburn
        * Maximum/Minimum password length
827 6073 acydburn
        */
828 5303 acydburn
        function password_length($value, $key)
829 5303 acydburn
        {
830 5336 acydburn
                global $user;
831 5303 acydburn
832 5336 acydburn
                return '<input id="' . $key . '" type="text" size="3" maxlength="3" name="config[min_pass_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . '&nbsp;&nbsp;<input type="text" size="3" maxlength="3" name="config[max_pass_chars]" value="' . $this->new_config['max_pass_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
833 5303 acydburn
        }
834 5303 acydburn
835 6073 acydburn
        /**
836 6073 acydburn
        * Required chars in passwords
837 6073 acydburn
        */
838 5303 acydburn
        function select_password_chars($selected_value, $key)
839 5303 acydburn
        {
840 5303 acydburn
                global $user;
841 5303 acydburn
842 6814 naderman
                $pass_type_ary = array('PASS_TYPE_ANY', 'PASS_TYPE_CASE', 'PASS_TYPE_ALPHA', 'PASS_TYPE_SYMBOL');
843 5303 acydburn
                $pass_char_options = '';
844 6814 naderman
                foreach ($pass_type_ary as $pass_type)
845 5303 acydburn
                {
846 6814 naderman
                        $selected = ($selected_value == $pass_type) ? ' selected="selected"' : '';
847 6814 naderman
                        $pass_char_options .= '<option value="' . $pass_type . '"' . $selected . '>' . $user->lang[$pass_type] . '</option>';
848 5303 acydburn
                }
849 5303 acydburn
850 5303 acydburn
                return $pass_char_options;
851 5303 acydburn
        }
852 5303 acydburn
853 6073 acydburn
        /**
854 6073 acydburn
        * Select bump interval
855 6073 acydburn
        */
856 5303 acydburn
        function bump_interval($value, $key)
857 5303 acydburn
        {
858 5336 acydburn
                global $user;
859 5303 acydburn
860 5303 acydburn
                $s_bump_type = '';
861 5303 acydburn
                $types = array('m' => 'MINUTES', 'h' => 'HOURS', 'd' => 'DAYS');
862 5303 acydburn
                foreach ($types as $type => $lang)
863 5303 acydburn
                {
864 5336 acydburn
                        $selected = ($this->new_config['bump_type'] == $type) ? ' selected="selected"' : '';
865 5336 acydburn
                        $s_bump_type .= '<option value="' . $type . '"' . $selected . '>' . $user->lang[$lang] . '</option>';
866 5303 acydburn
                }
867 5303 acydburn
868 5303 acydburn
                return '<input id="' . $key . '" type="text" size="3" maxlength="4" name="config[bump_interval]" value="' . $value . '" />&nbsp;<select name="config[bump_type]">' . $s_bump_type . '</select>';
869 5303 acydburn
        }
870 5303 acydburn
871 6073 acydburn
        /**
872 6073 acydburn
        * Board disable option and message
873 6073 acydburn
        */
874 5303 acydburn
        function board_disable($value, $key)
875 5303 acydburn
        {
876 5336 acydburn
                global $user;
877 5303 acydburn
878 5303 acydburn
                $radio_ary = array(1 => 'YES', 0 => 'NO');
879 5303 acydburn
880 5336 acydburn
                return h_radio('config[board_disable]', $radio_ary, $value) . '<br /><input id="' . $key . '" type="text" name="config[board_disable_msg]" maxlength="255" size="40" value="' . $this->new_config['board_disable_msg'] . '" />';
881 5303 acydburn
        }
882 6049 grahamje
883 6073 acydburn
        /**
884 10491 bantu
        * Global quick reply enable/disable setting and button to enable in all forums
885 10491 bantu
        */
886 10491 bantu
        function quick_reply($value, $key)
887 10491 bantu
        {
888 10491 bantu
                global $user;
889 10491 bantu
890 10491 bantu
                $radio_ary = array(1 => 'YES', 0 => 'NO');
891 10491 bantu
892 10491 bantu
                return h_radio('config[allow_quick_reply]', $radio_ary, $value) .
893 10491 bantu
                        '<br /><br /><input class="button2" type="submit" id="' . $key . '_enable" name="' . $key . '_enable" value="' . $user->lang['ALLOW_QUICK_REPLY_BUTTON'] . '" />';
894 10491 bantu
        }
895 10491 bantu
896 10491 bantu
897 10491 bantu
        /**
898 6073 acydburn
        * Select default dateformat
899 6073 acydburn
        */
900 6049 grahamje
        function dateformat_select($value, $key)
901 6049 grahamje
        {
902 6702 acydburn
                global $user, $config;
903 6049 grahamje
904 6702 acydburn
                // Let the format_date function operate with the acp values
905 6702 acydburn
                $old_tz = $user->timezone;
906 6702 acydburn
                $old_dst = $user->dst;
907 6702 acydburn
908 10607 git-gate
                $user->timezone = $config['board_timezone'] * 3600;
909 10607 git-gate
                $user->dst = $config['board_dst'] * 3600;
910 6702 acydburn
911 6049 grahamje
                $dateformat_options = '';
912 6049 grahamje
913 6049 grahamje
                foreach ($user->lang['dateformats'] as $format => $null)
914 6049 grahamje
                {
915 6049 grahamje
                        $dateformat_options .= '<option value="' . $format . '"' . (($format == $value) ? ' selected="selected"' : '') . '>';
916 7397 acydburn
                        $dateformat_options .= $user->format_date(time(), $format, false) . ((strpos($format, '|') !== false) ? $user->lang['VARIANT_DATE_SEPARATOR'] . $user->format_date(time(), $format, true) : '');
917 6049 grahamje
                        $dateformat_options .= '</option>';
918 6049 grahamje
                }
919 6049 grahamje
920 6049 grahamje
                $dateformat_options .= '<option value="custom"';
921 8350 acydburn
                if (!isset($user->lang['dateformats'][$value]))
922 6049 grahamje
                {
923 6049 grahamje
                        $dateformat_options .= ' selected="selected"';
924 6049 grahamje
                }
925 6049 grahamje
                $dateformat_options .= '>' . $user->lang['CUSTOM_DATEFORMAT'] . '</option>';
926 6049 grahamje
927 6702 acydburn
                // Reset users date options
928 6702 acydburn
                $user->timezone = $old_tz;
929 6702 acydburn
                $user->dst = $old_dst;
930 6702 acydburn
931 8099 acydburn
                return "<select name=\"dateoptions\" id=\"dateoptions\" onchange=\"if (this.value == 'custom') { document.getElementById('" . addslashes($key) . "').value = '" . addslashes($value) . "'; } else { document.getElementById('" . addslashes($key) . "').value = this.value; }\">$dateformat_options</select>
932 6049 grahamje
                <input type=\"text\" name=\"config[$key]\" id=\"$key\" value=\"$value\" maxlength=\"30\" />";
933 6049 grahamje
        }
934 9575 acydburn
935 9575 acydburn
        /**
936 9575 acydburn
        * Select multiple forums
937 9575 acydburn
        */
938 9575 acydburn
        function select_news_forums($value, $key)
939 9575 acydburn
        {
940 9575 acydburn
                global $user, $config;
941 9575 acydburn
942 9965 acydburn
                $forum_list = make_forum_select(false, false, true, true, true, false, true);
943 9575 acydburn
944 9575 acydburn
                // Build forum options
945 9965 acydburn
                $s_forum_options = '<select id="' . $key . '" name="' . $key . '[]" multiple="multiple">';
946 9575 acydburn
                foreach ($forum_list as $f_id => $f_row)
947 9575 acydburn
                {
948 9965 acydburn
                        $f_row['selected'] = phpbb_optionget(FORUM_OPTION_FEED_NEWS, $f_row['forum_options']);
949 9965 acydburn
950 9575 acydburn
                        $s_forum_options .= '<option value="' . $f_id . '"' . (($f_row['selected']) ? ' selected="selected"' : '') . (($f_row['disabled']) ? ' disabled="disabled" class="disabled-option"' : '') . '>' . $f_row['padding'] . $f_row['forum_name'] . '</option>';
951 9575 acydburn
                }
952 9965 acydburn
                $s_forum_options .= '</select>';
953 9575 acydburn
954 9575 acydburn
                return $s_forum_options;
955 9575 acydburn
        }
956 9575 acydburn
957 9575 acydburn
        function select_exclude_forums($value, $key)
958 9575 acydburn
        {
959 9575 acydburn
                global $user, $config;
960 9575 acydburn
961 10405 bantu
                $forum_list = make_forum_select(false, false, true, true, true, false, true);
962 9575 acydburn
963 9575 acydburn
                // Build forum options
964 9965 acydburn
                $s_forum_options = '<select id="' . $key . '" name="' . $key . '[]" multiple="multiple">';
965 9575 acydburn
                foreach ($forum_list as $f_id => $f_row)
966 9575 acydburn
                {
967 9965 acydburn
                        $f_row['selected'] = phpbb_optionget(FORUM_OPTION_FEED_EXCLUDE, $f_row['forum_options']);
968 9965 acydburn
969 9575 acydburn
                        $s_forum_options .= '<option value="' . $f_id . '"' . (($f_row['selected']) ? ' selected="selected"' : '') . (($f_row['disabled']) ? ' disabled="disabled" class="disabled-option"' : '') . '>' . $f_row['padding'] . $f_row['forum_name'] . '</option>';
970 9575 acydburn
                }
971 9965 acydburn
                $s_forum_options .= '</select>';
972 9575 acydburn
973 9575 acydburn
                return $s_forum_options;
974 9575 acydburn
        }
975 9965 acydburn
976 9965 acydburn
        function store_feed_forums($option, $key)
977 9965 acydburn
        {
978 9965 acydburn
                global $db, $cache;
979 9965 acydburn
980 9965 acydburn
                // Get key
981 9965 acydburn
                $values = request_var($key, array(0 => 0));
982 9965 acydburn
983 9965 acydburn
                // Empty option bit for all forums
984 9965 acydburn
                $sql = 'UPDATE ' . FORUMS_TABLE . '
985 9965 acydburn
                        SET forum_options = forum_options - ' . (1 << $option) . '
986 9965 acydburn
                        WHERE ' . $db->sql_bit_and('forum_options', $option, '<> 0');
987 9965 acydburn
                $db->sql_query($sql);
988 9965 acydburn
989 9965 acydburn
                // Already emptied for all...
990 9965 acydburn
                if (sizeof($values))
991 9965 acydburn
                {
992 9965 acydburn
                        // Set for selected forums
993 9965 acydburn
                        $sql = 'UPDATE ' . FORUMS_TABLE . '
994 9965 acydburn
                                SET forum_options = forum_options + ' . (1 << $option) . '
995 9965 acydburn
                                WHERE ' . $db->sql_in_set('forum_id', $values);
996 9965 acydburn
                        $db->sql_query($sql);
997 9965 acydburn
                }
998 9965 acydburn
999 9965 acydburn
                // Empty sql cache for forums table because options changed
1000 9965 acydburn
                $cache->destroy('sql', FORUMS_TABLE);
1001 9965 acydburn
        }
1002 9965 acydburn
1003 5303 acydburn
}
1004 5303 acydburn
1005 5303 acydburn
?>