acl_get('a_attach')) ? "$filename$SID&mode=attach" : ''; $module['GENERAL']['AUTH_SETTINGS'] = ($auth->acl_get('a_server')) ? "$filename$SID&mode=auth" : ''; $module['GENERAL']['AVATAR_SETTINGS'] = ($auth->acl_get('a_board')) ? "$filename$SID&mode=avatar" : ''; $module['GENERAL']['BOARD_DEFAULTS'] = ($auth->acl_get('a_defaults')) ? "$filename$SID&mode=default" : ''; $module['GENERAL']['BOARD_SETTINGS'] = ($auth->acl_get('a_board')) ? "$filename$SID&mode=setting" : ''; $module['GENERAL']['COOKIE_SETTINGS'] = ($auth->acl_get('a_cookies')) ? "$filename$SID&mode=cookie" : ''; $module['GENERAL']['EMAIL_SETTINGS'] = ($auth->acl_get('a_server')) ? "$filename$SID&mode=email" : ''; $module['GENERAL']['LOAD_SETTINGS'] = ($auth->acl_get('a_server')) ? "$filename$SID&mode=load" : ''; $module['GENERAL']['SERVER_SETTINGS'] = ($auth->acl_get('a_server')) ? "$filename$SID&mode=server" : ''; $module['USER']['KARMA_SETTINGS'] = ($auth->acl_get('a_user')) ? "$filename$SID&mode=karma" : ''; return; } define('IN_PHPBB', 1); // Load default header $phpbb_root_path = '../'; $phpEx = substr(strrchr(__FILE__, '.'), 1); require('pagestart.' . $phpEx); // Get mode $mode = request_var('mode', ''); $action = request_var('action', ''); $submit = (isset($_POST['submit'])) ? true : false; // Check permissions/set title switch ($mode) { case 'attach': $l_title = 'ATTACHMENT_SETTINGS'; $which_auth = 'a_attach'; break; case 'cookie': $l_title = 'COOKIE_SETTINGS'; $which_auth = 'a_cookies'; break; case 'default': $l_title = 'BOARD_DEFAULTS'; $which_auth = 'a_defaults'; break; case 'avatar': $l_title = 'AVATAR_SETTINGS'; $which_auth = 'a_board'; break; case 'setting': $l_title = 'BOARD_SETTINGS'; $which_auth = 'a_board'; break; case 'email': $l_title = 'EMAIL_SETTINGS'; $which_auth = 'a_server'; break; case 'server': $l_title = 'SERVER_SETTINGS'; $which_auth = 'a_server'; break; case 'load': $l_title = 'LOAD_SETTINGS'; $which_auth = 'a_server'; break; case 'auth': $l_title = 'AUTH_SETTINGS'; $which_auth = 'a_server'; break; case 'karma': $l_title = 'KARMA_SETTINGS'; $which_auth = 'a_user'; break; default: return; } // Check permissions if (!$auth->acl_get($which_auth)) { trigger_error($user->lang['NO_ADMIN']); } $config_sizes = array('max_filesize' => 'size', 'attachment_quota' => 'quota_size', 'max_filesize_pm' => 'pm_size'); foreach ($config_sizes as $cfg_key => $var) { $$var = request_var($var, ''); } $error = array(); // Pull all config data $sql = 'SELECT * FROM ' . CONFIG_TABLE; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $config_name = $row['config_name']; $config_value = $row['config_value']; $default_config[$config_name] = $config_value; $new[$config_name] = request_var($config_name, $default_config[$config_name]); if ($config_name == 'bump_interval' && $submit) { $new['bump_interval'] = request_var('bump_interval', 0) . request_var('bump_type', ''); } if ($mode == 'attach') { foreach ($config_sizes as $cfg_key => $var) { if (empty($$var) && !$submit && $config_name == $cfg_key) { $$var = (intval($default_config[$config_name]) >= 1048576) ? 'mb' : ((intval($default_config[$config_name]) >= 1024) ? 'kb' : 'b'); } if (!$submit && $config_name == $cfg_key) { $new[$config_name] = ($new[$config_name] >= 1048576) ? round($new[$config_name] / 1048576 * 100) / 100 : (($new[$config_name] >= 1024) ? round($new[$config_name] / 1024 * 100) / 100 : $new[$config_name]); } if ($submit && $config_name == $cfg_key) { $old = $new[$config_name]; $new[$config_name] = ($$var == 'kb') ? round($new[$config_name] * 1024) : (($$var == 'mb') ? round($new[$config_name] * 1048576) : $new[$config_name]); } } if ($submit) { // Update Extension Group Filesizes if ($config_name == 'max_filesize') { $old_size = (int) $default_config[$config_name]; $new_size = (int) $new[$config_name]; if ($old_size != $new_size) { // check for similar value of old_size in Extension Groups. If so, update these values. $sql = 'UPDATE ' . EXTENSION_GROUPS_TABLE . " SET max_filesize = $new_size WHERE max_filesize = $old_size"; $db->sql_query($sql); } } set_config($config_name, $new[$config_name]); if (in_array($config_name, array('max_filesize', 'attachment_quota', 'max_filesize_pm'))) { $new[$config_name] = $old; } } } else { if ($submit) { set_config($config_name, $new[$config_name]); } } } if ($submit) { add_log('admin', 'LOG_' . strtoupper($mode) . '_CONFIG'); if ($mode == 'attach') { // Check Settings test_upload($error, $new['upload_dir'], false); test_upload($error, $new['upload_dir'] . '/thumbs', true); } if (!sizeof($error)) { trigger_error($user->lang['CONFIG_UPDATED']); } } adm_page_header($user->lang[$l_title]); ?>
lang[$l_title . '_EXPLAIN']; ?>
80000) { $imagick = str_replace('\\', '/', $location); continue; } } } else { $imagick = str_replace('\\', '/', $_ENV['MAGICK_HOME']); } return $imagick; } // Test Settings function test_upload(&$error, $upload_dir, $create_directory = false) { global $user, $phpbb_root_path; // Adjust the Upload Directory. Relative or absolute, this is the question here. $real_upload_dir = $upload_dir; $upload_dir = ($upload_dir{0} == '/' || ($upload_dir{0} != '/' && $upload_dir{1} == ':')) ? $upload_dir : $phpbb_root_path . $upload_dir; // Does the target directory exist, is it a directory and writeable. if ($create_directory) { if (!file_exists($upload_dir)) { @mkdir($upload_dir, 0777); @chmod($upload_dir, 0777); } } if (!file_exists($upload_dir)) { $error[] = sprintf($user->lang['NO_UPLOAD_DIR'], $real_upload_dir); return; } if (!is_dir($upload_dir)) { $error[] = sprintf($user->lang['UPLOAD_NOT_DIR'], $real_upload_dir); return; } if (!is_writable($upload_dir)) { $error[] = sprintf($user->lang['NO_WRITE_UPLOAD'], $real_upload_dir); return; } } ?>