'sanitize_search_string'));
switch (get_request_var('action')) {
case 'save':
while (list($field_name, $field_array) = each($settings{get_request_var('tab')})) {
if (($field_array['method'] == 'header') || ($field_array['method'] == 'spacer' )){
/* do nothing */
}elseif ($field_array['method'] == 'checkbox') {
if (isset_request_var($field_name)) {
db_execute_prepared("REPLACE INTO settings (name, value) VALUES (?, 'on')", array($field_name));
}else{
db_execute_prepared("REPLACE INTO settings (name, value) VALUES (?, '')", array($field_name));
}
}elseif ($field_array['method'] == 'checkbox_group') {
while (list($sub_field_name, $sub_field_array) = each($field_array['items'])) {
if (isset_request_var($sub_field_name)) {
db_execute_prepared("REPLACE INTO settings (name, value) VALUES (?, 'on')", array($sub_field_name));
}else{
db_execute_prepared("REPLACE INTO settings (name, value) VALUES (?, '')", array($sub_field_name));
}
}
}elseif ($field_array['method'] == 'textbox_password') {
if (get_nfilter_request_var($field_name) != get_nfilter_request_var($field_name.'_confirm')) {
raise_message(4);
break;
}elseif (!isempty_request_var($field_name)) {
db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($field_name, get_nfilter_request_var($field_name)));
}
}elseif ((isset($field_array['items'])) && (is_array($field_array['items']))) {
while (list($sub_field_name, $sub_field_array) = each($field_array['items'])) {
if (isset_request_var($sub_field_name)) {
db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($sub_field_name, get_nfilter_request_var($sub_field_name)));
}
}
}elseif (isset_request_var($field_name)) {
if (is_array(get_nfilter_request_var($field_name))) {
db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($field_name, implode(',', get_nfilter_request_var($field_name))));
}else{
db_execute_prepared('REPLACE INTO settings (name, value) VALUES (?, ?)', array($field_name, get_nfilter_request_var($field_name)));
}
}
}
/* update snmpcache */
snmpagent_global_settings_update();
api_plugin_hook_function('global_settings_update');
raise_message(1);
/* reset local settings cache so the user sees the new settings */
kill_session_var('sess_config_array');
if (isset_request_var('header') && get_nfilter_request_var('header') == 'false') {
header('Location: settings.php?header=false&tab=' . get_request_var('tab'));
}else{
header('Location: settings.php?tab=' . get_request_var('tab'));
}
break;
case 'send_test':
email_test();
break;
default:
top_header();
/* set the default settings category */
if (!isset_request_var('tab')) {
/* there is no selected tab; select the first one */
if (isset($_SESSION['sess_settings_tab'])) {
$current_tab = $_SESSION['sess_settings_tab'];
}else{
$current_tab = array_keys($tabs);
$current_tab = $current_tab[0];
}
}else{
$current_tab = get_request_var('tab');
}
$_SESSION['sess_settings_tab'] = $current_tab;
/* draw the categories tabs on the top of the page */
print "
| \n";
form_start('settings.php', 'chk');
html_start_box( __('Cacti Settings (%s)', $tabs[$current_tab]), '100%', '', '3', 'center', '');
$form_array = array();
while (list($field_name, $field_array) = each($settings[$current_tab])) {
$form_array += array($field_name => $field_array);
if ((isset($field_array['items'])) && (is_array($field_array['items']))) {
while (list($sub_field_name, $sub_field_array) = each($field_array['items'])) {
if (config_value_exists($sub_field_name)) {
$form_array[$field_name]['items'][$sub_field_name]['form_id'] = 1;
}
$form_array[$field_name]['items'][$sub_field_name]['value'] = db_fetch_cell_prepared('SELECT value FROM settings WHERE name = ?', array($sub_field_name));
}
}else{
if (config_value_exists($field_name)) {
$form_array[$field_name]['form_id'] = 1;
}
$form_array[$field_name]['value'] = db_fetch_cell_prepared('SELECT value FROM settings WHERE name = ?', array($field_name));
}
}
draw_edit_form(
array(
'config' => array('no_form_tag' => true),
'fields' => $form_array
)
);
html_end_box();
form_hidden_box('tab', $current_tab, '');
form_save_button('', 'save');
form_end();
print " |
\n";
?>