--- awstats.pl.orig 2007-07-07 13:00:06.000000000 +0200 +++ awstats.pl 2008-12-29 20:32:18.000000000 +0100 @@ -295,7 +295,7 @@ %ValidHTTPCodes %ValidSMTPCodes %TrapInfosForHTTPErrorCodes %NotPageList %DayBytes %DayHits %DayPages %DayVisits %MaxNbOf %MinHit -%ListOfYears %HistoryAlreadyFlushed %PosInFile %ValueInFile +%ListOfYears %FirstMonth %HistoryAlreadyFlushed %PosInFile %ValueInFile %val %nextval %egal %TmpDNSLookup %TmpOS %TmpRefererServer %TmpRobot %TmpBrowser %MyDNSTable /; @@ -307,7 +307,7 @@ %NotPageList=(); %DayBytes = %DayHits = %DayPages = %DayVisits = (); %MaxNbOf = %MinHit = (); -%ListOfYears = %HistoryAlreadyFlushed = %PosInFile = %ValueInFile = (); +%ListOfYears = %FirstMonth = %HistoryAlreadyFlushed = %PosInFile = %ValueInFile = (); %val = %nextval = %egal = (); %TmpDNSLookup = %TmpOS = %TmpRefererServer = %TmpRobot = %TmpBrowser = %MyDNSTable = (); use vars qw/ @@ -3436,6 +3436,7 @@ $HistoryAlreadyFlushed{"$year$month$day$hour"}=1; } + if (! $FirstMonth{"$year"} || $FirstMonth{"$year"} gt "$month") { $FirstMonth{"$year"}="$month"; } if (! $ListOfYears{"$year"} || $ListOfYears{"$year"} lt "$month") { $ListOfYears{"$year"}="$month"; } } @@ -5316,7 +5317,7 @@ foreach my $key (sort { $menu->{$a} <=> $menu->{$b} } keys %$menu) { if ($menu->{$key}==0) { next; } if ($menulink->{$key}==1) { print ($frame?"":""); print "$menutext->{$key}"; print ($frame?"\n":"   "); } - if ($menulink->{$key}==2) { print ($frame?"   \"...\" ":""); print "$menutext->{$key}\n"; print ($frame?"\n":"   "); } + if ($menulink->{$key}==2) { print ($frame?"   \"...\" ":""); print "$menutext->{$key}\n"; print ($frame?"\n":"   "); } } print ($frame?"":"\n"); } @@ -5341,8 +5342,8 @@ $title="$Message[131]"; } else { - $title="$Message[131] ($Message[77] $MaxNbOf{'EMailsShown'})   -   $Message[80]"; - if ($ShowEMailSenders =~ /L/i) { $title.="   -   $Message[9]"; } + $title="$Message[131] ($Message[77] $MaxNbOf{'EMailsShown'})   -   $Message[80]"; + if ($ShowEMailSenders =~ /L/i) { $title.="   -   $Message[9]"; } } &tab_head("$title",19,0,'emailsenders'); print "$Message[131] : ".(scalar keys %_emails_h).""; @@ -5414,8 +5415,8 @@ $title="$Message[132]"; } else { - $title="$Message[132] ($Message[77] $MaxNbOf{'EMailsShown'})   -   $Message[80]"; - if ($ShowEMailReceivers =~ /L/i) { $title.="   -   $Message[9]"; } + $title="$Message[132] ($Message[77] $MaxNbOf{'EMailsShown'})   -   $Message[80]"; + if ($ShowEMailReceivers =~ /L/i) { $title.="   -   $Message[9]"; } } &tab_head("$title",19,0,'emailreceivers'); print "$Message[132] : ".(scalar keys %_emailr_h).""; @@ -6044,6 +6045,9 @@ # ListOfYears contains max month found $ListOfYears{"$2"}="$1"; } + if (! $FirstMonth{"$2"} || "$1" lt $ListOfYears{"$2"}) { + $FirstMonth{"$2"}="$1"; + } my $rangestring=($2||"").($1||"").($3||"").($4||""); if ($rangestring gt $lastdatebeforeupdate) { # We are on a new max for mask @@ -7688,11 +7692,65 @@ $NewLinkParams =~ s/(^|&|&)year=[^&]*//i; $NewLinkParams =~ s/(^|&|&)month=[^&]*//i; $NewLinkParams =~ s/(^|&|&)framename=[^&]*//i; - $NewLinkParams =~ s/(&|&)+/&/i; - $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; + $NewLinkParams =~ s/(&|&)+/&/i; + $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; my $NewLinkTarget=''; if ($FrameName eq 'mainright') { $NewLinkTarget=" target=\"_parent\""; } - print "
\n"; + print "\n +EOF + if ($StaticLinks) { + print "\n"; + } else { + print "\n"; + } + } if ($QueryString !~ /buildpdf/i) { @@ -7769,21 +7827,21 @@ # Print selected period of analysis (month and year required) print "$Message[133]:"; print ""; - if ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) { + if ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks || $StaticLinks) { print "\n"; - print "\n"; # Add YearRequired in list if not in ListOfYears $ListOfYears{$YearRequired}||=$MonthRequired; foreach (sort keys %ListOfYears) { print "$_\n"; } print "\n"; - print "\n"; - if ($SiteConfig) { print "\n"; } - if ($DirConfig) { print "\n"; } + if (!$StaticLinks) { print "\n"; } + if (!$StaticLinks && $SiteConfig) { print "\n"; } + if (!$StaticLinks && $DirConfig) { print "\n"; } if ($QueryString =~ /lang=(\w+)/i) { print "\n"; } if ($QueryString =~ /debug=(\d+)/i) { print "\n"; } if ($FrameName eq 'mainright') { print "\n"; } @@ -7859,15 +7917,15 @@ if ($ShowSessionsStats) { print ($frame?"":""); print "$Message[117]"; print ($frame?"\n":"   "); } if ($ShowFileTypesStats) { print ($frame?"":""); print "$Message[73]"; print ($frame?"\n":"   "); } if ($ShowPagesStats) { print ($frame?"":""); print "$Message[29]\n"; print ($frame?"\n":"   "); } - if ($ShowPagesStats) { print ($frame?"   \"...\" ":""); print "$Message[80]\n"; print ($frame?"\n":"   "); } - if ($ShowPagesStats =~ /E/i) { print ($frame?"   \"...\" ":""); print "$Message[104]\n"; print ($frame?"\n":"   "); } - if ($ShowPagesStats =~ /X/i) { print ($frame?"   \"...\" ":""); print "$Message[116]\n"; print ($frame?"\n":"   "); } + if ($ShowPagesStats) { print ($frame?"   \"...\" ":""); print "$Message[80]\n"; print ($frame?"\n":"   "); } + if ($ShowPagesStats =~ /E/i) { print ($frame?"   \"...\" ":""); print "$Message[104]\n"; print ($frame?"\n":"   "); } + if ($ShowPagesStats =~ /X/i) { print ($frame?"   \"...\" ":""); print "$Message[116]\n"; print ($frame?"\n":"   "); } if ($ShowOSStats) { print ($frame?"":""); print "$Message[59]"; print ($frame?"\n":"   "); } - if ($ShowOSStats) { print ($frame?"   \"...\" ":""); print "$Message[58]\n"; print ($frame?"\n":"   "); } - if ($ShowOSStats) { print ($frame?"   \"...\" ":""); print "$Message[0]\n"; print ($frame?"\n":"   "); } + if ($ShowOSStats) { print ($frame?"   \"...\" ":""); print "$Message[58]\n"; print ($frame?"\n":"   "); } + if ($ShowOSStats) { print ($frame?"   \"...\" ":""); print "$Message[0]\n"; print ($frame?"\n":"   "); } if ($ShowBrowsersStats) { print ($frame?"":""); print "$Message[21]"; print ($frame?"\n":"   "); } - if ($ShowBrowsersStats) { print ($frame?"   \"...\" ":""); print "$Message[58]\n"; print ($frame?"\n":"   "); } - if ($ShowBrowsersStats) { print ($frame?"   \"...\" ":""); print "$Message[0]\n"; print ($frame?"\n":"   "); } + if ($ShowBrowsersStats) { print ($frame?"   \"...\" ":""); print "$Message[58]\n"; print ($frame?"\n":"   "); } + if ($ShowBrowsersStats) { print ($frame?"   \"...\" ":""); print "$Message[0]\n"; print ($frame?"\n":"   "); } if ($ShowScreenSizeStats) { print ($frame?"":""); print "$Message[135]"; print ($frame?"\n":"   "); } if ($linetitle) { print ($frame?"":"\n"); } # Referers @@ -7914,7 +7972,7 @@ $NewLinkParams =~ s/(&|&)+/&/i; $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; if (! $DetailedReportsOnNewWindows || $FrameName eq 'mainright' || $QueryString =~ /buildpdf/i) { - print "$Message[76]\n"; + print "$Message[76]\n"; } else { print "$Message[118]\n"; @@ -9612,7 +9670,7 @@ if ($ShowDomainsStats) { if ($Debug) { debug("ShowDomainsStats",2); } print "$Center 
\n"; - my $title="$Message[25] ($Message[77] $MaxNbOf{'Domain'})   -   $Message[80]"; + my $title="$Message[25] ($Message[77] $MaxNbOf{'Domain'})   -   $Message[80]"; &tab_head("$title",19,0,'countries'); print " $Message[17]"; @@ -9702,7 +9760,7 @@ if ($ShowHostsStats) { if ($Debug) { debug("ShowHostsStats",2); } print "$Center 
\n"; - my $title="$Message[81] ($Message[77] $MaxNbOf{'HostsShown'})   -   $Message[80]   -   $Message[9]   -   $Message[45]"; + my $title="$Message[81] ($Message[77] $MaxNbOf{'HostsShown'})   -   $Message[80]   -   $Message[9]   -   $Message[45]"; &tab_head("$title",19,0,'visitors'); print ""; print ""; @@ -9764,8 +9822,8 @@ if ($ShowAuthenticatedUsers) { if ($Debug) { debug("ShowAuthenticatedUsers",2); } print "$Center 
\n"; - my $title="$Message[94] ($Message[77] $MaxNbOf{'LoginShown'})   -   $Message[80]"; - if ($ShowAuthenticatedUsers =~ /L/i) { $title.="   -   $Message[9]"; } + my $title="$Message[94] ($Message[77] $MaxNbOf{'LoginShown'})   -   $Message[80]"; + if ($ShowAuthenticatedUsers =~ /L/i) { $title.="   -   $Message[9]"; } &tab_head("$title",19,0,'logins'); print "$Message[94] : ".(scalar keys %_login_h).""; &ShowUserInfo('__title__'); @@ -9816,7 +9874,7 @@ if ($ShowRobotsStats) { if ($Debug) { debug("ShowRobotStats",2); } print "$Center 
\n"; - &tab_head("$Message[53] ($Message[77] $MaxNbOf{'RobotShown'})   -   $Message[80]   -   $Message[9]",19,0,'robots'); + &tab_head("$Message[53] ($Message[77] $MaxNbOf{'RobotShown'})   -   $Message[80]   -   $Message[9]",19,0,'robots'); print "".(scalar keys %_robot_h)." $Message[51]*"; if ($ShowRobotsStats =~ /H/i) { print "$Message[57]"; } if ($ShowRobotsStats =~ /B/i) { print "$Message[75]"; } @@ -10021,9 +10079,9 @@ if ($ShowPagesStats) { if ($Debug) { debug("ShowPagesStats (MaxNbOf{'PageShown'}=$MaxNbOf{'PageShown'} TotalDifferentPages=$TotalDifferentPages)",2); } print "$Center   
\n"; - my $title="$Message[19] ($Message[77] $MaxNbOf{'PageShown'})   -   $Message[80]"; - if ($ShowPagesStats =~ /E/i) { $title.="   -   $Message[104]"; } - if ($ShowPagesStats =~ /X/i) { $title.="   -   $Message[116]"; } + my $title="$Message[19] ($Message[77] $MaxNbOf{'PageShown'})   -   $Message[80]"; + if ($ShowPagesStats =~ /E/i) { $title.="   -   $Message[104]"; } + if ($ShowPagesStats =~ /X/i) { $title.="   -   $Message[116]"; } &tab_head("$title",19,0,'urls'); print "$TotalDifferentPages $Message[28]"; if ($ShowPagesStats =~ /P/i && $LogType ne 'F') { print "$Message[29]"; } @@ -10119,7 +10177,7 @@ foreach my $family (keys %OSFamily) { if ($key =~ /^$family/i) { $new_os_h{"${family}cumul"}+=$_os_h{$key}; next OSLOOP; } } $new_os_h{$key}+=$_os_h{$key}; } - my $title="$Message[59] ($Message[77] $MaxNbOf{'OsShown'})   -   $Message[80]/$Message[58]   -   $Message[0]"; + my $title="$Message[59] ($Message[77] $MaxNbOf{'OsShown'})   -   $Message[80]/$Message[58]   -   $Message[0]"; &tab_head("$title",19,0,'os'); print " $Message[59]$Message[57]$Message[15]\n"; $total_h=0; @@ -10165,7 +10223,7 @@ foreach my $family (keys %BrowsersFamily) { if ($key =~ /^$family/i) { $new_browser_h{"${family}cumul"}+=$_browser_h{$key}; next BROWSERLOOP; } } $new_browser_h{$key}+=$_browser_h{$key}; } - my $title="$Message[21] ($Message[77] $MaxNbOf{'BrowsersShown'})   -   $Message[80]/$Message[58]   -   $Message[0]"; + my $title="$Message[21] ($Message[77] $MaxNbOf{'BrowsersShown'})   -   $Message[80]/$Message[58]   -   $Message[0]"; &tab_head("$title",19,0,'browsers'); print " $Message[21]$Message[111]$Message[57]$Message[15]\n"; $total_h=0; @@ -10283,7 +10341,7 @@ if ($ShowOriginStats =~ /H/i) { print "".($_from_h[5]?$_from_h[5]:" ")."".($_from_h[5]?"$p_h[5] %":" ").""; } print "\n"; #------- Referrals by search engines - print "$Message[40] - $Message[80]
\n"; + print "$Message[40] - $Message[80]
\n"; if (scalar keys %_se_referrals_h) { print "\n"; $total_p=0; $total_h=0; @@ -10315,7 +10373,7 @@ if ($ShowOriginStats =~ /H/i) { print ""; } print "\n"; #------- Referrals by external HTML link - print "
".($_from_h[2]?$_from_h[2]:" ")."".($_from_h[2]?"$p_h[2] %":" ")."
$Message[41] - $Message[80]
\n"; + print "
$Message[41] - $Message[80]
\n"; if (scalar keys %_pagesrefs_h) { print "\n"; $total_p=0; $total_h=0; @@ -10374,7 +10432,7 @@ # By Keyphrases if ($ShowKeyphrasesStats && $ShowKeywordsStats) { print "\n"; $total_s=0; my $count=0; @@ -10406,7 +10464,7 @@ # By Keywords if ($ShowKeyphrasesStats && $ShowKeywordsStats) { print "\n"; $total_s=0; my $count=0; @@ -10493,7 +10551,7 @@ foreach my $key (@keylist) { my $p=int($_errors_h{$key}/$TotalHitsErrors*1000)/10; print ""; - if ($TrapInfosForHTTPErrorCodes{$key}) { print ""; } + if ($TrapInfosForHTTPErrorCodes{$key}) { print ""; } else { print ""; } print ""; print "\n";
\n"; } if ($Debug) { debug("ShowKeyphrasesStats",2); } - &tab_head("$Message[120] ($Message[77] $MaxNbOf{'KeyphrasesShown'})
$Message[80]",19,($ShowKeyphrasesStats && $ShowKeywordsStats)?95:70,'keyphrases'); + &tab_head("$Message[120] ($Message[77] $MaxNbOf{'KeyphrasesShown'})
$Message[80]",19,($ShowKeyphrasesStats && $ShowKeywordsStats)?95:70,'keyphrases'); print "
$TotalDifferentKeyphrases $Message[103]$Message[14]$Message[15]
\n"; } if ($Debug) { debug("ShowKeywordsStats",2); } - &tab_head("$Message[121] ($Message[77] $MaxNbOf{'KeywordsShown'})
$Message[80]",19,($ShowKeyphrasesStats && $ShowKeywordsStats)?95:70,'keywords'); + &tab_head("$Message[121] ($Message[77] $MaxNbOf{'KeywordsShown'})
$Message[80]",19,($ShowKeyphrasesStats && $ShowKeywordsStats)?95:70,'keywords'); print "
$TotalDifferentKeywords $Message[13]$Message[14]$Message[15]
$key$key$key".($httpcodelib{$key}?$httpcodelib{$key}:'Unknown error')."$_errors_h{$key}$p %".Format_Bytes($_errors_k{$key})."