3 # Save options to a webalizer.conf file
5 require './webalizer-lib.pl';
6 &error_setup($text{'global_err'});
7 $access{'view'} && &error($text{'edit_ecannot'});
9 !$in{'file'} || &can_edit_log($in{'file'}) || &error($text{'edit_ecannot'});
10 $in{'file'} || $access{'global'} || &error($text{'edit_ecannot'});
12 $cfile = &config_file_name($in{'file'}) if ($in{'file'});
14 # Just delete the configuration for this logfile
15 &unlink_logged($cfile);
20 &lock_file($cfile || $config{'webalizer_conf'});
21 $conf = &get_config($in{'file'});
23 # Validate and store inputs
24 if ($in{'report_def'}) {
25 &save_directive($conf, "ReportTitle");
28 $in{'report'} =~ /\S/ || &error($text{'global_ereport'});
29 &save_directive($conf, "ReportTitle", $in{'report'});
32 if ($in{'host_def'}) {
33 &save_directive($conf, "HostName");
35 elsif (defined($in{'host'})) {
36 $in{'host'} =~ /^\S+$/ || &error($text{'global_ehost'});
37 &save_directive($conf, "HostName", $in{'host'});
40 @pages = split(/\s+/, $in{'page'});
41 &save_directive($conf, "PageType", @pages);
43 @index = split(/\s+/, $in{'index'});
44 &save_directive($conf, "IndexAlias", @index);
47 &save_directive($conf, "GMTTime", "yes");
50 &save_directive($conf, "GMTTime");
54 &save_directive($conf, "FoldSeqErr", "yes");
57 &save_directive($conf, "FoldSeqErr");
60 if ($in{'visit_def'}) {
61 &save_directive($conf, "VisitTimeout");
64 $in{'visit'} =~ /^\d+$/ || &error($text{'global_evisit'});
65 &save_directive($conf, "VisitTimeout", $in{'visit'});
69 &save_directive($conf, "DNSChildren");
72 $in{'dns'} =~ /^\d+$/ || &error($text{'global_edns'});
73 &save_directive($conf, "DNSChildren", $in{'dns'});
76 if ($in{'history_def'}) {
77 &save_directive($conf, "HistoryName");
80 $in{'history'} =~ /^\S+$/ || &error($text{'global_ehistory'});
81 &save_directive($conf, "HistoryName", $in{'history'});
84 if ($in{'current_def'}) {
85 &save_directive($conf, "IncrementalName");
88 $in{'current'} =~ /^\S+$/ || &error($text{'global_ecurrent'});
89 &save_directive($conf, "IncrementalName", $in{'current'});
92 if ($in{'cache_def'}) {
93 &save_directive($conf, "DNSCache");
96 $in{'cache'} =~ /^\S+$/ || &error($text{'global_ecache'});
97 &save_directive($conf, "DNSCache", $in{'cache'});
100 foreach $g ('DailyGraph', 'DailyStats', 'HourlyGraph',
101 'HourlyStats', 'CountryGraph', 'GraphLegend') {
103 &save_directive($conf, $g);
106 &save_directive($conf, $g, "no");
110 foreach $t ('TopSites', 'TopKSites', 'TopURLs', 'TopKURLs', 'TopReferrers',
111 'TopAgents', 'TopCountries', 'TopEntry', 'TopExit',
112 'TopSearch', 'TopUsers') {
113 if ($in{"${t}_def"} == 1) {
114 &save_directive($conf, $t);
116 elsif ($in{"${t}_def"} == 2) {
117 &save_directive($conf, $t, "0");
120 $in{$t} =~ /^\d+$/ || &error(&text('global_etable',
121 $text{"global_$t"}));
122 &save_directive($conf, $t, $in{$t});
126 foreach $a ('AllSites', 'AllURLs', 'AllReferrers', 'AllAgents',
127 'AllSearchStr', 'AllUsers') {
129 &save_directive($conf, $a, "yes");
132 &save_directive($conf, $a);
136 foreach $hid ("HideURL", "HideSite", "HideReferrer",
137 "HideUser", "HideAgent") {
138 @hidv = split(/\s+/, $in{lc($hid)});
139 &save_directive($conf, $hid, @hidv);
142 foreach $ign ("IgnoreURL", "IgnoreSite", "IgnoreReferrer",
143 "IgnoreUser", "IgnoreAgent") {
144 @ignv = split(/\s+/, $in{lc($ign)});
145 &save_directive($conf, $ign, @ignv);
148 foreach $inc ("IncludeURL", "IncludeSite", "IncludeReferrer",
149 "IncludeUser", "IncludeAgent") {
150 @incv = split(/\s+/, $in{lc($inc)});
151 &save_directive($conf, $inc, @incv);
155 &unlock_file($cfile || $config{'webalizer_conf'});
156 &webmin_log("modify", "global", $in{'file'});
157 &redirect($in{'file'} ? "edit_log.cgi?file=".&urlize($in{'file'}).
158 "&type=$in{'type'}&custom=$in{'custom'}" : "");