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]";