From: eldy <>
Date: Fri, 12 Oct 2007 21:56:04 +0000 (+0000)
Subject: Add full list for extrasections
X-Git-Tag: AWSTATS_6_8_BETA~47
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8c6ca85a21862b5f033f7fee205f783ec4da1449;p=thirdparty%2FAWStats.git
Add full list for extrasections
---
diff --git a/wwwroot/cgi-bin/awstats.pl b/wwwroot/cgi-bin/awstats.pl
index 1d378c6b..01dd27ed 100644
--- a/wwwroot/cgi-bin/awstats.pl
+++ b/wwwroot/cgi-bin/awstats.pl
@@ -1708,8 +1708,8 @@ sub Check_Config {
# Optional extra setup section
foreach my $extracpt (1..@ExtraName-1) {
if ($ExtraStatTypes[$extracpt] !~ /[PHBL]/) { $ExtraStatTypes[$extracpt]='PHBL'; }
- if ($MaxNbOfExtra[$extracpt] !~ /^\d+$/ || $MaxNbOfExtra[$extracpt]<1) { $MaxNbOfExtra[$extracpt]=20; }
- if ($MinHitExtra[$extracpt] !~ /^\d+$/ || $MinHitExtra[$extracpt]<1) { $MinHitExtra[$extracpt]=1; }
+ if ($MaxNbOfExtra[$extracpt] !~ /^\d+$/ || $MaxNbOfExtra[$extracpt] < 0) { $MaxNbOfExtra[$extracpt]=20; }
+ if ($MinHitExtra[$extracpt] !~ /^\d+$/ || $MinHitExtra[$extracpt] < 1) { $MinHitExtra[$extracpt]=1; }
if (! $ExtraFirstColumnValues[$extracpt]) { error("Extra section number $extracpt is defined without ExtraSectionFirstColumnValues$extracpt parameter"); }
if (! $ExtraFirstColumnFormat[$extracpt]) { $ExtraFirstColumnFormat[$extracpt] = '%s'; }
}
@@ -2130,7 +2130,7 @@ sub Read_History_With_TmpUpdate {
}
if ($UpdateStats || $MigrateStats || ($HTMLOutput{'main'} && $ShowClusterStats)) { $SectionsToLoad{'cluster'}=$order++; }
foreach (1..@ExtraName-1) {
- if ($UpdateStats || $MigrateStats || ($HTMLOutput{'main'} && $ExtraStatTypes[$_]) || $HTMLOutput{"extra$_"}) { $SectionsToLoad{"extra_$_"}=$order++; }
+ if ($UpdateStats || $MigrateStats || ($HTMLOutput{'main'} && $ExtraStatTypes[$_]) || $HTMLOutput{"allextra$_"}) { $SectionsToLoad{"extra_$_"}=$order++; }
}
foreach (keys %{$PluginsLoaded{'SectionInitHashArray'}}) {
if ($UpdateStats || $MigrateStats || $HTMLOutput{"plugin_$_"}) { $SectionsToLoad{"plugin_$_"}=$order++; }
@@ -7910,6 +7910,9 @@ if (scalar keys %HTMLOutput) {
$menu{"extra$_"}=1;
$menulink{"extra$_"}=1;
$menutext{"extra$_"}=$ExtraName[$_];
+ $menu{"allextra$_"}=2;
+ $menulink{"allextra$_"}=2;
+ $menutext{"allextra$_"}=$Message[80];
}
ShowMenuCateg('extra',$Message[134],'',$frame,$targetpage,$linkanchor,$NewLinkParams,$NewLinkTarget,\%menu,\%menulink,\%menutext);
print "\n";
@@ -8899,6 +8902,82 @@ if (scalar keys %HTMLOutput) {
&html_end(1);
}
}
+ # BY EXTRA SECTIONS
+ #----------------------------
+ foreach my $extranum (1..@ExtraName-1) {
+ if ($HTMLOutput{"allextra$extranum"}) {
+ if ($Debug) { debug("ExtraName$extranum",2); }
+ print "$Center
";
+ my $title=$ExtraName[$extranum];
+ &tab_head("$title",19,0,"extra$extranum");
+ print "
";
+ print "| ".$ExtraFirstColumnTitle[$extranum]." | ";
+
+ if ($ExtraStatTypes[$extranum] =~ m/P/i) { print "$Message[56] | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/H/i) { print "$Message[57] | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/B/i) { print "$Message[75] | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/L/i) { print "$Message[9] | "; }
+ print "
\n";
+ $total_p=$total_h=$total_k=0;
+ #$max_h=1; foreach (values %_login_h) { if ($_ > $max_h) { $max_h = $_; } }
+ #$max_k=1; foreach (values %_login_k) { if ($_ > $max_k) { $max_k = $_; } }
+ my $count=0;
+ if ($ExtraStatTypes[$extranum] =~ m/P/i) {
+ &BuildKeyList($MaxRowsInHTMLOutput,$MinHitExtra[$extranum],\%{'_section_' . $extranum . '_h'},\%{'_section_' . $extranum . '_p'});
+ }
+ else {
+ &BuildKeyList($MaxRowsInHTMLOutput,$MinHitExtra[$extranum],\%{'_section_' . $extranum . '_h'},\%{'_section_' . $extranum . '_h'});
+ }
+ my %keysinkeylist=();
+ foreach my $key (@keylist) {
+ $keysinkeylist{$key}=1;
+ my $firstcol = CleanXSS(DecodeEncodedString($key));
+ $total_p+=${'_section_' . $extranum . '_p'}{$key};
+ $total_h+=${'_section_' . $extranum . '_h'}{$key};
+ $total_k+=${'_section_' . $extranum . '_k'}{$key};
+ print "";
+ printf("| $ExtraFirstColumnFormat[$extranum] | ", $firstcol, $firstcol, $firstcol, $firstcol, $firstcol);
+ if ($ExtraStatTypes[$extranum] =~ m/P/i) { print "" . ${'_section_' . $extranum . '_p'}{$key} . " | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/H/i) { print "" . ${'_section_' . $extranum . '_h'}{$key} . " | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/B/i) { print "" . Format_Bytes(${'_section_' . $extranum . '_k'}{$key}) . " | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/L/i) { print "" . (${'_section_' . $extranum . '_l'}{$key}?Format_Date(${'_section_' . $extranum . '_l'}{$key},1):'-') . " | "; }
+ print "
\n";
+ $count++;
+ }
+ # If we ask average or sum, we loop on all other records
+ if ($ExtraAddAverageRow[$extranum] || $ExtraAddSumRow[$extranum])
+ {
+ foreach (keys %{'_section_' . $extranum . '_h'}) {
+ if ($keysinkeylist{$_}) { next; }
+ $total_p+=${'_section_' . $extranum . '_p'}{$_};
+ $total_h+=${'_section_' . $extranum . '_h'}{$_};
+ $total_k+=${'_section_' . $extranum . '_k'}{$_};
+ $count++;
+ }
+ }
+ # Add average row
+ if ($ExtraAddAverageRow[$extranum]) {
+ print "";
+ print "| $Message[96] | ";
+ if ($ExtraStatTypes[$extranum] =~ m/P/i) { print "" . ($count?($total_p/$count):" ") . " | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/H/i) { print "" . ($count?($total_h/$count):" ") . " | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/B/i) { print "" . ($count?Format_Bytes($total_k/$count):" ") . " | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/L/i) { print " | "; }
+ print "
\n";
+ }
+ # Add sum row
+ if ($ExtraAddSumRow[$extranum]) {
+ print "";
+ print "| $Message[102] | ";
+ if ($ExtraStatTypes[$extranum] =~ m/P/i) { print "" . ($total_p) . " | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/H/i) { print "" . ($total_h) . " | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/B/i) { print "" . Format_Bytes($total_k) . " | "; }
+ if ($ExtraStatTypes[$extranum] =~ m/L/i) { print " | "; }
+ print "
\n";
+ }
+ &tab_end();
+ }
+ }
if ($HTMLOutput{'info'}) {
# Not yet available
print "$Center
";
@@ -8918,6 +8997,7 @@ if (scalar keys %HTMLOutput) {
}
}
+
# Output main page
#-----------------
@@ -10589,7 +10669,9 @@ if (scalar keys %HTMLOutput) {
my $title=$ExtraName[$extranum];
&tab_head("$title",19,0,"extra$extranum");
print "";
- print "| ".$ExtraFirstColumnTitle[$extranum]." | ";
+ print "".$ExtraFirstColumnTitle[$extranum];
+ print " - $Message[80]";
+ print " | ";
if ($ExtraStatTypes[$extranum] =~ m/P/i) { print "$Message[56] | "; }
if ($ExtraStatTypes[$extranum] =~ m/H/i) { print "$Message[57] | "; }
@@ -10600,13 +10682,22 @@ if (scalar keys %HTMLOutput) {
#$max_h=1; foreach (values %_login_h) { if ($_ > $max_h) { $max_h = $_; } }
#$max_k=1; foreach (values %_login_k) { if ($_ > $max_k) { $max_k = $_; } }
my $count=0;
- if ($ExtraStatTypes[$extranum] =~ m/P/i) {
- &BuildKeyList($MaxNbOfExtra[$extranum],$MinHitExtra[$extranum],\%{'_section_' . $extranum . '_h'},\%{'_section_' . $extranum . '_p'});
- }
- else {
- &BuildKeyList($MaxNbOfExtra[$extranum],$MinHitExtra[$extranum],\%{'_section_' . $extranum . '_h'},\%{'_section_' . $extranum . '_h'});
- }
+ if ($MaxNbOfExtra[$extranum])
+ {
+ if ($ExtraStatTypes[$extranum] =~ m/P/i) {
+ &BuildKeyList($MaxNbOfExtra[$extranum],$MinHitExtra[$extranum],\%{'_section_' . $extranum . '_h'},\%{'_section_' . $extranum . '_p'});
+ }
+ else {
+ &BuildKeyList($MaxNbOfExtra[$extranum],$MinHitExtra[$extranum],\%{'_section_' . $extranum . '_h'},\%{'_section_' . $extranum . '_h'});
+ }
+ }
+ else
+ {
+ @keylist=();
+ }
+ my %keysinkeylist=();
foreach my $key (@keylist) {
+ $keysinkeylist{$key}=1;
my $firstcol = CleanXSS(DecodeEncodedString($key));
$total_p+=${'_section_' . $extranum . '_p'}{$key};
$total_h+=${'_section_' . $extranum . '_h'}{$key};
@@ -10620,6 +10711,18 @@ if (scalar keys %HTMLOutput) {
print "
\n";
$count++;
}
+ # If we ask average or sum, we loop on all other records
+ if ($ExtraAddAverageRow[$extranum] || $ExtraAddSumRow[$extranum])
+ {
+ foreach (keys %{'_section_' . $extranum . '_h'}) {
+ if ($keysinkeylist{$_}) { next; }
+ $total_p+=${'_section_' . $extranum . '_p'}{$_};
+ $total_h+=${'_section_' . $extranum . '_h'}{$_};
+ $total_k+=${'_section_' . $extranum . '_k'}{$_};
+ $count++;
+ }
+ }
+ # Add average row
if ($ExtraAddAverageRow[$extranum]) {
print "";
print "| $Message[96] | ";
@@ -10629,6 +10732,7 @@ if (scalar keys %HTMLOutput) {
if ($ExtraStatTypes[$extranum] =~ m/L/i) { print " | "; }
print "
\n";
}
+ # Add sum row
if ($ExtraAddSumRow[$extranum]) {
print "";
print "| $Message[102] | ";