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

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