| 1 |
<?php
|
| 2 |
/**
|
| 3 |
*
|
| 4 |
* @package acp
|
| 5 |
* @version $Id: acp_board.php 8911 2008-09-23 13:03:33Z acydburn $
|
| 6 |
* @copyright (c) 2005 phpBB Group
|
| 7 |
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
|
| 8 |
*
|
| 9 |
* @todo add cron intervals to server settings? (database_gc, queue_interval, session_gc, search_gc, cache_gc, warnings_gc)
|
| 10 |
*/
|
| 11 |
|
| 12 |
/**
|
| 13 |
* @ignore
|
| 14 |
*/
|
| 15 |
if (!defined('IN_PHPBB'))
|
| 16 |
{
|
| 17 |
exit;
|
| 18 |
}
|
| 19 |
|
| 20 |
/**
|
| 21 |
* @package acp
|
| 22 |
*/
|
| 23 |
class acp_board
|
| 24 |
{
|
| 25 |
var $u_action;
|
| 26 |
var $new_config = array();
|
| 27 |
|
| 28 |
function main($id, $mode)
|
| 29 |
{
|
| 30 |
global $db, $user, $auth, $template;
|
| 31 |
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
|
| 32 |
|
| 33 |
$user->add_lang('acp/board');
|
| 34 |
|
| 35 |
$action = request_var('action', '');
|
| 36 |
$submit = (isset($_POST['submit'])) ? true : false;
|
| 37 |
|
| 38 |
$form_key = 'acp_board';
|
| 39 |
add_form_key($form_key);
|
| 40 |
|
| 41 |
/**
|
| 42 |
* Validation types are:
|
| 43 |
* string, int, bool,
|
| 44 |
* script_path (absolute path in url - beginning with / and no trailing slash),
|
| 45 |
* rpath (relative), rwpath (realtive, writable), path (relative path, but able to escape the root), wpath (writable)
|
| 46 |
*/
|
| 47 |
switch ($mode)
|
| 48 |
{
|
| 49 |
case 'settings':
|
| 50 |
$display_vars = array(
|
| 51 |
'title' => 'ACP_BOARD_SETTINGS',
|
| 52 |
'vars' => array(
|
| 53 |
'legend1' => 'ACP_BOARD_SETTINGS',
|
| 54 |
'sitename' => array('lang' => 'SITE_NAME', 'validate' => 'string', 'type' => 'text:40:255', 'explain' => false),
|
| 55 |
'site_desc' => array('lang' => 'SITE_DESC', 'validate' => 'string', 'type' => 'text:40:255', 'explain' => false),
|
| 56 |
'board_disable' => array('lang' => 'DISABLE_BOARD', 'validate' => 'bool', 'type' => 'custom', 'method' => 'board_disable', 'explain' => true),
|
| 57 |
'board_disable_msg' => false,
|
| 58 |
'default_lang' => array('lang' => 'DEFAULT_LANGUAGE', 'validate' => 'lang', 'type' => 'select', 'function' => 'language_select', 'params' => array('{CONFIG_VALUE}'), 'explain' => false),
|
| 59 |
'default_dateformat' => array('lang' => 'DEFAULT_DATE_FORMAT', 'validate' => 'string', 'type' => 'custom', 'method' => 'dateformat_select', 'explain' => true),
|
| 60 |
'board_timezone' => array('lang' => 'SYSTEM_TIMEZONE', 'validate' => 'string', 'type' => 'select', 'function' => 'tz_select', 'params' => array('{CONFIG_VALUE}', 1), 'explain' => false),
|
| 61 |
'board_dst' => array('lang' => 'SYSTEM_DST', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 62 |
'default_style' => array('lang' => 'DEFAULT_STYLE', 'validate' => 'int', 'type' => 'select', 'function' => 'style_select', 'params' => array('{CONFIG_VALUE}', false), 'explain' => false),
|
| 63 |
'override_user_style' => array('lang' => 'OVERRIDE_STYLE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 64 |
|
| 65 |
'legend2' => 'WARNINGS',
|
| 66 |
'warnings_expire_days' => array('lang' => 'WARNINGS_EXPIRE', 'validate' => 'int', 'type' => 'text:3:4', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
|
| 67 |
)
|
| 68 |
);
|
| 69 |
break;
|
| 70 |
|
| 71 |
case 'features':
|
| 72 |
$display_vars = array(
|
| 73 |
'title' => 'ACP_BOARD_FEATURES',
|
| 74 |
'vars' => array(
|
| 75 |
'legend1' => 'ACP_BOARD_FEATURES',
|
| 76 |
'allow_privmsg' => array('lang' => 'BOARD_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 77 |
'allow_topic_notify' => array('lang' => 'ALLOW_TOPIC_NOTIFY', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 78 |
'allow_forum_notify' => array('lang' => 'ALLOW_FORUM_NOTIFY', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 79 |
'allow_namechange' => array('lang' => 'ALLOW_NAME_CHANGE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 80 |
'allow_attachments' => array('lang' => 'ALLOW_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 81 |
'allow_pm_attach' => array('lang' => 'ALLOW_PM_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 82 |
'allow_bbcode' => array('lang' => 'ALLOW_BBCODE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 83 |
'allow_smilies' => array('lang' => 'ALLOW_SMILIES', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 84 |
'allow_sig' => array('lang' => 'ALLOW_SIG', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 85 |
'allow_nocensors' => array('lang' => 'ALLOW_NO_CENSORS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 86 |
'allow_bookmarks' => array('lang' => 'ALLOW_BOOKMARKS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 87 |
'allow_birthdays' => array('lang' => 'ALLOW_BIRTHDAYS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 88 |
|
| 89 |
'legend2' => 'ACP_LOAD_SETTINGS',
|
| 90 |
'load_birthdays' => array('lang' => 'YES_BIRTHDAYS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 91 |
'load_moderators' => array('lang' => 'YES_MODERATORS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 92 |
'load_jumpbox' => array('lang' => 'YES_JUMPBOX', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 93 |
'load_cpf_memberlist' => array('lang' => 'LOAD_CPF_MEMBERLIST', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 94 |
'load_cpf_viewprofile' => array('lang' => 'LOAD_CPF_VIEWPROFILE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 95 |
'load_cpf_viewtopic' => array('lang' => 'LOAD_CPF_VIEWTOPIC', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 96 |
)
|
| 97 |
);
|
| 98 |
break;
|
| 99 |
|
| 100 |
case 'avatar':
|
| 101 |
$display_vars = array(
|
| 102 |
'title' => 'ACP_AVATAR_SETTINGS',
|
| 103 |
'vars' => array(
|
| 104 |
'legend1' => 'ACP_AVATAR_SETTINGS',
|
| 105 |
|
| 106 |
'avatar_min_width' => array('lang' => 'MIN_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
| 107 |
'avatar_min_height' => array('lang' => 'MIN_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
| 108 |
'avatar_max_width' => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
| 109 |
'avatar_max_height' => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => false, 'method' => false, 'explain' => false,),
|
| 110 |
|
| 111 |
'allow_avatar_local' => array('lang' => 'ALLOW_LOCAL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 112 |
'allow_avatar_remote' => array('lang' => 'ALLOW_REMOTE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 113 |
'allow_avatar_upload' => array('lang' => 'ALLOW_UPLOAD', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 114 |
'avatar_filesize' => array('lang' => 'MAX_FILESIZE', 'validate' => 'int:0', 'type' => 'text:4:10', 'explain' => true, 'append' => ' ' . $user->lang['BYTES']),
|
| 115 |
'avatar_min' => array('lang' => 'MIN_AVATAR_SIZE', 'validate' => 'int:0', 'type' => 'dimension:3:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
| 116 |
'avatar_max' => array('lang' => 'MAX_AVATAR_SIZE', 'validate' => 'int:0', 'type' => 'dimension:3:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
| 117 |
'avatar_path' => array('lang' => 'AVATAR_STORAGE_PATH', 'validate' => 'rwpath', 'type' => 'text:20:255', 'explain' => true),
|
| 118 |
'avatar_gallery_path' => array('lang' => 'AVATAR_GALLERY_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true)
|
| 119 |
)
|
| 120 |
);
|
| 121 |
break;
|
| 122 |
|
| 123 |
case 'message':
|
| 124 |
$display_vars = array(
|
| 125 |
'title' => 'ACP_MESSAGE_SETTINGS',
|
| 126 |
'lang' => 'ucp',
|
| 127 |
'vars' => array(
|
| 128 |
'legend1' => 'GENERAL_SETTINGS',
|
| 129 |
'allow_privmsg' => array('lang' => 'BOARD_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 130 |
'pm_max_boxes' => array('lang' => 'BOXES_MAX', 'validate' => 'int:0', 'type' => 'text:4:4', 'explain' => true),
|
| 131 |
'pm_max_msgs' => array('lang' => 'BOXES_LIMIT', 'validate' => 'int:0', 'type' => 'text:4:4', 'explain' => true),
|
| 132 |
'full_folder_action' => array('lang' => 'FULL_FOLDER_ACTION', 'validate' => 'int', 'type' => 'select', 'method' => 'full_folder_select', 'explain' => true),
|
| 133 |
'pm_edit_time' => array('lang' => 'PM_EDIT_TIME', 'validate' => 'int:0', 'type' => 'text:5:5', 'explain' => true, 'append' => ' ' . $user->lang['MINUTES']),
|
| 134 |
'pm_max_recipients' => array('lang' => 'PM_MAX_RECIPIENTS', 'validate' => 'int:0', 'type' => 'text:5:5', 'explain' => true),
|
| 135 |
|
| 136 |
'legend2' => 'GENERAL_OPTIONS',
|
| 137 |
'allow_mass_pm' => array('lang' => 'ALLOW_MASS_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 138 |
'auth_bbcode_pm' => array('lang' => 'ALLOW_BBCODE_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 139 |
'auth_smilies_pm' => array('lang' => 'ALLOW_SMILIES_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 140 |
'allow_pm_attach' => array('lang' => 'ALLOW_PM_ATTACHMENTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 141 |
'allow_sig_pm' => array('lang' => 'ALLOW_SIG_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 142 |
'print_pm' => array('lang' => 'ALLOW_PRINT_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 143 |
'forward_pm' => array('lang' => 'ALLOW_FORWARD_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 144 |
'auth_img_pm' => array('lang' => 'ALLOW_IMG_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 145 |
'auth_flash_pm' => array('lang' => 'ALLOW_FLASH_PM', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 146 |
'enable_pm_icons' => array('lang' => 'ENABLE_PM_ICONS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false)
|
| 147 |
)
|
| 148 |
);
|
| 149 |
break;
|
| 150 |
|
| 151 |
case 'post':
|
| 152 |
$display_vars = array(
|
| 153 |
'title' => 'ACP_POST_SETTINGS',
|
| 154 |
'vars' => array(
|
| 155 |
'legend1' => 'GENERAL_OPTIONS',
|
| 156 |
'allow_topic_notify' => array('lang' => 'ALLOW_TOPIC_NOTIFY', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 157 |
'allow_forum_notify' => array('lang' => 'ALLOW_FORUM_NOTIFY', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 158 |
'allow_bbcode' => array('lang' => 'ALLOW_BBCODE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 159 |
'allow_post_flash' => array('lang' => 'ALLOW_POST_FLASH', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 160 |
'allow_smilies' => array('lang' => 'ALLOW_SMILIES', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 161 |
'allow_post_links' => array('lang' => 'ALLOW_POST_LINKS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 162 |
'allow_nocensors' => array('lang' => 'ALLOW_NO_CENSORS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 163 |
'allow_bookmarks' => array('lang' => 'ALLOW_BOOKMARKS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 164 |
'enable_post_confirm' => array('lang' => 'VISUAL_CONFIRM_POST', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 165 |
|
| 166 |
'legend2' => 'POSTING',
|
| 167 |
'enable_queue_trigger' => array('lang' => 'ENABLE_QUEUE_TRIGGER', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 168 |
'queue_trigger_posts' => array('lang' => 'QUEUE_TRIGGER_POSTS', 'validate' => 'int:0:250', 'type' => 'text:4:4', 'explain' => true),
|
| 169 |
'bump_type' => false,
|
| 170 |
'edit_time' => array('lang' => 'EDIT_TIME', 'validate' => 'int:0', 'type' => 'text:5:5', 'explain' => true, 'append' => ' ' . $user->lang['MINUTES']),
|
| 171 |
'display_last_edited' => array('lang' => 'DISPLAY_LAST_EDITED', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 172 |
'flood_interval' => array('lang' => 'FLOOD_INTERVAL', 'validate' => 'int:0', 'type' => 'text:3:10', 'explain' => true, 'append' => ' ' . $user->lang['SECONDS']),
|
| 173 |
'bump_interval' => array('lang' => 'BUMP_INTERVAL', 'validate' => 'int:0', 'type' => 'custom', 'method' => 'bump_interval', 'explain' => true),
|
| 174 |
'topics_per_page' => array('lang' => 'TOPICS_PER_PAGE', 'validate' => 'int:1', 'type' => 'text:3:4', 'explain' => false),
|
| 175 |
'posts_per_page' => array('lang' => 'POSTS_PER_PAGE', 'validate' => 'int:1', 'type' => 'text:3:4', 'explain' => false),
|
| 176 |
'hot_threshold' => array('lang' => 'HOT_THRESHOLD', 'validate' => 'int:0', 'type' => 'text:3:4', 'explain' => true),
|
| 177 |
'max_poll_options' => array('lang' => 'MAX_POLL_OPTIONS', 'validate' => 'int:2:127', 'type' => 'text:4:4', 'explain' => false),
|
| 178 |
'max_post_chars' => array('lang' => 'CHAR_LIMIT', 'validate' => 'int:0', 'type' => 'text:4:6', 'explain' => true),
|
| 179 |
'max_post_smilies' => array('lang' => 'SMILIES_LIMIT', 'validate' => 'int:0', 'type' => 'text:4:4', 'explain' => true),
|
| 180 |
'max_post_urls' => array('lang' => 'MAX_POST_URLS', 'validate' => 'int:0', 'type' => 'text:5:4', 'explain' => true),
|
| 181 |
'max_post_font_size' => array('lang' => 'MAX_POST_FONT_SIZE', 'validate' => 'int:0', 'type' => 'text:5:4', 'explain' => true, 'append' => ' %'),
|
| 182 |
'max_quote_depth' => array('lang' => 'QUOTE_DEPTH_LIMIT', 'validate' => 'int:0', 'type' => 'text:4:4', 'explain' => true),
|
| 183 |
'max_post_img_width' => array('lang' => 'MAX_POST_IMG_WIDTH', 'validate' => 'int:0', 'type' => 'text:5:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
| 184 |
'max_post_img_height' => array('lang' => 'MAX_POST_IMG_HEIGHT', 'validate' => 'int:0', 'type' => 'text:5:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
| 185 |
)
|
| 186 |
);
|
| 187 |
break;
|
| 188 |
|
| 189 |
case 'signature':
|
| 190 |
$display_vars = array(
|
| 191 |
'title' => 'ACP_SIGNATURE_SETTINGS',
|
| 192 |
'vars' => array(
|
| 193 |
'legend1' => 'GENERAL_OPTIONS',
|
| 194 |
'allow_sig' => array('lang' => 'ALLOW_SIG', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 195 |
'allow_sig_bbcode' => array('lang' => 'ALLOW_SIG_BBCODE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 196 |
'allow_sig_img' => array('lang' => 'ALLOW_SIG_IMG', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 197 |
'allow_sig_flash' => array('lang' => 'ALLOW_SIG_FLASH', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 198 |
'allow_sig_smilies' => array('lang' => 'ALLOW_SIG_SMILIES', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 199 |
'allow_sig_links' => array('lang' => 'ALLOW_SIG_LINKS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 200 |
|
| 201 |
'legend2' => 'GENERAL_SETTINGS',
|
| 202 |
'max_sig_chars' => array('lang' => 'MAX_SIG_LENGTH', 'validate' => 'int:0', 'type' => 'text:5:4', 'explain' => true),
|
| 203 |
'max_sig_urls' => array('lang' => 'MAX_SIG_URLS', 'validate' => 'int:0', 'type' => 'text:5:4', 'explain' => true),
|
| 204 |
'max_sig_font_size' => array('lang' => 'MAX_SIG_FONT_SIZE', 'validate' => 'int:0', 'type' => 'text:5:4', 'explain' => true, 'append' => ' %'),
|
| 205 |
'max_sig_smilies' => array('lang' => 'MAX_SIG_SMILIES', 'validate' => 'int:0', 'type' => 'text:5:4', 'explain' => true),
|
| 206 |
'max_sig_img_width' => array('lang' => 'MAX_SIG_IMG_WIDTH', 'validate' => 'int:0', 'type' => 'text:5:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
| 207 |
'max_sig_img_height' => array('lang' => 'MAX_SIG_IMG_HEIGHT', 'validate' => 'int:0', 'type' => 'text:5:4', 'explain' => true, 'append' => ' ' . $user->lang['PIXEL']),
|
| 208 |
)
|
| 209 |
);
|
| 210 |
break;
|
| 211 |
|
| 212 |
case 'registration':
|
| 213 |
$display_vars = array(
|
| 214 |
'title' => 'ACP_REGISTER_SETTINGS',
|
| 215 |
'vars' => array(
|
| 216 |
'legend1' => 'GENERAL_SETTINGS',
|
| 217 |
'max_name_chars' => array('lang' => 'USERNAME_LENGTH', 'validate' => 'int:8:180', 'type' => false, 'method' => false, 'explain' => false,),
|
| 218 |
'max_pass_chars' => array('lang' => 'PASSWORD_LENGTH', 'validate' => 'int:8:255', 'type' => false, 'method' => false, 'explain' => false,),
|
| 219 |
|
| 220 |
'require_activation' => array('lang' => 'ACC_ACTIVATION', 'validate' => 'int', 'type' => 'custom', 'method' => 'select_acc_activation', 'explain' => true),
|
| 221 |
'min_name_chars' => array('lang' => 'USERNAME_LENGTH', 'validate' => 'int:1', 'type' => 'custom:5:180', 'method' => 'username_length', 'explain' => true),
|
| 222 |
'min_pass_chars' => array('lang' => 'PASSWORD_LENGTH', 'validate' => 'int:1', 'type' => 'custom', 'method' => 'password_length', 'explain' => true),
|
| 223 |
'allow_name_chars' => array('lang' => 'USERNAME_CHARS', 'validate' => 'string', 'type' => 'select', 'method' => 'select_username_chars', 'explain' => true),
|
| 224 |
'pass_complex' => array('lang' => 'PASSWORD_TYPE', 'validate' => 'string', 'type' => 'select', 'method' => 'select_password_chars', 'explain' => true),
|
| 225 |
'chg_passforce' => array('lang' => 'FORCE_PASS_CHANGE', 'validate' => 'int:0', 'type' => 'text:3:3', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
|
| 226 |
|
| 227 |
'legend2' => 'GENERAL_OPTIONS',
|
| 228 |
'allow_namechange' => array('lang' => 'ALLOW_NAME_CHANGE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 229 |
'allow_emailreuse' => array('lang' => 'ALLOW_EMAIL_REUSE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 230 |
'enable_confirm' => array('lang' => 'VISUAL_CONFIRM_REG', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 231 |
'max_login_attempts' => array('lang' => 'MAX_LOGIN_ATTEMPTS', 'validate' => 'int:0', 'type' => 'text:3:3', 'explain' => true),
|
| 232 |
'max_reg_attempts' => array('lang' => 'REG_LIMIT', 'validate' => 'int:0', 'type' => 'text:4:4', 'explain' => true),
|
| 233 |
|
| 234 |
'legend3' => 'COPPA',
|
| 235 |
'coppa_enable' => array('lang' => 'ENABLE_COPPA', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 236 |
'coppa_mail' => array('lang' => 'COPPA_MAIL', 'validate' => 'string', 'type' => 'textarea:5:40', 'explain' => true),
|
| 237 |
'coppa_fax' => array('lang' => 'COPPA_FAX', 'validate' => 'string', 'type' => 'text:25:100', 'explain' => false),
|
| 238 |
)
|
| 239 |
);
|
| 240 |
break;
|
| 241 |
|
| 242 |
case 'cookie':
|
| 243 |
$display_vars = array(
|
| 244 |
'title' => 'ACP_COOKIE_SETTINGS',
|
| 245 |
'vars' => array(
|
| 246 |
'legend1' => 'ACP_COOKIE_SETTINGS',
|
| 247 |
'cookie_domain' => array('lang' => 'COOKIE_DOMAIN', 'validate' => 'string', 'type' => 'text::255', 'explain' => false),
|
| 248 |
'cookie_name' => array('lang' => 'COOKIE_NAME', 'validate' => 'string', 'type' => 'text::16', 'explain' => false),
|
| 249 |
'cookie_path' => array('lang' => 'COOKIE_PATH', 'validate' => 'string', 'type' => 'text::255', 'explain' => false),
|
| 250 |
'cookie_secure' => array('lang' => 'COOKIE_SECURE', 'validate' => 'bool', 'type' => 'radio:disabled_enabled', 'explain' => true)
|
| 251 |
)
|
| 252 |
);
|
| 253 |
break;
|
| 254 |
|
| 255 |
case 'load':
|
| 256 |
$display_vars = array(
|
| 257 |
'title' => 'ACP_LOAD_SETTINGS',
|
| 258 |
'vars' => array(
|
| 259 |
'legend1' => 'GENERAL_SETTINGS',
|
| 260 |
'limit_load' => array('lang' => 'LIMIT_LOAD', 'validate' => 'string', 'type' => 'text:4:4', 'explain' => true),
|
| 261 |
'session_length' => array('lang' => 'SESSION_LENGTH', 'validate' => 'int:60', 'type' => 'text:5:10', 'explain' => true, 'append' => ' ' . $user->lang['SECONDS']),
|
| 262 |
'active_sessions' => array('lang' => 'LIMIT_SESSIONS', 'validate' => 'int:0', 'type' => 'text:4:4', 'explain' => true),
|
| 263 |
'load_online_time' => array('lang' => 'ONLINE_LENGTH', 'validate' => 'int:0', 'type' => 'text:4:3', 'explain' => true, 'append' => ' ' . $user->lang['MINUTES']),
|
| 264 |
|
| 265 |
'legend2' => 'GENERAL_OPTIONS',
|
| 266 |
'load_db_track' => array('lang' => 'YES_POST_MARKING', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 267 |
'load_db_lastread' => array('lang' => 'YES_READ_MARKING', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 268 |
'load_anon_lastread' => array('lang' => 'YES_ANON_READ_MARKING', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 269 |
'load_online' => array('lang' => 'YES_ONLINE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 270 |
'load_online_guests' => array('lang' => 'YES_ONLINE_GUESTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 271 |
'load_onlinetrack' => array('lang' => 'YES_ONLINE_TRACK', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 272 |
'load_birthdays' => array('lang' => 'YES_BIRTHDAYS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 273 |
'load_moderators' => array('lang' => 'YES_MODERATORS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 274 |
'load_jumpbox' => array('lang' => 'YES_JUMPBOX', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 275 |
'load_user_activity' => array('lang' => 'LOAD_USER_ACTIVITY', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 276 |
'load_tplcompile' => array('lang' => 'RECOMPILE_STYLES', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 277 |
|
| 278 |
'legend3' => 'CUSTOM_PROFILE_FIELDS',
|
| 279 |
'load_cpf_memberlist' => array('lang' => 'LOAD_CPF_MEMBERLIST', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 280 |
'load_cpf_viewprofile' => array('lang' => 'LOAD_CPF_VIEWPROFILE', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 281 |
'load_cpf_viewtopic' => array('lang' => 'LOAD_CPF_VIEWTOPIC', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => false),
|
| 282 |
)
|
| 283 |
);
|
| 284 |
break;
|
| 285 |
|
| 286 |
case 'auth':
|
| 287 |
$display_vars = array(
|
| 288 |
'title' => 'ACP_AUTH_SETTINGS',
|
| 289 |
'vars' => array(
|
| 290 |
'legend1' => 'ACP_AUTH_SETTINGS',
|
| 291 |
'auth_method' => array('lang' => 'AUTH_METHOD', 'validate' => 'string', 'type' => 'select', 'method' => 'select_auth_method', 'explain' => false)
|
| 292 |
)
|
| 293 |
);
|
| 294 |
break;
|
| 295 |
|
| 296 |
case 'server':
|
| 297 |
$display_vars = array(
|
| 298 |
'title' => 'ACP_SERVER_SETTINGS',
|
| 299 |
'vars' => array(
|
| 300 |
'legend1' => 'ACP_SERVER_SETTINGS',
|
| 301 |
'gzip_compress' => array('lang' => 'ENABLE_GZIP', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 302 |
|
| 303 |
'legend2' => 'PATH_SETTINGS',
|
| 304 |
'smilies_path' => array('lang' => 'SMILIES_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true),
|
| 305 |
'icons_path' => array('lang' => 'ICONS_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true),
|
| 306 |
'upload_icons_path' => array('lang' => 'UPLOAD_ICONS_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true),
|
| 307 |
'ranks_path' => array('lang' => 'RANKS_PATH', 'validate' => 'rpath', 'type' => 'text:20:255', 'explain' => true),
|
| 308 |
|
| 309 |
'legend3' => 'SERVER_URL_SETTINGS',
|
| 310 |
'force_server_vars' => array('lang' => 'FORCE_SERVER_VARS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 311 |
'server_protocol' => array('lang' => 'SERVER_PROTOCOL', 'validate' => 'string', 'type' => 'text:10:10', 'explain' => true),
|
| 312 |
'server_name' => array('lang' => 'SERVER_NAME', 'validate' => 'string', 'type' => 'text:40:255', 'explain' => true),
|
| 313 |
'server_port' => array('lang' => 'SERVER_PORT', 'validate' => 'int:0', 'type' => 'text:5:5', 'explain' => true),
|
| 314 |
'script_path' => array('lang' => 'SCRIPT_PATH', 'validate' => 'script_path', 'type' => 'text::255', 'explain' => true),
|
| 315 |
)
|
| 316 |
);
|
| 317 |
break;
|
| 318 |
|
| 319 |
case 'security':
|
| 320 |
$display_vars = array(
|
| 321 |
'title' => 'ACP_SECURITY_SETTINGS',
|
| 322 |
'vars' => array(
|
| 323 |
'legend1' => 'ACP_SECURITY_SETTINGS',
|
| 324 |
'allow_autologin' => array('lang' => 'ALLOW_AUTOLOGIN', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 325 |
'max_autologin_time' => array('lang' => 'AUTOLOGIN_LENGTH', 'validate' => 'int:0', 'type' => 'text:5:5', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
|
| 326 |
'ip_check' => array('lang' => 'IP_VALID', 'validate' => 'int', 'type' => 'custom', 'method' => 'select_ip_check', 'explain' => true),
|
| 327 |
'browser_check' => array('lang' => 'BROWSER_VALID', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 328 |
'forwarded_for_check' => array('lang' => 'FORWARDED_FOR_VALID', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 329 |
'referer_validation' => array('lang' => 'REFERER_VALID', 'validate' => 'int:0:3','type' => 'custom', 'method' => 'select_ref_check', 'explain' => true),
|
| 330 |
'check_dnsbl' => array('lang' => 'CHECK_DNSBL', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 331 |
'email_check_mx' => array('lang' => 'EMAIL_CHECK_MX', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 332 |
'pass_complex' => array('lang' => 'PASSWORD_TYPE', 'validate' => 'string', 'type' => 'select', 'method' => 'select_password_chars', 'explain' => true),
|
| 333 |
'chg_passforce' => array('lang' => 'FORCE_PASS_CHANGE', 'validate' => 'int:0', 'type' => 'text:3:3', 'explain' => true, 'append' => ' ' . $user->lang['DAYS']),
|
| 334 |
'max_login_attempts' => array('lang' => 'MAX_LOGIN_ATTEMPTS', 'validate' => 'int:0', 'type' => 'text:3:3', 'explain' => true),
|
| 335 |
'tpl_allow_php' => array('lang' => 'TPL_ALLOW_PHP', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 336 |
'form_token_lifetime' => array('lang' => 'FORM_TIME_MAX', 'validate' => 'int:-1', 'type' => 'text:5:5', 'explain' => true, 'append' => ' ' . $user->lang['SECONDS']),
|
| 337 |
'form_token_sid_guests' => array('lang' => 'FORM_SID_GUESTS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 338 |
|
| 339 |
)
|
| 340 |
);
|
| 341 |
break;
|
| 342 |
|
| 343 |
case 'email':
|
| 344 |
$display_vars = array(
|
| 345 |
'title' => 'ACP_EMAIL_SETTINGS',
|
| 346 |
'vars' => array(
|
| 347 |
'legend1' => 'GENERAL_SETTINGS',
|
| 348 |
'email_enable' => array('lang' => 'ENABLE_EMAIL', 'validate' => 'bool', 'type' => 'radio:enabled_disabled', 'explain' => true),
|
| 349 |
'board_email_form' => array('lang' => 'BOARD_EMAIL_FORM', 'validate' => 'bool', 'type' => 'radio:enabled_disabled', 'explain' => true),
|
| 350 |
'email_function_name' => array('lang' => 'EMAIL_FUNCTION_NAME', 'validate' => 'string', 'type' => 'text:20:50', 'explain' => true),
|
| 351 |
'email_package_size' => array('lang' => 'EMAIL_PACKAGE_SIZE', 'validate' => 'int:0', 'type' => 'text:5:5', 'explain' => true),
|
| 352 |
'board_contact' => array('lang' => 'CONTACT_EMAIL', 'validate' => 'string', 'type' => 'text:25:100', 'explain' => true),
|
| 353 |
'board_email' => array('lang' => 'ADMIN_EMAIL', 'validate' => 'string', 'type' => 'text:25:100', 'explain' => true),
|
| 354 |
'board_email_sig' => array('lang' => 'EMAIL_SIG', 'validate' => 'string', 'type' => 'textarea:5:30', 'explain' => true),
|
| 355 |
'board_hide_emails' => array('lang' => 'BOARD_HIDE_EMAILS', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 356 |
|
| 357 |
'legend2' => 'SMTP_SETTINGS',
|
| 358 |
'smtp_delivery' => array('lang' => 'USE_SMTP', 'validate' => 'bool', 'type' => 'radio:yes_no', 'explain' => true),
|
| 359 |
'smtp_host' => array('lang' => 'SMTP_SERVER', 'validate' => 'string', 'type' => 'text:25:50', 'explain' => false),
|
| 360 |
'smtp_port' => array('lang' => 'SMTP_PORT', 'validate' => 'int:0', 'type' => 'text:4:5', 'explain' => true),
|
| 361 |
'smtp_auth_method' => array('lang' => 'SMTP_AUTH_METHOD', 'validate' => 'string', 'type' => 'select', 'method' => 'mail_auth_select', 'explain' => true),
|
| 362 |
'smtp_username' => array('lang' => 'SMTP_USERNAME', 'validate' => 'string', 'type' => 'text:25:255', 'explain' => true),
|
| 363 |
'smtp_password' => array('lang' => 'SMTP_PASSWORD', 'validate' => 'string', 'type' => 'password:25:255', 'explain' => true)
|
| 364 |
)
|
| 365 |
);
|
| 366 |
break;
|
| 367 |
|
| 368 |
default:
|
| 369 |
trigger_error('NO_MODE', E_USER_ERROR);
|
| 370 |
break;
|
| 371 |
}
|
| 372 |
|
| 373 |
if (isset($display_vars['lang']))
|
| 374 |
{
|
| 375 |
$user->add_lang($display_vars['lang']);
|
| 376 |
}
|
| 377 |
|
| 378 |
$this->new_config = $config;
|
| 379 |
$cfg_array = (isset($_REQUEST['config'])) ? utf8_normalize_nfc(request_var('config', array('' => ''), true)) : $this->new_config;
|
| 380 |
$error = array();
|
| 381 |
|
| 382 |
// We validate the complete config if whished
|
| 383 |
validate_config_vars($display_vars['vars'], $cfg_array, $error);
|
| 384 |
|
| 385 |
if ($submit && !check_form_key($form_key))
|
| 386 |
{
|
| 387 |
$error[] = $user->lang['FORM_INVALID'];
|
| 388 |
}
|
| 389 |
// Do not write values if there is an error
|
| 390 |
if (sizeof($error))
|
| 391 |
{
|
| 392 |
$submit = false;
|
| 393 |
}
|
| 394 |
|
| 395 |
// We go through the display_vars to make sure no one is trying to set variables he/she is not allowed to...
|
| 396 |
foreach ($display_vars['vars'] as $config_name => $null)
|
| 397 |
{
|
| 398 |
if (!isset($cfg_array[$config_name]) || strpos($config_name, 'legend') !== false)
|
| 399 |
{
|
| 400 |
continue;
|
| 401 |
}
|
| 402 |
|
| 403 |
if ($config_name == 'auth_method')
|
| 404 |
{
|
| 405 |
continue;
|
| 406 |
}
|
| 407 |
|
| 408 |
$this->new_config[$config_name] = $config_value = $cfg_array[$config_name];
|
| 409 |
|
| 410 |
if ($config_name == 'email_function_name')
|
| 411 |
{
|
| 412 |
$this->new_config['email_function_name'] = trim(str_replace(array('(', ')'), array('', ''), $this->new_config['email_function_name']));
|
| 413 |
$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'];
|
| 414 |
$config_value = $this->new_config['email_function_name'];
|
| 415 |
}
|
| 416 |
|
| 417 |
if ($submit)
|
| 418 |
{
|
| 419 |
set_config($config_name, $config_value);
|
| 420 |
}
|
| 421 |
}
|
| 422 |
|
| 423 |
if ($mode == 'auth')
|
| 424 |
{
|
| 425 |
// Retrieve a list of auth plugins and check their config values
|
| 426 |
$auth_plugins = array();
|
| 427 |
|
| 428 |
$dp = @opendir($phpbb_root_path . 'includes/auth');
|
| 429 |
|
| 430 |
if ($dp)
|
| 431 |
{
|
| 432 |
while (($file = readdir($dp)) !== false)
|
| 433 |
{
|
| 434 |
if (preg_match('#^auth_(.*?)\.' . $phpEx . '$#', $file))
|
| 435 |
{
|
| 436 |
$auth_plugins[] = basename(preg_replace('#^auth_(.*?)\.' . $phpEx . '$#', '\1', $file));
|
| 437 |
}
|
| 438 |
}
|
| 439 |
closedir($dp);
|
| 440 |
|
| 441 |
sort($auth_plugins);
|
| 442 |
}
|
| 443 |
|
| 444 |
$updated_auth_settings = false;
|
| 445 |
$old_auth_config = array();
|
| 446 |
foreach ($auth_plugins as $method)
|
| 447 |
{
|
| 448 |
if ($method && file_exists($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx))
|
| 449 |
{
|
| 450 |
include_once($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx);
|
| 451 |
|
| 452 |
$method = 'acp_' . $method;
|
| 453 |
if (function_exists($method))
|
| 454 |
{
|
| 455 |
if ($fields = $method($this->new_config))
|
| 456 |
{
|
| 457 |
// Check if we need to create config fields for this plugin and save config when submit was pressed
|
| 458 |
foreach ($fields['config'] as $field)
|
| 459 |
{
|
| 460 |
if (!isset($config[$field]))
|
| 461 |
{
|
| 462 |
set_config($field, '');
|
| 463 |
}
|
| 464 |
|
| 465 |
if (!isset($cfg_array[$field]) || strpos($field, 'legend') !== false)
|
| 466 |
{
|
| 467 |
continue;
|
| 468 |
}
|
| 469 |
|
| 470 |
$old_auth_config[$field] = $this->new_config[$field];
|
| 471 |
$config_value = $cfg_array[$field];
|
| 472 |
$this->new_config[$field] = $config_value;
|
| 473 |
|
| 474 |
if ($submit)
|
| 475 |
{
|
| 476 |
$updated_auth_settings = true;
|
| 477 |
set_config($field, $config_value);
|
| 478 |
}
|
| 479 |
}
|
| 480 |
}
|
| 481 |
unset($fields);
|
| 482 |
}
|
| 483 |
}
|
| 484 |
}
|
| 485 |
|
| 486 |
if ($submit && (($cfg_array['auth_method'] != $this->new_config['auth_method']) || $updated_auth_settings))
|
| 487 |
{
|
| 488 |
$method = basename($cfg_array['auth_method']);
|
| 489 |
if ($method && in_array($method, $auth_plugins))
|
| 490 |
{
|
| 491 |
include_once($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx);
|
| 492 |
|
| 493 |
$method = 'init_' . $method;
|
| 494 |
if (function_exists($method))
|
| 495 |
{
|
| 496 |
if ($error = $method())
|
| 497 |
{
|
| 498 |
foreach ($old_auth_config as $config_name => $config_value)
|
| 499 |
{
|
| 500 |
set_config($config_name, $config_value);
|
| 501 |
}
|
| 502 |
trigger_error($error . adm_back_link($this->u_action), E_USER_WARNING);
|
| 503 |
}
|
| 504 |
}
|
| 505 |
set_config('auth_method', basename($cfg_array['auth_method']));
|
| 506 |
}
|
| 507 |
else
|
| 508 |
{
|
| 509 |
trigger_error('NO_AUTH_PLUGIN', E_USER_ERROR);
|
| 510 |
}
|
| 511 |
}
|
| 512 |
}
|
| 513 |
|
| 514 |
if ($submit)
|
| 515 |
{
|
| 516 |
add_log('admin', 'LOG_CONFIG_' . strtoupper($mode));
|
| 517 |
|
| 518 |
trigger_error($user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
|
| 519 |
}
|
| 520 |
|
| 521 |
$this->tpl_name = 'acp_board';
|
| 522 |
$this->page_title = $display_vars['title'];
|
| 523 |
|
| 524 |
$template->assign_vars(array(
|
| 525 |
'L_TITLE' => $user->lang[$display_vars['title']],
|
| 526 |
'L_TITLE_EXPLAIN' => $user->lang[$display_vars['title'] . '_EXPLAIN'],
|
| 527 |
|
| 528 |
'S_ERROR' => (sizeof($error)) ? true : false,
|
| 529 |
'ERROR_MSG' => implode('<br />', $error),
|
| 530 |
|
| 531 |
'U_ACTION' => $this->u_action)
|
| 532 |
);
|
| 533 |
|
| 534 |
// Output relevant page
|
| 535 |
foreach ($display_vars['vars'] as $config_key => $vars)
|
| 536 |
{
|
| 537 |
if (!is_array($vars) && strpos($config_key, 'legend') === false)
|
| 538 |
{
|
| 539 |
continue;
|
| 540 |
}
|
| 541 |
|
| 542 |
if (strpos($config_key, 'legend') !== false)
|
| 543 |
{
|
| 544 |
$template->assign_block_vars('options', array(
|
| 545 |
'S_LEGEND' => true,
|
| 546 |
'LEGEND' => (isset($user->lang[$vars])) ? $user->lang[$vars] : $vars)
|
| 547 |
);
|
| 548 |
|
| 549 |
continue;
|
| 550 |
}
|
| 551 |
|
| 552 |
$type = explode(':', $vars['type']);
|
| 553 |
|
| 554 |
$l_explain = '';
|
| 555 |
if ($vars['explain'] && isset($vars['lang_explain']))
|
| 556 |
{
|
| 557 |
$l_explain = (isset($user->lang[$vars['lang_explain']])) ? $user->lang[$vars['lang_explain']] : $vars['lang_explain'];
|
| 558 |
}
|
| 559 |
else if ($vars['explain'])
|
| 560 |
{
|
| 561 |
$l_explain = (isset($user->lang[$vars['lang'] . '_EXPLAIN'])) ? $user->lang[$vars['lang'] . '_EXPLAIN'] : '';
|
| 562 |
}
|
| 563 |
|
| 564 |
$content = build_cfg_template($type, $config_key, $this->new_config, $config_key, $vars);
|
| 565 |
|
| 566 |
if (empty($content))
|
| 567 |
{
|
| 568 |
continue;
|
| 569 |
}
|
| 570 |
|
| 571 |
$template->assign_block_vars('options', array(
|
| 572 |
'KEY' => $config_key,
|
| 573 |
'TITLE' => (isset($user->lang[$vars['lang']])) ? $user->lang[$vars['lang']] : $vars['lang'],
|
| 574 |
'S_EXPLAIN' => $vars['explain'],
|
| 575 |
'TITLE_EXPLAIN' => $l_explain,
|
| 576 |
'CONTENT' => $content,
|
| 577 |
)
|
| 578 |
);
|
| 579 |
|
| 580 |
unset($display_vars['vars'][$config_key]);
|
| 581 |
}
|
| 582 |
|
| 583 |
if ($mode == 'auth')
|
| 584 |
{
|
| 585 |
$template->assign_var('S_AUTH', true);
|
| 586 |
|
| 587 |
foreach ($auth_plugins as $method)
|
| 588 |
{
|
| 589 |
if ($method && file_exists($phpbb_root_path . 'includes/auth/auth_' . $method . '.' . $phpEx))
|
| 590 |
{
|
| 591 |
$method = 'acp_' . $method;
|
| 592 |
if (function_exists($method))
|
| 593 |
{
|
| 594 |
$fields = $method($this->new_config);
|
| 595 |
|
| 596 |
if ($fields['tpl'])
|
| 597 |
{
|
| 598 |
$template->assign_block_vars('auth_tpl', array(
|
| 599 |
'TPL' => $fields['tpl'])
|
| 600 |
);
|
| 601 |
}
|
| 602 |
unset($fields);
|
| 603 |
}
|
| 604 |
}
|
| 605 |
}
|
| 606 |
}
|
| 607 |
}
|
| 608 |
|
| 609 |
/**
|
| 610 |
* Select auth method
|
| 611 |
*/
|
| 612 |
function select_auth_method($selected_method, $key = '')
|
| 613 |
{
|
| 614 |
global $phpbb_root_path, $phpEx;
|
| 615 |
|
| 616 |
$auth_plugins = array();
|
| 617 |
|
| 618 |
$dp = @opendir($phpbb_root_path . 'includes/auth');
|
| 619 |
|
| 620 |
if (!$dp)
|
| 621 |
{
|
| 622 |
return '';
|
| 623 |
}
|
| 624 |
|
| 625 |
while (($file = readdir($dp)) !== false)
|
| 626 |
{
|
| 627 |
if (preg_match('#^auth_(.*?)\.' . $phpEx . '$#', $file))
|
| 628 |
{
|
| 629 |
$auth_plugins[] = preg_replace('#^auth_(.*?)\.' . $phpEx . '$#', '\1', $file);
|
| 630 |
}
|
| 631 |
}
|
| 632 |
closedir($dp);
|
| 633 |
|
| 634 |
sort($auth_plugins);
|
| 635 |
|
| 636 |
$auth_select = '';
|
| 637 |
foreach ($auth_plugins as $method)
|
| 638 |
{
|
| 639 |
$selected = ($selected_method == $method) ? ' selected="selected"' : '';
|
| 640 |
$auth_select .= '<option value="' . $method . '"' . $selected . '>' . ucfirst($method) . '</option>';
|
| 641 |
}
|
| 642 |
|
| 643 |
return $auth_select;
|
| 644 |
}
|
| 645 |
|
| 646 |
/**
|
| 647 |
* Select mail authentication method
|
| 648 |
*/
|
| 649 |
function mail_auth_select($selected_method, $key = '')
|
| 650 |
{
|
| 651 |
global $user;
|
| 652 |
|
| 653 |
$auth_methods = array('PLAIN', 'LOGIN', 'CRAM-MD5', 'DIGEST-MD5', 'POP-BEFORE-SMTP');
|
| 654 |
$s_smtp_auth_options = '';
|
| 655 |
|
| 656 |
foreach ($auth_methods as $method)
|
| 657 |
{
|
| 658 |
$s_smtp_auth_options .= '<option value="' . $method . '"' . (($selected_method == $method) ? ' selected="selected"' : '') . '>' . $user->lang['SMTP_' . str_replace('-', '_', $method)] . '</option>';
|
| 659 |
}
|
| 660 |
|
| 661 |
return $s_smtp_auth_options;
|
| 662 |
}
|
| 663 |
|
| 664 |
/**
|
| 665 |
* Select full folder action
|
| 666 |
*/
|
| 667 |
function full_folder_select($value, $key = '')
|
| 668 |
{
|
| 669 |
global $user;
|
| 670 |
|
| 671 |
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>';
|
| 672 |
}
|
| 673 |
|
| 674 |
/**
|
| 675 |
* Select ip validation
|
| 676 |
*/
|
| 677 |
function select_ip_check($value, $key = '')
|
| 678 |
{
|
| 679 |
$radio_ary = array(4 => 'ALL', 3 => 'CLASS_C', 2 => 'CLASS_B', 0 => 'NO_IP_VALIDATION');
|
| 680 |
|
| 681 |
return h_radio('config[ip_check]', $radio_ary, $value, $key);
|
| 682 |
}
|
| 683 |
|
| 684 |
/**
|
| 685 |
* Select referer validation
|
| 686 |
*/
|
| 687 |
function select_ref_check($value, $key = '')
|
| 688 |
{
|
| 689 |
$radio_ary = array(REFERER_VALIDATE_PATH => 'REF_PATH', REFERER_VALIDATE_HOST => 'REF_HOST', REFERER_VALIDATE_NONE => 'NO_REF_VALIDATION');
|
| 690 |
|
| 691 |
return h_radio('config[referer_validation]', $radio_ary, $value, $key);
|
| 692 |
}
|
| 693 |
|
| 694 |
/**
|
| 695 |
* Select account activation method
|
| 696 |
*/
|
| 697 |
function select_acc_activation($value, $key = '')
|
| 698 |
{
|
| 699 |
global $user, $config;
|
| 700 |
|
| 701 |
$radio_ary = array(USER_ACTIVATION_DISABLE => 'ACC_DISABLE', USER_ACTIVATION_NONE => 'ACC_NONE');
|
| 702 |
if ($config['email_enable'])
|
| 703 |
{
|
| 704 |
$radio_ary += array(USER_ACTIVATION_SELF => 'ACC_USER', USER_ACTIVATION_ADMIN => 'ACC_ADMIN');
|
| 705 |
}
|
| 706 |
|
| 707 |
return h_radio('config[require_activation]', $radio_ary, $value, $key);
|
| 708 |
}
|
| 709 |
|
| 710 |
/**
|
| 711 |
* Maximum/Minimum username length
|
| 712 |
*/
|
| 713 |
function username_length($value, $key = '')
|
| 714 |
{
|
| 715 |
global $user;
|
| 716 |
|
| 717 |
return '<input id="' . $key . '" type="text" size="3" maxlength="3" name="config[min_name_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . ' <input type="text" size="3" maxlength="3" name="config[max_name_chars]" value="' . $this->new_config['max_name_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
|
| 718 |
}
|
| 719 |
|
| 720 |
/**
|
| 721 |
* Allowed chars in usernames
|
| 722 |
*/
|
| 723 |
function select_username_chars($selected_value, $key)
|
| 724 |
{
|
| 725 |
global $user;
|
| 726 |
|
| 727 |
$user_char_ary = array('USERNAME_CHARS_ANY', 'USERNAME_ALPHA_ONLY', 'USERNAME_ALPHA_SPACERS', 'USERNAME_LETTER_NUM', 'USERNAME_LETTER_NUM_SPACERS', 'USERNAME_ASCII');
|
| 728 |
$user_char_options = '';
|
| 729 |
foreach ($user_char_ary as $user_type)
|
| 730 |
{
|
| 731 |
$selected = ($selected_value == $user_type) ? ' selected="selected"' : '';
|
| 732 |
$user_char_options .= '<option value="' . $user_type . '"' . $selected . '>' . $user->lang[$user_type] . '</option>';
|
| 733 |
}
|
| 734 |
|
| 735 |
return $user_char_options;
|
| 736 |
}
|
| 737 |
|
| 738 |
/**
|
| 739 |
* Maximum/Minimum password length
|
| 740 |
*/
|
| 741 |
function password_length($value, $key)
|
| 742 |
{
|
| 743 |
global $user;
|
| 744 |
|
| 745 |
return '<input id="' . $key . '" type="text" size="3" maxlength="3" name="config[min_pass_chars]" value="' . $value . '" /> ' . $user->lang['MIN_CHARS'] . ' <input type="text" size="3" maxlength="3" name="config[max_pass_chars]" value="' . $this->new_config['max_pass_chars'] . '" /> ' . $user->lang['MAX_CHARS'];
|
| 746 |
}
|
| 747 |
|
| 748 |
/**
|
| 749 |
* Required chars in passwords
|
| 750 |
*/
|
| 751 |
function select_password_chars($selected_value, $key)
|
| 752 |
{
|
| 753 |
global $user;
|
| 754 |
|
| 755 |
$pass_type_ary = array('PASS_TYPE_ANY', 'PASS_TYPE_CASE', 'PASS_TYPE_ALPHA', 'PASS_TYPE_SYMBOL');
|
| 756 |
$pass_char_options = '';
|
| 757 |
foreach ($pass_type_ary as $pass_type)
|
| 758 |
{
|
| 759 |
$selected = ($selected_value == $pass_type) ? ' selected="selected"' : '';
|
| 760 |
$pass_char_options .= '<option value="' . $pass_type . '"' . $selected . '>' . $user->lang[$pass_type] . '</option>';
|
| 761 |
}
|
| 762 |
|
| 763 |
return $pass_char_options;
|
| 764 |
}
|
| 765 |
|
| 766 |
/**
|
| 767 |
* Select bump interval
|
| 768 |
*/
|
| 769 |
function bump_interval($value, $key)
|
| 770 |
{
|
|