xs_version) || $template->xs_version !== 8)
{
message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php');
}
define('IN_XS', true);
include_once('xs_include.' . $phpEx);
$template->assign_block_vars('nav_left',array('ITEM' => '» ' . $lang['xs_configuration'] . ''));
$lang['xs_config_updated_explain'] = str_replace('{URL}', append_sid('xs_config.'.$phpEx), $lang['xs_config_updated_explain']);
$lang['xs_config_title'] = str_replace('{VERSION}', $template->xs_versiontxt, $lang['xs_config_title']);
$lang['xs_config_warning_explain'] = str_replace('{URL}', append_sid('xs_chmod.'.$phpEx), $lang['xs_config_warning_explain']);
$lang['xs_config_back'] = str_replace('{URL}', append_sid('xs_config.'.$phpEx), $lang['xs_config_back']);
//
// Updating configuration
//
if(isset($HTTP_POST_VARS['submit']) && !defined('DEMO_MODE'))
{
$vars = array('xs_use_cache', 'xs_auto_compile', 'xs_auto_recompile', 'xs_php', 'xs_def_template', 'xs_check_switches', 'xs_warn_includes', 'xs_add_comments', 'xs_ftp_host', 'xs_ftp_login', 'xs_ftp_path', 'xs_shownav');
// checking navigation config
$shownav = 0;
for($i=0; $iassign_block_vars('left_refresh', array(
'ACTION' => append_sid('index.' . $phpEx . '?pane=left')
));
}
$HTTP_POST_VARS['xs_shownav'] = $shownav;
// checking submitted data
$update_time = false;
foreach($vars as $var)
{
$new[$var] = stripslashes(trim($HTTP_POST_VARS[$var]));
if(($var == 'xs_auto_recompile') && !$new['xs_auto_compile'])
{
$new[$var] = 0;
}
if($board_config[$var] !== $new[$var])
{
$sql = "UPDATE " . CONFIG_TABLE . " SET config_value = '" . xs_sql($new[$var]) . "' WHERE config_name = '{$var}'";
if( !$db->sql_query($sql) )
{
xs_error(str_replace('{VAR}', $var, $lang['xs_config_sql_error']) . '
' . $lang['xs_config_back'], __LINE__, __FILE__);
}
$board_config[$var] = $new[$var];
if($var === 'xs_check_switches')
{
$update_time = true;
}
}
}
if($update_time)
{
$board_config['xs_template_time'] = time() + 10; // set time 10 seconds in future in case if some tpl file would be compiled right now with current settings
$sql = "UPDATE " . CONFIG_TABLE . " SET config_value = '" . $board_config['xs_template_time'] . "' WHERE config_name = 'xs_template_time'";
if( !$db->sql_query($sql) )
{
xs_error(str_replace('{VAR}', 'xs_template_time', $lang['xs_config_sql_error']) . '
' . $lang['xs_config_back'], __LINE__, __FILE__);
}
}
// update config cache
if(defined('XS_MODS_CATEGORY_HIERARCHY210'))
{
if ( !empty($config) )
{
$config->read(true);
}
}
$template->assign_block_vars('switch_updated', array());
$template->load_config($template->root, false);
}
// check ftp configuration
$xs_ftp_host = $board_config['xs_ftp_host'];
if(empty($xs_ftp_host) && !empty($HTTP_SERVER_VARS['HTTP_HOST']))
{
$str = $HTTP_SERVER_VARS['HTTP_HOST'];
$template->assign_vars(array(
'HOST_GUESS' => str_replace(array('{HOST}', '{CLICK}'), array($str, 'document.config.xs_ftp_host.value=\''.$str.'\''), $lang['xs_ftp_host_guess'])
));
}
$dir = getcwd();
$xs_ftp_login = $board_config['xs_ftp_login'];
if(empty($xs_ftp_login))
{
if(substr($dir, 0, 6) === '/home/')
{
$str = substr($dir, 6);
$pos = strpos($str, '/');
if($pos)
{
$str = substr($str, 0, $pos);
$template->assign_vars(array(
'LOGIN_GUESS' => str_replace(array('{LOGIN}', '{CLICK}'), array($str, 'document.config.xs_ftp_login.value=\''.$str.'\''), $lang['xs_ftp_login_guess'])
));
}
}
}
$xs_ftp_path = $board_config['xs_ftp_path'];
if(empty($xs_ftp_path))
{
if(substr($dir, 0, 6) === '/home/');
$str = substr($dir, 6);
$pos = strpos($str, '/');
if($pos)
{
$str = substr($str, $pos + 1);
$pos = strrpos($str, 'admin');
if($pos)
{
$str = substr($str, 0, $pos-1);
$template->assign_vars(array(
'PATH_GUESS' => str_replace(array('{PATH}', '{CLICK}'), array($str, 'document.config.xs_ftp_path.value=\''.$str.'\''), $lang['xs_ftp_path_guess'])
));
}
}
}
$template->assign_vars(array(
'XS_USE_CACHE_0' => $board_config['xs_use_cache'] ? '' : ' checked="checked"',
'XS_USE_CACHE_1' => $board_config['xs_use_cache'] ? ' checked="checked"' : '',
'XS_AUTO_COMPILE_0' => $board_config['xs_auto_compile'] ? '' : ' checked="checked"',
'XS_AUTO_COMPILE_1' => $board_config['xs_auto_compile'] ? ' checked="checked"' : '',
'XS_AUTO_RECOMPILE_0' => $board_config['xs_auto_recompile'] ? '' : ' checked="checked"',
'XS_AUTO_RECOMPILE_1' => $board_config['xs_auto_recompile'] ? ' checked="checked"' : '',
'XS_PHP' => htmlspecialchars($board_config['xs_php']),
'XS_DEF_TEMPLATE' => htmlspecialchars($board_config['xs_def_template']),
'XS_CHECK_SWITCHES_0' => !$board_config['xs_check_switches'] ? ' checked="checked"' : '', // no check
'XS_CHECK_SWITCHES_1' => $board_config['xs_check_switches'] == 1 ? ' checked="checked"' : '', // smart check
'XS_CHECK_SWITCHES_2' => $board_config['xs_check_switches'] == 2 ? ' checked="checked"' : '', // simple check
'XS_WARN_INCLUDES_0' => $board_config['xs_warn_includes'] ? '' : ' checked="checked"',
'XS_WARN_INCLUDES_1' => $board_config['xs_warn_includes'] ? ' checked="checked"' : '',
'XS_ADD_COMMENTS_0' => $board_config['xs_add_comments'] ? '' : ' checked="checked"',
'XS_ADD_COMMENTS_1' => $board_config['xs_add_comments'] ? ' checked="checked"' : '',
'XS_FTP_HOST' => defined('DEMO_MODE') ? '' : $xs_ftp_host,
'XS_FTP_LOGIN' => defined('DEMO_MODE') ? '' : $xs_ftp_login,
'XS_FTP_PATH' => defined('DEMO_MODE') ? '' : $xs_ftp_path,
'FORM_ACTION' => append_sid('xs_config.' . $phpEx),
));
for($i=0; $iassign_block_vars('shownav', array(
'NUM' => $i,
'LABEL' => $lang['xs_config_shownav'][$i],
'CHECKED' => (($board_config['xs_shownav'] & $num) > 0) ? 'checked="checked"' : ''
));
}
}
// test cache
$tpl_filename = $template->make_filename('_xs_test.tpl');
$cache_filename = $template->make_filename_cache($tpl_filename);
$str = '';
if(!xs_check_cache($cache_filename))
{
$template->assign_block_vars('switch_xs_warning', array());
}
@unlink($cache_filename);
$debug_data = $str;
$template->assign_vars(array(
'XS_DEBUG_HDR1' => sprintf($lang['xs_check_hdr'], '_xs_test.tpl'),
'XS_DEBUG_FILENAME1' => $tpl_filename,
'XS_DEBUG_FILENAME2' => $cache_filename,
'XS_DEBUG_DATA' => $debug_data,
));
$template->set_filenames(array('body' => XS_TPL_PATH . 'config.tpl'));
$template->pparse('body');
xs_exit();
?>