diff --git a/docs/awstats_config.html b/docs/awstats_config.html index 073a4ceb3..5fc426a9e 100644 --- a/docs/awstats_config.html +++ b/docs/awstats_config.html @@ -53,6 +53,7 @@
  • DirData
  • DirCgi
  • DirIcons +
  • DirImgs
  • SiteDomain
  • HostAliases
  • AllowToUpdateStatsFromBrowser @@ -468,6 +469,19 @@


    +DirImgs
    +Version : 1.0+
    +
    # Relative or absolute web URL of your awstats images directory. +
    # If you build static reports ("... -output > outputpath/output.html"), enter +
    # path of images directory relative to the output directory 'outputpath'. +
    # Example: "/awstatsimgs" +
    # Example: "../img" +
    # Default: "/img" (means you must copy images directories in "/mywwwroot/img") +
    # +
    DirIcons="/img" + +


    + SiteDomain
    Version : 3.2+

    # "SiteDomain" must contain the main domain name or the main intranet web @@ -1430,8 +1444,8 @@

    # Show domains/country chart
    # Context: Web, Streaming, Mail, Ftp -
    # Default: PHB, Possible column codes: PHB -
    ShowDomainsStats=PHB +
    # Default: UVPHB, Possible column codes: UVPHB +
    ShowDomainsStats=UVPHB

    # Show hosts chart
    # Context: Web, Streaming, Mail, Ftp diff --git a/docs/awstats_contrib.html b/docs/awstats_contrib.html index 05f1c1f49..ee6e2260a 100644 --- a/docs/awstats_contrib.html +++ b/docs/awstats_contrib.html @@ -227,6 +227,7 @@
    Note: You must choose between using this plugin or the GeoIPfree plugin (need Perl Geo::IPfree module, database is free but not up to date). +
    Free databases can be found here : https://mailfud.org/geoip-legacy/
    Example LoadPlugin="geoip GEOIP_STANDARD /usr/local/geoip.dat /usr/local/geoip_override.txt"
    Plugin provided with AWStats (5.2+) @@ -236,7 +237,9 @@
    Parameters: [GEOIP_STANDARD | GEOIP_MEMORY_CACHE] [/pathto/GeoIPCity.dat] </pathto/override.txt>
    Description: This plugin adds a chart of hits by cities (with country and regions informations for major countries).
    By enabling this plugin, you will see a new link called 'Cities' on -reports menu.
    Example LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/geoip.dat /usr/local/GeoIPCity_override.txt" +reports menu. +
    Free databases can be found here : https://mailfud.org/geoip-legacy/ +
    Example LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/geoip.dat /usr/local/GeoIPCity_override.txt"
    Plugin provided with AWStats (6.2+) @@ -247,7 +250,9 @@ the database. You can also provide a link that will be used to lookup additional registration data. Put the link at the end of the parameter string and the report page will include the link with the full AS -number at the end.
    Example LoadPlugin="geoip_asn_maxmind +number at the end. +
    Free databases can be found here : https://mailfud.org/geoip-legacy/ +
    Example LoadPlugin="geoip_asn_maxmind GEOIP_STANDARD /usr/local/geoip.dat /usr/local/GeoIPASN_override.txt http://enc.com.au/itools/aut-num.php?autnum="
    Plugin provided with AWStats (6.9+) @@ -268,6 +273,7 @@
    By enabling this plugin, you will see a new link called 'ISP' on reports menu. For the moment this link works only when AWStats reports are build as CGI (static built not yet supported). +
    Free databases can be found here : https://mailfud.org/geoip-legacy/
    Example LoadPlugin="geoip_isp_maxmind GEOIP_STANDARD /usr/local/GeoIPISP.dat /usr/local/geoip_override.txt"
    Plugin provided with AWStats (6.3+)

    GeoIP_Org_Maxmind @@ -276,6 +282,7 @@
    By enabling this plugin, you will see a new link called 'Organizations' on reports menu. For the moment this link works only when AWStats reports are build as CGI (static built not yet supported). +
    Free databases can be found here : https://mailfud.org/geoip-legacy/
    Example LoadPlugin="geoip_org_maxmind GEOIP_STANDARD /usr/local/GeoIPOrg.dat /usr/local/geoip_override.txt"
    Plugin provided with AWStats (6.3+)

    diff --git a/docs/awstats_setup.html b/docs/awstats_setup.html index f9f515645..a5aeb2389 100644 --- a/docs/awstats_setup.html +++ b/docs/awstats_setup.html @@ -115,6 +115,7 @@

    I. Setup: Installation and configuration using Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
    Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
    Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
    +Alias /awstatsimgs "/usr/local/awstats/wwwroot/img/"
    ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
    #
    # This is to permit URL access to scripts/files in AWStats directory.
    @@ -252,6 +253,9 @@

    I. Setup: Installation and configuration using Move AWStats icon sub-directories and its content into a directory readable by your web server, for example C:\yourwwwroot\icon.
    +Move AWStats img sub-directories and its content into a +directory readable by your +web server, for example C:\yourwwwroot\img.

    * Step 4:

    @@ -282,6 +286,8 @@

    I. Setup: Installation and configuration using cs-uri-query sc-status sc-bytes cs-version cs(User-Agent) cs(Referer)"
    - Change the DirIcons parameter to reflect relative path of icon directory.
    +- Change the DirImgs +parameter to reflect relative path of img directory.
    - Set the SiteDomain parameter to the main domain name or the intranet web server name used to reach the web site being analyzed (Example: diff --git a/make/rpm/awstats.spec b/make/rpm/awstats.spec index 4d017b81d..55067fc4f 100644 --- a/make/rpm/awstats.spec +++ b/make/rpm/awstats.spec @@ -124,6 +124,7 @@ mkdir -p $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/icon/flags mkdir -p $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/icon/mime mkdir -p $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/icon/os mkdir -p $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/icon/other +mkdir -p $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/img mkdir -p $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/js mkdir -p $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/cgi-bin/lang mkdir -p $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/cgi-bin/lang/tooltips_f @@ -163,6 +164,7 @@ install -m 444 wwwroot/icon/flags/* $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/ic install -m 444 wwwroot/icon/mime/* $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/icon/mime install -m 444 wwwroot/icon/os/* $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/icon/os install -m 444 wwwroot/icon/other/* $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/icon/other +install -m 444 wwwroot/img/* $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/img install -m 444 wwwroot/js/* $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/js install -m 444 wwwroot/cgi-bin/lang/tooltips_f/* $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/cgi-bin/lang/tooltips_f install -m 444 wwwroot/cgi-bin/lang/tooltips_m/* $RPM_BUILD_ROOT/usr/local/awstats/wwwroot/cgi-bin/lang/tooltips_m diff --git a/tools/awstats_configure.pl b/tools/awstats_configure.pl index 462528ee2..d735395ee 100755 --- a/tools/awstats_configure.pl +++ b/tools/awstats_configure.pl @@ -21,6 +21,7 @@ use vars qw/ $AWSTATS_PATH $AWSTATS_ICON_PATH +$AWSTATS_IMG_PATH $AWSTATS_CSS_PATH $AWSTATS_CLASSES_PATH $AWSTATS_CGI_PATH @@ -29,6 +30,7 @@ /; $AWSTATS_PATH=''; $AWSTATS_ICON_PATH='/usr/local/awstats/wwwroot/icon'; +$AWSTATS_IMG_PATH='/usr/local/awstats/wwwroot/img'; $AWSTATS_CSS_PATH='/usr/local/awstats/wwwroot/css'; $AWSTATS_CLASSES_PATH='/usr/local/awstats/wwwroot/classes'; $AWSTATS_CGI_PATH='/usr/local/awstats/wwwroot/cgi-bin'; @@ -324,6 +326,7 @@ sub update_awstats_config exit 1; } $AWSTATS_ICON_PATH="$AWSTATS_PATH/wwwroot/icon"; + $AWSTATS_IMG_PATH="$AWSTATS_PATH/wwwroot/img" $AWSTATS_CSS_PATH="$AWSTATS_PATH/wwwroot/css"; $AWSTATS_CLASSES_PATH="$AWSTATS_PATH/wwwroot/classes"; $AWSTATS_CGI_PATH="$AWSTATS_PATH/wwwroot/cgi-bin"; @@ -349,6 +352,7 @@ sub update_awstats_config exit 1; } $AWSTATS_ICON_PATH="$AWSTATS_PATH/wwwroot/icon"; + $AWSTATS_IMG_PATH="$AWSTATS_PATH/wwwroot/img"; $AWSTATS_CSS_PATH="$AWSTATS_PATH/wwwroot/css"; $AWSTATS_CLASSES_PATH="$AWSTATS_PATH/wwwroot/classes"; $AWSTATS_CGI_PATH="$AWSTATS_PATH/wwwroot/cgi-bin"; @@ -358,6 +362,7 @@ sub update_awstats_config # We do not use default values for awstats directives # but thoose defined from AWSTATS_PATH $AWSTATS_ICON_PATH="$AWSTATS_PATH/wwwroot/icon"; + $AWSTATS_IMG_PATH="$AWSTATS_PATH/wwwroot/img"; $AWSTATS_CSS_PATH="$AWSTATS_PATH/wwwroot/css"; $AWSTATS_CLASSES_PATH="$AWSTATS_PATH/wwwroot/classes"; $AWSTATS_CGI_PATH="$AWSTATS_PATH/wwwroot/cgi-bin"; @@ -457,6 +462,7 @@ sub update_awstats_config my $awstatsclassesfound=0; my $awstatscssfound=0; my $awstatsiconsfound=0; + my $awstatsimgsfound=0; my $awstatscgifound=0; my $awstatsdirectoryfound=0; while() @@ -480,13 +486,14 @@ sub update_awstats_config if ($_ =~ /Alias \/awstatsclasses/) { $awstatsclassesfound=1; } if ($_ =~ /Alias \/awstatscss/) { $awstatscssfound=1; } if ($_ =~ /Alias \/awstatsicons/) { $awstatsiconsfound=1; } + if ($_ =~ /Alias \/awstatsimgs/) { $awstatsimgsfound=1; } if ($_ =~ /ScriptAlias \/awstats\//) { $awstatscgifound=1; } my $awstats_path_quoted=quotemeta($AWSTATS_PATH); if ($_ =~ /Directory "$awstats_path_quoted\/wwwroot"/) { $awstatsdirectoryfound=1; } } close CONF; - if ($awstatsclassesfound && $awstatscssfound && $awstatsiconsfound && $awstatscgifound && $awstatsdirectoryfound) + if ($awstatsclassesfound && $awstatscssfound && $awstatsiconsfound && $awstatsimgsfound && $awstatscgifound && $awstatsdirectoryfound) { $UseAlias=1; if ($commonchangedtocombined) { print " Common log files changed to combined.\n"; } @@ -497,7 +504,7 @@ sub update_awstats_config # Add awstats directives open(CONF,">>$key") || error("Failed to open config file '$key' for adding AWStats directives"); binmode CONF; - if (! $awstatsclassesfound || ! $awstatscssfound || ! $awstatsiconsfound || ! $awstatscgifound) { + if (! $awstatsclassesfound || ! $awstatscssfound || ! $awstatsiconsfound || ! $awstatsimgsfound || ! $awstatscgifound) { print CONF "$CR\n"; print CONF "#$CR\n"; print CONF "# Directives to allow use of AWStats as a CGI$CR\n"; @@ -515,6 +522,12 @@ sub update_awstats_config print " Add 'Alias \/awstatsicons \"$AWSTATS_ICON_PATH\/\"'\n"; print CONF "Alias \/awstatsicons \"$AWSTATS_ICON_PATH\/\"$CR\n"; } + + if (! $awstatsimgsfound) { + print " Add 'Alias \/awstatsimgs \"$AWSTATS_IMG_PATH\/\"'\n"; + print CONF "Alias \/awstatsimgs \"$AWSTATS_IMG_PATH\/\"$CR\n"; + } + if (! $awstatscgifound) { print " Add 'ScriptAlias \/awstats\/ \"$AWSTATS_CGI_PATH\/\"'\n"; print CONF "ScriptAlias \/awstats\/ \"$AWSTATS_CGI_PATH\/\"$CR\n"; @@ -570,6 +583,7 @@ sub update_awstats_config if ($UseAlias) { $ConfToChange{'DirCgi'}='/awstats'; $ConfToChange{'DirIcons'}='/awstatsicons'; + $ConfToChange{'DirImgs'}='/awstatsimgs'; } update_awstats_config("$modelfile"); print " File awstats.model.conf updated.\n"; @@ -639,6 +653,7 @@ sub update_awstats_config if ($UseAlias) { $ConfToChange{'DirCgi'}='/awstats'; $ConfToChange{'DirIcons'}='/awstatsicons'; + $ConfToChange{'DirImgs'}='/awstatsimgs'; } $ConfToChange{'SiteDomain'}="$site"; my $sitewithoutwww=lc($site); $sitewithoutwww =~ s/^www\.//i; diff --git a/wwwroot/cgi-bin/awstats.model.conf b/wwwroot/cgi-bin/awstats.model.conf index 12f066af5..840e3d839 100644 --- a/wwwroot/cgi-bin/awstats.model.conf +++ b/wwwroot/cgi-bin/awstats.model.conf @@ -990,6 +990,11 @@ ShowMonthStats=UVPHB # Default: VPHB, Possible column codes: VPHB ShowDaysOfMonthStats=VPHB +# Show ratios chart +# Context: Web +# Default: UVPH, Possible column codes: UVPH +ShowRatiosStats=UVPH + # Show days of week chart # Context: Web, Streaming, Mail, Ftp # Default: PHB, Possible column codes: PHB @@ -1002,8 +1007,8 @@ ShowHoursStats=PHB # Show domains/country chart # Context: Web, Streaming, Mail, Ftp -# Default: PHB, Possible column codes: UVPHB -ShowDomainsStats=PHB +# Default: UVPHB, Possible column codes: UVPHB +ShowDomainsStats=UVPHB # Show hosts chart # Context: Web, Streaming, Mail, Ftp @@ -1210,6 +1215,18 @@ FirstDayOfWeek=1 # ShowFlagLinks="" +# Wether country flags are image or utf8 based +# Possible values: "image" or "utf8" +# Default: "image" +# +FlagsType="image" + +# Choose if you want to show the world map +# Possible values: 0 or 1 +# Default: 1 +# +ShowMap=1 + # Each URL, shown in stats report views, are links you can click. # Possible values: 0 or 1 @@ -1266,11 +1283,10 @@ Logo="awstats_logo6.png" LogoLink="https://www.awstats.org" -# Value of maximum bar width/height for horizontal/vertical HTML graphics bars. -# Default: 260/90 +# Value of maximum bar width for horizontal HTML graphics bars. +# Default: 260 # BarWidth = 260 -BarHeight = 90 # You can ask AWStats to use a particular CSS (Cascading Style Sheet) to @@ -1282,6 +1298,15 @@ BarHeight = 90 # StyleSheet="" +# When using a particular CSS (Cascading Style Sheet), +# you can choose one of the two modes available +# +# "herited" : you keep the awstats built-in css base and you override it in your stylesheet +# "standalone" : the built-in css will not be considered +# +# Default: "herited" +# +StylesheetMode="herited" # Those color parameters can be used (if StyleSheet parameter is not used) # to change AWStats look. @@ -1302,7 +1327,7 @@ color_link="0011BB" # Color of HTML links (Default = "0011BB") color_hover="605040" # Color of HTML on-mouseover links (Default = "605040") color_u="FFAA66" # Background color for number of unique visitors (Default = "FFAA66") color_v="F4F090" # Background color for number of visites (Default = "F4F090") -color_p="4477DD" # Background color for number of pages (Default = "4477DD") +color_p="74A2FD" # Background color for number of pages (Default = "74A2FD") color_h="66DDEE" # Background color for number of hits (Default = "66DDEE") color_k="2EA495" # Background color for number of bytes (Default = "2EA495") color_s="8888DD" # Background color for number of search (Default = "8888DD") @@ -1463,6 +1488,7 @@ color_x="C1B2E2" # Background color for number of exit pages (Default = "C1B2 # DESCRIPTION: Builds a country chart and adds an entry to the hosts # table with country name # Replace spaces in the path of geoip data file with string "%20". +# Free databases can be found here: https://mailfud.org/geoip-legacy/ # #LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat" @@ -1483,6 +1509,7 @@ color_x="C1B2E2" # Background color for number of exit pages (Default = "C1B2 # table with country name # works with IPv4 and also IPv6 addresses # Replace spaces in the path of geoip data file with string "%20". +# Free databases can be found here: https://mailfud.org/geoip-legacy/ # #LoadPlugin="geoip6 GEOIP_STANDARD /pathto/GeoIPv6.dat" @@ -1492,6 +1519,7 @@ color_x="C1B2E2" # Background color for number of exit pages (Default = "C1B2 # DESCRIPTION: This plugin adds a column under the hosts field and tracks the pageviews # and hits by city including regions. # Replace spaces in the path of geoip data file with string "%20". +# Free databases can be found here: https://mailfud.org/geoip-legacy/ # #LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /pathto/GeoIPCity.dat" @@ -1512,6 +1540,7 @@ color_x="C1B2E2" # Background color for number of exit pages (Default = "C1B2 # a link that will be used to lookup additional registration data. Put the link at the end of # the parameter string and the report page will include the link with the full AS number at the end. # Replace spaces in the path of geoip data file with string "%20". +# Free databases can be found here: https://mailfud.org/geoip-legacy/ # #LoadPlugin="geoip_asn_maxmind GEOIP_STANDARD /usr/local/geoip.dat+http://enc.com.au/itools/autnum.php?asn=" @@ -1529,6 +1558,7 @@ color_x="C1B2E2" # Background color for number of exit pages (Default = "C1B2 # PARAMETERS: [GEOIP_STANDARD | GEOIP_MEMORY_CACHE] [/pathto/GeoIPISP.dat[+/pathto/override.txt]] # DESCRIPTION: This plugin adds a chart of hits by ISP. # Replace spaces in the path of geoip data file with string "%20". +# Free databases can be found here: https://mailfud.org/geoip-legacy/ # #LoadPlugin="geoip_isp_maxmind GEOIP_STANDARD /pathto/GeoIPISP.dat" @@ -1537,6 +1567,7 @@ color_x="C1B2E2" # Background color for number of exit pages (Default = "C1B2 # PARAMETERS: [GEOIP_STANDARD | GEOIP_MEMORY_CACHE] [/pathto/GeoIPOrg.dat[+/pathto/override.txt]] # DESCRIPTION: This plugin add a chart of hits by Organization name # Replace spaces in the path of geoip data file with string "%20". +# Free databases can be found here: https://mailfud.org/geoip-legacy/ # #LoadPlugin="geoip_org_maxmind GEOIP_STANDARD /pathto/GeoIPOrg.dat" diff --git a/wwwroot/cgi-bin/awstats.pl b/wwwroot/cgi-bin/awstats.pl index 0e111fc34..862a09f10 100755 --- a/wwwroot/cgi-bin/awstats.pl +++ b/wwwroot/cgi-bin/awstats.pl @@ -37,9 +37,10 @@ #------------------------------------------------------------------------------ # Defines #------------------------------------------------------------------------------ -use vars qw/ $REVISION $VERSION /; +use vars qw/ $RELEASE $REVISION $VERSION /; +$RELEASE = '8.0'; $REVISION = '20240604'; -$VERSION = "8.0 (build $REVISION)"; +$VERSION = $RELEASE . '(build ' . $REVISION . ')'; # ----- Constants ----- use vars qw/ @@ -84,7 +85,7 @@ $TotalEntries $TotalExits $TotalBytesPages $TotalDifferentPages $TotalKeyphrases $TotalKeywords $TotalDifferentKeyphrases $TotalDifferentKeywords $TotalSearchEnginesPages $TotalSearchEnginesHits $TotalRefererPages $TotalRefererHits $TotalDifferentSearchEngines $TotalDifferentReferer - $FrameName $Center $FileConfig $FileSuffix $Host $YearRequired $MonthRequired $DayRequired $HourRequired + $FrameName $FileConfig $FileSuffix $Host $YearRequired $MonthRequired $DayRequired $HourRequired $QueryString $SiteConfig $StaticLinks $PageCode $PageDir $PerlParsingFormat $PerlParsingFormatJsonMap $UserAgent $pos_vh $pos_host $pos_logname $pos_date $pos_tz $pos_method $pos_url $pos_code $pos_size $pos_time $pos_referer $pos_agent $pos_query $pos_gzipin $pos_gzipout $pos_compratio $pos_timetaken @@ -109,13 +110,13 @@ $TotalSearchEnginesPages = $TotalSearchEnginesHits = $TotalRefererPages = 0; $TotalRefererHits = $TotalDifferentSearchEngines = $TotalDifferentReferer = 0; ( - $FrameName, $Center, $FileConfig, $FileSuffix, + $FrameName, $FileConfig, $FileSuffix, $Host, $YearRequired, $MonthRequired, $DayRequired, $HourRequired, $QueryString, $SiteConfig, $StaticLinks, $PageCode, $PageDir, $PerlParsingFormat, $UserAgent, $PerlParsingFormatJsonMap ) - = ( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', undef ); + = ( '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', undef ); # ----- Plugins variable ----- use vars qw/ %PluginsLoaded $PluginDir $AtLeastOneSectionPlugin /; @@ -150,7 +151,6 @@ $MaxLengthOfShownURL $MaxLengthOfStoredURL $MaxLengthOfStoredUA - %BarPng $BuildReportFormat $BuildHistoryFormat $ExtraTrackedRowsLimit @@ -167,26 +167,13 @@ $MaxLengthOfShownURL = 64; $MaxLengthOfStoredURL = 256; # Note: Apache LimitRequestLine is default to 8190 $MaxLengthOfStoredUA = 256; -%BarPng = ( - 'vv' => 'vv.png', - 'vu' => 'vu.png', - 'hu' => 'hu.png', - 'vp' => 'vp.png', - 'hp' => 'hp.png', - 'he' => 'he.png', - 'hx' => 'hx.png', - 'vh' => 'vh.png', - 'hh' => 'hh.png', - 'vk' => 'vk.png', - 'hk' => 'hk.png' -); $BuildReportFormat = 'html'; $BuildHistoryFormat = 'text'; $ExtraTrackedRowsLimit = 500; $DatabaseBreak = 'month'; use vars qw/ $DebugMessages $AllowToUpdateStatsFromBrowser $EnableLockForUpdate $DNSLookup $DynamicDNSLookup $AllowAccessFromWebToAuthenticatedUsersOnly - $BarHeight $BarWidth $CreateDirDataIfNotExists $KeepBackupOfHistoricFiles + $BarWidth $CreateDirDataIfNotExists $KeepBackupOfHistoricFiles $ShowMap $NbOfLinesParsed $NbOfLinesDropped $NbOfLinesCorrupted $NbOfLinesComment $NbOfLinesBlank $NbOfOldLines $NbOfNewLines $NbOfLinesShowsteps $NewLinePhase $NbOfLinesForCorruptedLog $PurgeLogFile $ArchiveLogRecords $ShowDropped $ShowCorrupted $ShowUnknownOrigin $ShowDirectOrigin $ShowLinksToWhoIs @@ -198,63 +185,41 @@ $DecodeUA $DecodePunycode /; ( - $DebugMessages, - $AllowToUpdateStatsFromBrowser, - $EnableLockForUpdate, - $DNSLookup, - $DynamicDNSLookup, - $AllowAccessFromWebToAuthenticatedUsersOnly, - $BarHeight, - $BarWidth, - $CreateDirDataIfNotExists, - $KeepBackupOfHistoricFiles, - $NbOfLinesParsed, - $NbOfLinesDropped, - $NbOfLinesCorrupted, - $NbOfLinesComment, - $NbOfLinesBlank, - $NbOfOldLines, - $NbOfNewLines, - $NbOfLinesShowsteps, - $NewLinePhase, - $NbOfLinesForCorruptedLog, - $PurgeLogFile, - $ArchiveLogRecords, - $ShowDropped, - $ShowCorrupted, - $ShowUnknownOrigin, - $ShowDirectOrigin, - $ShowLinksToWhoIs, - $ShowAuthenticatedUsers, + $DebugMessages, $AllowToUpdateStatsFromBrowser, + $EnableLockForUpdate, $DNSLookup, + $DynamicDNSLookup, $AllowAccessFromWebToAuthenticatedUsersOnly, + $BarWidth, $CreateDirDataIfNotExists, + $KeepBackupOfHistoricFiles, $ShowMap, + $NbOfLinesParsed, $NbOfLinesDropped, + $NbOfLinesCorrupted, $NbOfLinesComment, + $NbOfLinesBlank, $NbOfOldLines, + $NbOfNewLines, $NbOfLinesShowsteps, + $NewLinePhase, $NbOfLinesForCorruptedLog, + $PurgeLogFile, $ArchiveLogRecords, + $ShowDropped, $ShowCorrupted, + $ShowUnknownOrigin, $ShowDirectOrigin, + $ShowLinksToWhoIs, $ShowAuthenticatedUsers, $ShowFileSizesStats, $ShowRequestTimesStats, - $ShowScreenSizeStats, - $ShowSMTPErrorsStats, - $ShowEMailSenders, - $ShowEMailReceivers, - $ShowWormsStats, - $ShowClusterStats, - $IncludeInternalLinksInOriginSection, - $AuthenticatedUsersNotCaseSensitive, - $Expires, - $UpdateStats, - $MigrateStats, - $URLNotCaseSensitive, - $URLWithQuery, - $URLReferrerWithQuery, - $DecodeUA, - $DecodePunycode + $ShowScreenSizeStats, $ShowSMTPErrorsStats, + $ShowEMailSenders, $ShowEMailReceivers, + $ShowWormsStats, $ShowClusterStats, + $IncludeInternalLinksInOriginSection, $AuthenticatedUsersNotCaseSensitive, + $Expires, $UpdateStats, + $MigrateStats, $URLNotCaseSensitive, + $URLWithQuery, $URLReferrerWithQuery, + $DecodeUA, $DecodePunycode ) = ( - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); use vars qw/ $DetailedReportsOnNewWindows $FirstDayOfWeek $KeyWordsNotSensitive $SaveDatabaseFilesWithPermissionsForEveryone $WarningMessages $ShowLinksOnUrl $UseFramesWhenCGI - $ShowMenu $ShowSummary $ShowMonthStats $ShowDaysOfMonthStats $ShowDaysOfWeekStats + $ShowMenu $ShowSummary $ShowMonthStats $ShowDaysOfMonthStats $ShowRatiosStats $ShowDaysOfWeekStats $ShowHoursStats $ShowDomainsStats $ShowHostsStats $ShowRobotsStats $ShowSessionsStats $ShowPagesStats $ShowFileTypesStats $ShowDownloadsStats $ShowOSStats $ShowBrowsersStats $ShowOriginStats @@ -262,42 +227,28 @@ $AddDataArrayMonthStats $AddDataArrayShowDaysOfMonthStats $AddDataArrayShowDaysOfWeekStats $AddDataArrayShowHoursStats /; ( - $DetailedReportsOnNewWindows, - $FirstDayOfWeek, - $KeyWordsNotSensitive, - $SaveDatabaseFilesWithPermissionsForEveryone, - $WarningMessages, - $ShowLinksOnUrl, - $UseFramesWhenCGI, - $ShowMenu, - $ShowSummary, - $ShowMonthStats, - $ShowDaysOfMonthStats, - $ShowDaysOfWeekStats, - $ShowHoursStats, - $ShowDomainsStats, - $ShowHostsStats, - $ShowRobotsStats, - $ShowSessionsStats, - $ShowPagesStats, - $ShowFileTypesStats, - $ShowDownloadsStats, - $ShowOSStats, - $ShowBrowsersStats, - $ShowOriginStats, - $ShowKeyphrasesStats, - $ShowKeywordsStats, - $ShowMiscStats, - $ShowHTTPErrorsStats, - $ShowHTTPErrorsPageDetail, - $AddDataArrayMonthStats, - $AddDataArrayShowDaysOfMonthStats, - $AddDataArrayShowDaysOfWeekStats, + $DetailedReportsOnNewWindows, $FirstDayOfWeek, + $KeyWordsNotSensitive, $SaveDatabaseFilesWithPermissionsForEveryone, + $WarningMessages, $ShowLinksOnUrl, + $UseFramesWhenCGI, $ShowMenu, + $ShowSummary, $ShowMonthStats, + $ShowDaysOfMonthStats, $ShowRatiosStats, + $ShowDaysOfWeekStats, $ShowHoursStats, + $ShowDomainsStats, $ShowHostsStats, + $ShowRobotsStats, $ShowSessionsStats, + $ShowPagesStats, $ShowFileTypesStats, + $ShowDownloadsStats, $ShowOSStats, + $ShowBrowsersStats, $ShowOriginStats, + $ShowKeyphrasesStats, $ShowKeywordsStats, + $ShowMiscStats, $ShowHTTPErrorsStats, + $ShowHTTPErrorsPageDetail, $AddDataArrayMonthStats, + $AddDataArrayShowDaysOfMonthStats, $AddDataArrayShowDaysOfWeekStats, $AddDataArrayShowHoursStats ) = ( 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1 ); use vars qw/ $AllowFullYearView @@ -313,16 +264,17 @@ ) = ( 2, 2, 0, 2, 2, 2, 2, 2, 2 ); use vars qw/ - $DirLock $DirCgi $DirConfig $DirData $DirIcons $DirLang $AWScript $ArchiveFileName + $DirLock $DirCgi $DirConfig $DirData $DirIcons $DirImgs $FlagsType $DirLang $AWScript $ArchiveFileName $AllowAccessFromWebToFollowingIPAddresses $HTMLHeadSection $HTMLEndSection $LinksToWhoIs $LinksToIPWhoIs - $LogFile $LogType $LogFormat $LogSeparator $Logo $LogoLink $StyleSheet $WrapperScript $SiteDomain - $UseHTTPSLinkForUrl $URLQuerySeparators $URLWithAnchor $ErrorMessages $ShowFlagLinks + $LogFile $LogType $LogFormat $LogSeparator $Logo $LogoLink $StyleSheet $StyleSheetMode $WrapperScript + $SiteDomain $UseHTTPSLinkForUrl $URLQuerySeparators $URLWithAnchor $ErrorMessages $ShowFlagLinks $AddLinkToExternalCGIWrapper $LogFormatJsonMap /; ( $DirLock, $DirCgi, $DirConfig, $DirData, - $DirIcons, $DirLang, + $DirIcons, $DirImgs, + $FlagsType, $DirLang, $AWScript, $ArchiveFileName, $AllowAccessFromWebToFollowingIPAddresses, $HTMLHeadSection, $HTMLEndSection, $LinksToWhoIs, @@ -330,14 +282,14 @@ $LogType, $LogFormat, $LogSeparator, $Logo, $LogoLink, $StyleSheet, - $WrapperScript, $SiteDomain, - $UseHTTPSLinkForUrl, $URLQuerySeparators, - $URLWithAnchor, $ErrorMessages, - $ShowFlagLinks, $AddLinkToExternalCGIWrapper, - $LogFormatJsonMap + $StyleSheetMode, $WrapperScript, + $SiteDomain, $UseHTTPSLinkForUrl, + $URLQuerySeparators, $URLWithAnchor, + $ErrorMessages, $ShowFlagLinks, + $AddLinkToExternalCGIWrapper, $LogFormatJsonMap ) = ( - '', '', '', '', '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '' ); use vars qw/ @@ -357,8 +309,8 @@ $color_v ) = ( - '', '', '', '', '', '', '', '', '', '', '', '', - '', '', '', '', '', '', '', '', '', '' + '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', + '', '', '', '', '', '' ); # ---------- Init arrays -------- @@ -548,7 +500,7 @@ %_session %_browser_h %_browser_p %_filesize %_requesttime - %_domener_p %_domener_h %_domener_k %_errors_h %_errors_k + %_domener_u %_domener_p %_domener_h %_domener_k %_errors_h %_errors_k %_filetypes_h %_filetypes_k %_filetypes_gz_in %_filetypes_gz_out %_host_p %_host_h %_host_k %_host_l %_host_s %_host_u %_waithost_e %_waithost_l %_waithost_s %_waithost_u @@ -604,7 +556,7 @@ 'Pages-URL', 'Hours', 'Browsers', - '', + 'Ratios', 'Referers', 'Never updated (See \'Build/Update\' on awstats_setup.html page)', 'Visitors domains/countries', @@ -769,7 +721,9 @@ 's', 'Request average frequency [/s]', 'Request size', - 'Request time' + 'Request time', + 'New major release available for AWStats', + 'New minor release available for AWStats' ); #------------------------------------------------------------------------------ @@ -818,169 +772,89 @@ sub http_head { #------------------------------------------------------------------------------ # Function: Write on output header of HTML page # Parameters: None -# Input: %HTMLOutput $PluginMode $Expires $Lang $StyleSheet $HTMLHeadSection $PageCode $PageDir +# Input: %HTMLOutput $PluginMode $Expires $Lang $StyleSheet $StyleSheetMode $HTMLHeadSection $PageCode $PageDir # Output: $HeaderHTMLSent=1 # Return: None #------------------------------------------------------------------------------ sub html_head { - my $dir = $PageDir ? 'right' : 'left'; + if ($NOHTML) { return; } + if ( scalar keys %HTMLOutput || $PluginMode ) { - my $periodtitle = " ($YearRequired"; - $periodtitle .= ( $MonthRequired ne 'all' ? "-$MonthRequired" : "" ); - $periodtitle .= ( $DayRequired ne '' ? "-$DayRequired" : "" ); - $periodtitle .= ( $HourRequired ne '' ? "-$HourRequired" : "" ); - $periodtitle .= ")"; + + my $periodtitle = " ($YearRequired" + . ( $MonthRequired ne 'all' ? "-$MonthRequired" : "" ) + . ( $DayRequired ne '' ? "-$DayRequired" : "" ) + . ( $HourRequired ne '' ? "-$HourRequired" : "" ) + . ")"; # Write head section if ( $BuildReportFormat eq 'xhtml' || $BuildReportFormat eq 'xml' ) { - if ($PageCode) { - print "\n"; - } - else { print "\n"; } - if ( $FrameName ne 'index' ) { - print -"\n"; - } - else { - print -"\n"; - } - print -"\n"; - } - else { - if ( $FrameName ne 'index' ) { - print -"\n"; - } - else { - print -"\n"; - } - print '\n"; - } - print "\n"; - my $endtag = '>'; - if ( $BuildReportFormat eq 'xhtml' || $BuildReportFormat eq 'xml' ) { - $endtag = ' />'; + print (($PageCode) ? '' : ''); + + print (( $FrameName ne 'index' ) + ? '' + : '' + ); + + print ''; + + } else { + + print (( $FrameName ne 'index' ) + ? '' + : '' + ); + + print ''; + } + + print "\n" . ''; + + my $endtag = ( $BuildReportFormat eq 'xhtml' || $BuildReportFormat eq 'xml' ) ? ' />' : '>'; # Affiche tag meta generator - print -"\n" - : "' + : '$Message[7] $SiteDomain$periodtitle" - . ( $k[0] ? " - " . $k[0] : "" ) - . "\n"; - if ( $FrameName ne 'index' ) { + + %HTMLOutput; # This is to have a unique title and description page + + print '\n"; - } + print (( $MetaRobot && $FrameName ne 'mainleft' ) ? '\n"; + print '' . $Message[7] . ' ' . $SiteDomain . $periodtitle . ( $k[0] ? ' - ' . $k[0] : '' ) . ''; + + if ( $FrameName ne 'index' ) { - if ( !$StyleSheet ) { - print -"body { font: 11px verdana, arial, helvetica, sans-serif; background-color: #$color_Background; margin-top: 0; margin-bottom: 0; }\n"; - print ".aws_bodyl { }\n"; - print -".aws_border { border-collapse: collapse; background-color: #$color_TableBG; padding: 1px 1px " - . ( $BuildReportFormat eq 'xhtml' - || $BuildReportFormat eq 'xml' ? "2px" : "1px" ) - . " 1px; margin-top: 0px; margin-bottom: 0px; }\n"; - print -".aws_title { font: 13px verdana, arial, helvetica, sans-serif; font-weight: bold; background-color: #$color_TableBGTitle; text-align: center; margin-top: 0; margin-bottom: 0; padding: 1px 1px 1px 1px; color: #$color_TableTitle; }\n"; - print -".aws_blank { font: 13px verdana, arial, helvetica, sans-serif; background-color: #$color_Background; text-align: center; margin-bottom: 0; padding: 1px 1px 1px 1px; }\n"; - print <' : ''); - print "\n"; + print renderJavascript(); } # les scripts necessaires pour trier avec Tablekit @@ -988,91 +862,461 @@ sub html_head { # print " +EOF + + # # Call to plugins' function AddHTMLJavascript + # foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLJavascript'} } ) + # { + # my $function = "AddHTMLJavascript_$pluginname"; + # $js .= &$function(); + # } + + return $js; +} + +#------------------------------------------------------------------------------ +# Function: Return end of HTML page # Parameters: 0|1 (0=no list plugins,1=list plugins) # Input: %HTMLOutput $HTMLEndSection $FrameName $BuildReportFormat -# Output: None -# Return: None +# Output: - +# Return: string #------------------------------------------------------------------------------ sub html_end { my $listplugins = shift || 0; - if ( scalar keys %HTMLOutput ) { + my $html = ''; + if ( scalar keys %HTMLOutput ) + { # Call to plugins' function AddHTMLBodyFooter foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLBodyFooter'} } ) { - - # my $function="AddHTMLBodyFooter_$pluginname()"; - # eval("$function"); my $function = "AddHTMLBodyFooter_$pluginname"; &$function(); } - if ( $FrameName ne 'index' && $FrameName ne 'mainleft' ) { - print "$Center

    \n"; - print -""; - print -"Advanced Web Statistics $VERSION - "; - print $Message[169] . " $PROG"; - if ($listplugins) { + if ( $FrameName ne 'index' && $FrameName ne 'mainleft' ) + { + $html .= '
    ' + . $Message[169] . ' Advanced Web Statistics ' . $VERSION . ''; + + use ExtUtils::Installed; + my ($inst) = ExtUtils::Installed->new(); + my (@installed_modules) = $inst->modules(); + eval{ $inst->validate('JSON::Parse') }; + if(!$@) { + use LWP::Simple; + use JSON::Parse 'parse_json'; + my $sourceforge = parse_json(get('https://sourceforge.net/projects/awstats/best_release.json')); + $sourceforge->{'release'}->{'filename'} =~ /(\d\.\d)/; + my $latestVersion = $1; + + (my $latestMajor, my $latestMinor) = split(/\./, $latestVersion); + (my $major, my $minor) = split(/\./, $RELEASE); + + if(int($latestMajor) > int($major)){ + $html .= ' ' . $Message[189]. ' : ' . $latestVersion . ' !'; + } elsif (int($latestMajor) == int($major) && int($latestMinor) > int($minor)) { + $html .= ' ' . $Message[190] . ' : ' . $latestVersion . ' !'; + } + } + + if ($listplugins) + { + $html .= '
    '; my $atleastoneplugin = 0; - foreach my $pluginname ( keys %{ $PluginsLoaded{'init'} } ) { - if ( !$atleastoneplugin ) { + foreach my $pluginname ( keys %{ $PluginsLoaded{'init'} } ) + { + if ( !$atleastoneplugin ) + { $atleastoneplugin = 1; - print " ($Message[170]: "; + $html .= ' (' . $Message[170] . ': '; + } else + { + $html .= ', '; } - else { print ", "; } - print "$pluginname"; + + $html .= $pluginname; } - if ($atleastoneplugin) { print ")"; } + + if ($atleastoneplugin) { $html .= ')'; } } - print "
    \n"; - if ($HTMLEndSection) { print "
    \n$HTMLEndSection\n"; } + + $html .= '
    '; + + if ($HTMLEndSection) { $html .= "$HTMLEndSection\n"; } } - print "\n"; + if ( $FrameName ne 'index' ) { - if ( $FrameName ne 'mainleft' && $BuildReportFormat eq 'html' ) { - print "
    \n"; - } - print "\n"; + $html .= ''; } - print "\n"; + + return $html . ''; # print "\n"; } } #------------------------------------------------------------------------------ -# Function: Print on stdout tab header of a chart +# Function: Return tab header of a chart # Parameters: $title $tooltipnb [$width percentage of chart title] -# Input: None -# Output: None -# Return: None +# Input: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub tab_head { - my $title = shift; - my $tooltipnb = shift; - my $width = shift || 70; - my $class = shift; + my $title = shift; + my $subtitle = shift || ''; + my $anchor = shift || ''; + my $tooltip = shift || 0; + my $msg = shift || 0; + + my $head = '
    ' + . '
    ' + . $title + . (($tooltip) ? '?' . $tooltip . '' : '') + . (($subtitle ne '') ? ' ' . $subtitle . '' : ''); # Call to plugins' function TabHeadHTML my $extra_head_html = ''; @@ -1081,35 +1325,25 @@ sub tab_head { $extra_head_html .= &$function($title); } - if ( $width == 70 && $QueryString =~ /buildpdf/i ) { - print -"\n"; - } - else { - print -"
    \n"; - } + $head .= ' ' . $extra_head_html; - if ($tooltipnb) { - print ""; - } - else { - print ""; - } - print "\n"; - print "'; +} + +#------------------------------------------------------------------------------ +# Function: Return links to the standalone reports +# Parameters: $NewLinkParams, $NewLinkTarget +# Input: string $standalonePage, string $title +# Output: - +# Return: string +#------------------------------------------------------------------------------ +sub HTMLLinkToStandalonePage{ + my $NewLinkParams = shift; + my $NewLinkTarget = shift; + my $standalonePage = shift; + my $title = shift || ''; + + my $link = XMLEncode($AWScript . ${NewLinkParams}); + + return '' . $title . '' +} + #------------------------------------------------------------------------------ # Function: Return " alt=string title=string" # Parameters: string @@ -8939,11 +9254,7 @@ sub PrintCLIHelp{ #------------------------------------------------------------------------------ sub Tooltip { my $ttnb = shift; - return ( - $TOOLTIPON - ? " onmouseover=\"ShowTip($ttnb);\" onmouseout=\"HideTip($ttnb);\"" - : "" - ); + return ''; } #------------------------------------------------------------------------------ @@ -8968,16 +9279,16 @@ sub HTMLShowFormFilter { if ($NewLinkParams) { $NewLinkParams = "${NewLinkParams}&"; } print "\n\n"; + . "\">\n"; print -"
    $title " - . $extra_head_html . "
    $title " - . $extra_head_html . " 
    \n"; - if ( $width == 70 && $QueryString =~ /buildpdf/i ) { - print -"\n"; - } - else { - print -"
    \n"; + if ($msg) { + $head .= '
    ' . $msg . '
    '; } + + $head .= ''; + +# print "
    \n"; +# if ( $width == 70 && $QueryString =~ /buildpdf/i ) { +# print +# "\n"; +# } +# else { +# print +# "
    \n"; +# } + + return $head; } #------------------------------------------------------------------------------ @@ -1121,12 +1355,7 @@ sub tab_head { #------------------------------------------------------------------------------ sub tab_end { my $string = shift; - print "
    "; - if ($string) { - print -"$string
    \n"; - } - print "
    \n\n"; + return (($string) ? "
    $string
    " : '') . ''; } #------------------------------------------------------------------------------ @@ -1169,7 +1398,6 @@ sub error { if ( !$ErrorMessages && $message =~ /^Format error$/i ) { # Files seems to have bad format - if ( scalar keys %HTMLOutput ) { print "

    \n"; } if ( $message !~ $LogSeparator ) { # Bad LogSeparator parameter @@ -1252,7 +1480,7 @@ sub error { } print "And this is an example of records AWStats found in your log file (the record number $NbOfLinesForCorruptedLog in your log):\n"; - print( scalar keys %HTMLOutput ? "
    $tagfontgrey" : "" ); + print( scalar keys %HTMLOutput ? "$tagfontgrey" : "" ); print "$secondmessage"; print( scalar keys %HTMLOutput @@ -1267,9 +1495,9 @@ sub error { #print "\n"; } else { - print( scalar keys %HTMLOutput ? "
    $tagfontred\n" : "" ); + print( scalar keys %HTMLOutput ? "$tagfontred\n" : "" ); print( $ErrorMessages? "$ErrorMessages" : "Error: $message" ); - print( scalar keys %HTMLOutput ? "\n
    " : "" ); + print( scalar keys %HTMLOutput ? "\n" : "" ); print "\n"; } if ( !$ErrorMessages && !$donotshowsetupinfo ) { @@ -1547,6 +1775,7 @@ sub DayOfWeek { sub DateIsValid { my ( $day, $month, $year ) = @_; if ($Debug) { debug( "DateIsValid for $day $month $year", 4 ); } + if($month < 1 || $month > 12){ return 0; } if ( $day < 1 ) { return 0; } if ( $day > 31 ) { return 0; } if ( $month == 4 || $month == 6 || $month == 9 || $month == 11 ) { @@ -1998,6 +2227,22 @@ sub Parse_Config { if ( $QueryString !~ /diricons=([^\s&]+)/i ) { $DirIcons = $value; } next; } + + if ( $param =~ /^DirImgs/ ) { + if ( $QueryString !~ /dirimgs=([^\s&]+)/i ) { $DirImgs = $value; } + next; + } + + if ( $param =~ /^FlagsType/ ) { + $FlagsType = ( $value eq 'utf8' ) ? 'utf8' : 'png'; + next; + } + + if ( $param =~ /^ShowMap/ ) { + $ShowMap = ( $value eq '1' ) ? 1 : 0; + next; + } + if ( $param =~ /^SiteDomain/ ) { # No regex test as SiteDomain is always exact value @@ -2813,54 +3058,44 @@ sub Check_Config { } # Optional appearance setup section - if ( $MaxRowsInHTMLOutput !~ /^\d+/ || $MaxRowsInHTMLOutput < 1 ) { - $MaxRowsInHTMLOutput = 1000; - } - if ( $ShowMenu !~ /[01]/ ) { $ShowMenu = 1; } - if ( $ShowSummary !~ /[01UVPHB]/ ) { $ShowSummary = 'UVPHB'; } - if ( $ShowMonthStats !~ /[01UVPHB]/ ) { $ShowMonthStats = 'UVPHB'; } - if ( $ShowDaysOfMonthStats !~ /[01VPHB]/ ) { - $ShowDaysOfMonthStats = 'VPHB'; - } - if ( $ShowDaysOfWeekStats !~ /[01PHBL]/ ) { $ShowDaysOfWeekStats = 'PHBL'; } - if ( $ShowHoursStats !~ /[01PHBL]/ ) { $ShowHoursStats = 'PHBL'; } - if ( $ShowDomainsStats !~ /[01PHB]/ ) { $ShowDomainsStats = 'PHB'; } - if ( $ShowHostsStats !~ /[01PHBL]/ ) { $ShowHostsStats = 'PHBL'; } - - if ( $ShowAuthenticatedUsers !~ /[01PHBL]/ ) { - $ShowAuthenticatedUsers = 0; - } - if ( $ShowRobotsStats !~ /[01HBL]/ ) { $ShowRobotsStats = 'HBL'; } - if ( $ShowWormsStats !~ /[01HBL]/ ) { $ShowWormsStats = 'HBL'; } - if ( $ShowEMailSenders !~ /[01HBML]/ ) { $ShowEMailSenders = 0; } - if ( $ShowEMailReceivers !~ /[01HBML]/ ) { $ShowEMailReceivers = 0; } - if ( $ShowSessionsStats !~ /[01]/ ) { $ShowSessionsStats = 1; } - if ( $ShowPagesStats !~ /[01PBEX]/i ) { $ShowPagesStats = 'PBEX'; } - if ( $ShowFileTypesStats !~ /[01HBC]/ ) { $ShowFileTypesStats = 'HB'; } - if ( $ShowDownloadsStats !~ /[01HB]/ ) { $ShowDownloadsStats = 'HB';} - if ( $ShowFileSizesStats !~ /[01]/ ) { $ShowFileSizesStats = 1; } - if ( $ShowOSStats !~ /[01]/ ) { $ShowOSStats = 1; } - if ( $ShowBrowsersStats !~ /[01]/ ) { $ShowBrowsersStats = 1; } - if ( $ShowScreenSizeStats !~ /[01]/ ) { $ShowScreenSizeStats = 0; } - if ( $ShowOriginStats !~ /[01PH]/ ) { $ShowOriginStats = 'PH'; } - if ( $ShowKeyphrasesStats !~ /[01]/ ) { $ShowKeyphrasesStats = 1; } - if ( $ShowKeywordsStats !~ /[01]/ ) { $ShowKeywordsStats = 1; } - if ( $ShowClusterStats !~ /[01PHB]/ ) { $ShowClusterStats = 0; } - if ( $ShowMiscStats !~ /[01anjdfrqwp]/ ) { $ShowMiscStats = 'a'; } - if ( $ShowHTTPErrorsStats !~ /[01]/ ) { $ShowHTTPErrorsStats = 1; } - if ( $ShowHTTPErrorsPageDetail !~ /[RH]/ ) { $ShowHTTPErrorsPageDetail = 'R'; } - if ( $ShowSMTPErrorsStats !~ /[01]/ ) { $ShowSMTPErrorsStats = 0; } - if ( $AddDataArrayMonthStats !~ /[01]/ ) { $AddDataArrayMonthStats = 1; } - - if ( $AddDataArrayShowDaysOfMonthStats !~ /[01]/ ) { - $AddDataArrayShowDaysOfMonthStats = 1; - } - if ( $AddDataArrayShowDaysOfWeekStats !~ /[01]/ ) { - $AddDataArrayShowDaysOfWeekStats = 1; - } - if ( $AddDataArrayShowHoursStats !~ /[01]/ ) { - $AddDataArrayShowHoursStats = 1; - } + if ( $MaxRowsInHTMLOutput !~ /^\d+/ || $MaxRowsInHTMLOutput < 1 ) { $MaxRowsInHTMLOutput = 1000; } + if ( $ShowMenu !~ /[01]/ ) { $ShowMenu = 1; } + if ( $ShowSummary !~ /[01UVPHB]/ ) { $ShowSummary = 'UVPHB'; } + if ( $ShowMonthStats !~ /[01UVPHB]/ ) { $ShowMonthStats = 'UVPHB'; } + if ( $ShowDaysOfMonthStats !~ /[01VPHB]/ ) { $ShowDaysOfMonthStats = 'VPHB'; } + if ( $ShowRatiosStats !~ /[01UVPH]/ ) { $ShowRatiosStats = 'UVPH'; } + if ( $ShowDaysOfWeekStats !~ /[01PHBL]/ ) { $ShowDaysOfWeekStats = 'PHBL'; } + if ( $ShowHoursStats !~ /[01PHBL]/ ) { $ShowHoursStats = 'PHBL'; } + if ( $ShowDomainsStats !~ /[01PHB]/ ) { $ShowDomainsStats = 'PHB'; } + if ( $ShowHostsStats !~ /[01PHBL]/ ) { $ShowHostsStats = 'PHBL'; } + if ( $ShowAuthenticatedUsers !~ /[01PHBL]/ ) { $ShowAuthenticatedUsers = 0; } + if ( $ShowRobotsStats !~ /[01HBL]/ ) { $ShowRobotsStats = 'HBL'; } + if ( $ShowWormsStats !~ /[01HBL]/ ) { $ShowWormsStats = 'HBL'; } + if ( $ShowEMailSenders !~ /[01HBML]/ ) { $ShowEMailSenders = 0; } + if ( $ShowEMailReceivers !~ /[01HBML]/ ) { $ShowEMailReceivers = 0; } + if ( $ShowSessionsStats !~ /[01]/ ) { $ShowSessionsStats = 1; } + if ( $ShowPagesStats !~ /[01PBEX]/i ) { $ShowPagesStats = 'PBEX'; } + if ( $ShowFileTypesStats !~ /[01HBC]/ ) { $ShowFileTypesStats = 'HB'; } + if ( $ShowDownloadsStats !~ /[01HB]/ ) { $ShowDownloadsStats = 'HB';} + if ( $ShowFileSizesStats !~ /[01]/ ) { $ShowFileSizesStats = 1; } + if ( $ShowOSStats !~ /[01]/ ) { $ShowOSStats = 1; } + if ( $ShowBrowsersStats !~ /[01]/ ) { $ShowBrowsersStats = 1; } + if ( $ShowScreenSizeStats !~ /[01]/ ) { $ShowScreenSizeStats = 0; } + if ( $ShowOriginStats !~ /[01PH]/ ) { $ShowOriginStats = 'PH'; } + if ( $ShowKeyphrasesStats !~ /[01]/ ) { $ShowKeyphrasesStats = 1; } + if ( $ShowKeywordsStats !~ /[01]/ ) { $ShowKeywordsStats = 1; } + if ( $ShowClusterStats !~ /[01PHB]/ ) { $ShowClusterStats = 0; } + if ( $ShowMiscStats !~ /[01anjdfrqwp]/ ) { $ShowMiscStats = 'a'; } + if ( $ShowHTTPErrorsStats !~ /[01]/ ) { $ShowHTTPErrorsStats = 1; } + if ( $ShowHTTPErrorsPageDetail !~ /[RH]/ ) { $ShowHTTPErrorsPageDetail = 'R'; } + if ( $ShowSMTPErrorsStats !~ /[01]/ ) { $ShowSMTPErrorsStats = 0; } + if ( $AddDataArrayMonthStats !~ /[01]/ ) { $AddDataArrayMonthStats = 1; } + if ( $AddDataArrayShowDaysOfMonthStats !~ /[01]/ ) { $AddDataArrayShowDaysOfMonthStats = 1; } + if ( $AddDataArrayShowDaysOfWeekStats !~ /[01]/ ) { $AddDataArrayShowDaysOfWeekStats = 1; } + if ( $AddDataArrayShowHoursStats !~ /[01]/ ) { $AddDataArrayShowHoursStats = 1; } + if ( $FlagsType !~ /image|utf8/ ) { $FlagsType = 'image'; } + if ( $ShowMap !~ /[01]/ ) { $ShowMap = 1; } + my @maxnboflist = ( 'Domain', 'HostsShown', 'LoginShown', 'RobotShown', @@ -2908,7 +3143,7 @@ sub Check_Config { $Logo ||= 'awstats_logo6.png'; $LogoLink ||= 'https://www.awstats.org'; if ( $BarWidth !~ /^\d+/ || $BarWidth < 1 ) { $BarWidth = 260; } - if ( $BarHeight !~ /^\d+/ || $BarHeight < 1 ) { $BarHeight = 90; } + $color_Background =~ s/#//g; if ( $color_Background !~ /^[0-9|A-H]+$/i ) { $color_Background = 'FFFFFF'; @@ -2973,6 +3208,7 @@ sub Check_Config { if ( $ShowSummary eq '1' ) { $ShowSummary = 'UVPHB'; } if ( $ShowMonthStats eq '1' ) { $ShowMonthStats = 'UVPHB'; } if ( $ShowDaysOfMonthStats eq '1' ) { $ShowDaysOfMonthStats = 'VPHB'; } + if ( $ShowRatiosStats eq '1' ) { $ShowRatiosStats = 'UVPH'; } if ( $ShowDaysOfWeekStats eq '1' ) { $ShowDaysOfWeekStats = 'PHBL'; } if ( $ShowHoursStats eq '1' ) { $ShowHoursStats = 'PHBL'; } if ( $ShowDomainsStats eq '1' ) { $ShowDomainsStats = 'PHB'; } @@ -8147,6 +8383,7 @@ sub Sanitize { else { $stringtoclean =~ s/[^\w\d\-\\\/\.:\s]//g; } + return $stringtoclean; } @@ -8169,6 +8406,9 @@ sub Sanitize { sub CleanXSS { my $stringtoclean = shift; + # Replace single quotes by typographic quotes to avoid problems + $stringtoclean =~ s/'/’/g; + # To avoid html tags and javascript $stringtoclean =~ s//>/g; @@ -8300,7 +8540,7 @@ sub Show_Flag_Links { ); print " \n"; } @@ -8320,19 +8560,19 @@ sub Format_Bytes { # Do not use exp/log function to calculate 1024power, function make segfault on some unix/perl versions if ( $bytes >= ( $fudge << 40 ) ) { - return sprintf( "%.2f", $bytes / 1099511627776 ) . " $Message[180]"; + return '' . sprintf( "%.2f", $bytes / 1099511627776 ) . ' ' . $Message[180] . ''; } if ( $bytes >= ( $fudge << 30 ) ) { - return sprintf( "%.2f", $bytes / 1073741824 ) . " $Message[110]"; + return '' . sprintf( "%.2f", $bytes / 1073741824 ) . ' ' . $Message[110] . ''; } if ( $bytes >= ( $fudge << 20 ) ) { - return sprintf( "%.2f", $bytes / 1048576 ) . " $Message[109]"; + return '' . sprintf( "%.2f", $bytes / 1048576 ) . ' ' . $Message[109] . ''; } if ( $bytes >= ( $fudge << 10 ) ) { - return sprintf( "%.2f", $bytes / 1024 ) . " $Message[108]"; + return '' . sprintf( "%.2f", $bytes / 1024 ) . ' ' . $Message[108] . ''; } if ( $bytes < 0 ) { $bytes = "?"; } - return int($bytes) . ( int($bytes) ? " $Message[119]" : "" ); + return '' . int($bytes) . ( int($bytes) ? '  ' . $Message[119] : '' ) . ''; } #------------------------------------------------------------------------------ @@ -8354,6 +8594,81 @@ sub Format_Number { return $number; } +#------------------------------------------------------------------------------ +# Function: Return Horizontal Bar +# Parameters: type, width, alt +# Input: None +# Output: None +# Return: string +#------------------------------------------------------------------------------ +sub HtmlBarH { + my $type = shift || ''; + my $width = shift || 0; + my $alt = shift || ''; + + return '
    '; +} + +#------------------------------------------------------------------------------ +# Function: Return Vertical Bar +# Parameters: string $type, int $data, string $formattedData, int $max, string $title +# Input: None +# Output: None +# Return: string +#------------------------------------------------------------------------------ +sub HtmlBar { + my $type = shift; + my $data = shift; + my $formattedData = shift; + my $max = shift; + my $title = shift; + my $width = shift || 4; + my $height = ($max > 0) ? ( $data || 0 ) / $max : 0; + + return '
    '; +} + +#------------------------------------------------------------------------------ +# Function: Return data cell with percentage bar +# Parameters: string $type = 'u' | 'v' | 'p' | 'h' | 'b', +# int $data, string | int $formattedData, int $max, string $mixedColor +# Output: - +# Return: string +#------------------------------------------------------------------------------ +sub HTMLDataCellWithBar{ + my $type = shift; + my $data = shift; + my $formattedData = shift; + my $max = shift; + my $mixedColor = shift || ''; + my $percentage = ($max > 0) ? ($data || 0) / $max : 0; + + return '
    ' + . $formattedData . '
    \n"; - print "\n"; +"
    $Message[79] :
    \n"; + print "\n"; print -"\n"; +"\n"; print ""; - print "\n"; + print "\n"; print -"\n"; +"\n"; print ""; print "
    $Message[79] :   $Message[153] :$Message[153] :"; print "  
    \n"; print "\n"; - print "
    \n"; - print "\n"; } } @@ -9060,99 +9369,74 @@ sub HTMLShowClusterInfo { # Call to plugins' function ShowInfoCluster foreach my $pluginname ( sort keys %{ $PluginsLoaded{'ShowInfoCluster'} } ) { - - # my $function="ShowInfoCluster_$pluginname('$user')"; - # eval("$function"); my $function = "ShowInfoCluster_$pluginname"; &$function($cluster); } } #------------------------------------------------------------------------------ -# Function: Write other host info (with help of plugin) +# Function: Return other host info (with help of plugin) # Parameters: $host # Input: $LinksToWhoIs $LinksToWhoIsIp # Output: None -# Return: None +# Return: string #------------------------------------------------------------------------------ sub HTMLShowHostInfo { my $host = shift; + my $cellType = ($host eq '__title__') ? 'h' : 'd'; + my $cells = ''; # Call to plugins' function ShowInfoHost - foreach my $pluginname ( sort keys %{ $PluginsLoaded{'ShowInfoHost'} } ) { - - # my $function="ShowInfoHost_$pluginname('$host')"; - # eval("$function"); + foreach my $pluginname ( sort keys %{ $PluginsLoaded{'ShowInfoHost'} } ) + { my $function = "ShowInfoHost_$pluginname"; - &$function($host); + $cells .= '' . (($host eq '') ? '' : &$function($host)) . ''; } + + return $cells; } #------------------------------------------------------------------------------ -# Function: Write other url info (with help of plugin) +# Function: Return other url info (with help of plugin) # Parameters: $url # Input: %Aliases $MaxLengthOfShownURL $ShowLinksOnUrl $SiteDomain $UseHTTPSLinkForUrl -# Output: URL link -# Return: None +# Output: - +# Return: string (url link) #------------------------------------------------------------------------------ sub HTMLShowURLInfo { my $url = shift; - my $nompage = CleanXSS($url); + my $newkey = CleanXSS($url); + my $nompage = ( length($newkey) > $MaxLengthOfShownURL ) ? substr( $newkey, 0, $MaxLengthOfShownURL ) . "..." : $newkey; + my $plugins = ''; # Call to plugins' function ShowInfoURL - foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowInfoURL'} } ) { - - # my $function="ShowInfoURL_$pluginname('$url')"; - # eval("$function"); + foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowInfoURL'} } ) + { + # my $function="ShowInfoURL_$pluginname('$url')"; + # eval("$function"); my $function = "ShowInfoURL_$pluginname"; - &$function($url); - } - - if ( length($nompage) > $MaxLengthOfShownURL ) { - $nompage = substr( $nompage, 0, $MaxLengthOfShownURL ) . "..."; + $plugins .= &$function($url); } - if ($ShowLinksOnUrl) { - my $newkey = CleanXSS($url); - if ( $LogType eq 'W' || $LogType eq 'S' ) { # Web or streaming log file - if ( $newkey =~ /^http(s|):/i ) - { # URL seems to be extracted from a proxy log file - print "" - . XMLEncode($nompage) . ""; - } - elsif ( $newkey =~ /^\// ) - { # URL seems to be an url extracted from a web or wap server log file - $newkey =~ s/^\/$SiteDomain//i; - # Define urlprot - my $urlprot = 'http'; - if ( $UseHTTPSLinkForUrl && $newkey =~ /^$UseHTTPSLinkForUrl/ ) - { - $urlprot = 'https'; - } - print "" - . XMLEncode($nompage) . ""; - } - else { - print XMLEncode($nompage); - } - } - elsif ( $LogType eq 'F' ) { # Ftp log file - print XMLEncode($nompage); + if ($ShowLinksOnUrl && ($LogType eq 'W' || $LogType eq 'S')) + { # Web or streaming log file + if ( $newkey =~ /^http(s|):/i ) + { # URL seems to be extracted from a proxy log file + return $plugins . ' ' . XMLEncode($nompage) . ''; } - elsif ( $LogType eq 'M' ) { # Smtp log file - print XMLEncode($nompage); - } - else { # Other type log file - print XMLEncode($nompage); + + if ( $newkey =~ /^\// ) + { # URL seems to be an url extracted from a web or wap server log file + $newkey =~ s/^\/$SiteDomain//i; + # Define urlprot + my $urlprot = ( $UseHTTPSLinkForUrl && $newkey =~ /^$UseHTTPSLinkForUrl/ ) ? 'https' : 'http'; + + return $plugins . ' ' . XMLEncode($nompage) . ''; } } - else { - print XMLEncode($nompage); - } + + # "Hidden" by config or SMTP/FTP/Othertype log file + return $plugins . ' ' . XMLEncode($nompage); } #------------------------------------------------------------------------------ @@ -9741,22 +10025,22 @@ sub HTMLShowMenuCateg { # At least one entry in menu for this category, we can show category and entries my $WIDTHMENU1 = ( $FrameName eq 'mainleft' ? $FRAMEWIDTH : 150 ); - print "" + print "" . ( $categicon ? " " : "" ) . "$categtext:\n"; - print( $frame? "\n" : "" ); + print( $frame? "\n" : "" ); foreach my $key ( sort { $menu->{$a} <=> $menu->{$b} } keys %$menu ) { if ( $menu->{$key} == 0 ) { next; } if ( $menulink->{$key} == 1 ) { - print( $frame? "" : "" ); + print( $frame? "" : "" ); print "$menutext->{$key}"; print( $frame? "\n" : "   " ); } if ( $menulink->{$key} == 2 ) { print( $frame - ? "   \"...\" " + ? "   \"...\" " : "" ); print " 
    \n"; - my $title; - if ( $HTMLOutput{'allemails'} || $HTMLOutput{'lastemails'} ) { - $title = "$Message[131]"; - } - else { - $title = -"$Message[131] ($Message[77] $MaxNbOf{'EMailsShown'})   -   $Message[80]"; - if ( $ShowEMailSenders =~ /L/i ) { - $title .= "   -   $Message[9]"; + # print " "; + my $title = $Message[131]; + my $subtitle = ''; + my @links = (); + + if ( !($HTMLOutput{'allemails'} || $HTMLOutput{'lastemails'}) ) + { + $subtitle = '(' . $Message[77] . ' ' . $MaxNbOf{'EMailsShown'} . ')'; + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'allemails', $Message[80])); + + if ( $ShowEMailSenders =~ /L/i ) + { + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'lastemails', $Message[9])); } } - &tab_head( "$title", 19, 0, 'emailsenders' ); - print -"$Message[131] : " - . ( scalar keys %_emails_h ) . ""; - if ( $ShowEMailSenders =~ /H/i ) { - print "' + . "$Message[131] : " + . ( scalar keys %_emails_h ) . ""; + if ( $ShowEMailSenders =~ /H/i ) { + print "$Message[57]"; } if ( $ShowEMailSenders =~ /B/i ) { print -"$Message[75]"; } if ( $ShowEMailSenders =~ /M/i ) { print -"$Message[106]"; +"$Message[106]"; } if ( $ShowEMailSenders =~ /L/i ) { print "$Message[9]"; @@ -9900,16 +10181,16 @@ sub HTMLShowEmailSendersChart { } if ( $ShowEMailSenders =~ /H/i ) { print "$_emails_h{$key}"; } if ( $ShowEMailSenders =~ /B/i ) { - print "" + print "" . Format_Bytes( $_emails_k{$key} ) . ""; } if ( $ShowEMailSenders =~ /M/i ) { - print "" + print "" . Format_Bytes( $_emails_k{$key} / ( $_emails_h{$key} || 1 ) ) . ""; } if ( $ShowEMailSenders =~ /L/i ) { - print "" + print "" . ( $_emails_l{$key} ? Format_Date( $_emails_l{$key}, 1 ) : '-' ) . ""; } @@ -9928,16 +10209,17 @@ sub HTMLShowEmailSendersChart { "$Message[2]"; if ( $ShowEMailSenders =~ /H/i ) { print "$rest_h"; } if ( $ShowEMailSenders =~ /B/i ) { - print "" . Format_Bytes($rest_k) . ""; + print "" . Format_Bytes($rest_k) . ""; } if ( $ShowEMailSenders =~ /M/i ) { - print "" + print "" . Format_Bytes( $rest_k / ( $rest_h || 1 ) ) . ""; } if ( $ShowEMailSenders =~ /L/i ) { print " "; } print "\n"; } - &tab_end(); + + print '' . &tab_end(); } #------------------------------------------------------------------------------ @@ -9962,54 +10244,50 @@ sub HTMLShowEmailReceiversChart { my $rest_h; my $rest_k; + my $title = $Message[132]; + my $subtitle = ''; + my @links = (); + my $tooltip = ''; + # Show filter form #&ShowFormFilter("emailrfilter",$EmailrFilter); # Show emails list + + if ( !($HTMLOutput{'allemailr'} || $HTMLOutput{'lastemailr'}) ) + { + $subtitle = '(' . $Message[77] . ' ' . $MaxNbOf{'EMailsShown'} . ')'; + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'allemailr', $Message[80])); - print "$Center 
    \n"; - my $title; - if ( $HTMLOutput{'allemailr'} || $HTMLOutput{'lastemailr'} ) { - $title = "$Message[132]"; - } - else { - $title = -"$Message[132] ($Message[77] $MaxNbOf{'EMailsShown'})   -   $Message[80]"; - if ( $ShowEMailReceivers =~ /L/i ) { - $title .= "   -   $Message[9]"; + if ( $ShowEMailReceivers =~ /L/i ) + { + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'lastemailr', $Message[9])); } } - &tab_head( "$title", 19, 0, 'emailreceivers' ); - print -"$Message[132] : " - . ( scalar keys %_emailr_h ) . ""; + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } + + print &tab_head($title, $subtitle . join( ' ', @links ), 'emailreceivers', $tooltip ) + . '' + . ""; if ( $ShowEMailReceivers =~ /H/i ) { - print ""; } if ( $ShowEMailReceivers =~ /B/i ) { print -""; } if ( $ShowEMailReceivers =~ /M/i ) { print -""; +""; } if ( $ShowEMailReceivers =~ /L/i ) { print ""; @@ -10069,16 +10347,16 @@ sub HTMLShowEmailReceiversChart { print ""; } if ( $ShowEMailReceivers =~ /B/i ) { - print ""; } if ( $ShowEMailReceivers =~ /M/i ) { - print ""; } if ( $ShowEMailReceivers =~ /L/i ) { - print ""; } @@ -10098,16 +10376,17 @@ sub HTMLShowEmailReceiversChart { ""; if ( $ShowEMailReceivers =~ /H/i ) { print ""; } if ( $ShowEMailReceivers =~ /B/i ) { - print ""; + print ""; } if ( $ShowEMailReceivers =~ /M/i ) { - print ""; } if ( $ShowEMailReceivers =~ /L/i ) { print ""; } print "\n"; } - &tab_end(); + + print '
    $Message[132] : " + . ( scalar keys %_emailr_h ) . "$Message[57]$Message[75]$Message[106]$Message[106]$Message[9]$_emailr_h{$key}" + print "" . Format_Bytes( $_emailr_k{$key} ) . "" + print "" . Format_Bytes( $_emailr_k{$key} / ( $_emailr_h{$key} || 1 ) ) . "" + print "" . ( $_emailr_l{$key} ? Format_Date( $_emailr_l{$key}, 1 ) : '-' ) . "
    $Message[2]$rest_h" . Format_Bytes($rest_k) . "" . Format_Bytes($rest_k) . "" + print "" . Format_Bytes( $rest_k / ( $rest_h || 1 ) ) . " 
    ' . &tab_end(); } #------------------------------------------------------------------------------ @@ -10118,266 +10397,131 @@ sub HTMLShowEmailReceiversChart { # Return: - #------------------------------------------------------------------------------ sub HTMLTopBanner{ - my $WIDTHMENU1 = shift; - my $frame = ( $FrameName eq 'mainleft' ); - if ($Debug) { debug( "ShowTopBan", 2 ); } - print "$Center \n"; + + my $NewLinkParams = ${QueryString}; + $NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i; + $NewLinkParams =~ s/(^|&|&)staticlinks(=\w*|$)//i; + $NewLinkParams =~ s/(^|&|&)year=[^&]*//i; + $NewLinkParams =~ s/(^|&|&)month=[^&]*//i; + $NewLinkParams =~ s/(^|&|&)framename=[^&]*//i; + $NewLinkParams =~ s/(&|&)+/&/i; + $NewLinkParams =~ s/^&//; + $NewLinkParams =~ s/&$//; + my $NewLinkTarget = ''; - if ( $FrameName ne 'mainleft' ) { + if ( $FrameName eq 'mainright' ) { + $NewLinkTarget = " target=\"_parent\""; + } + + print '
    '; + + my $lastUpdateBuild = (($LastUpdate) ? + '' . Format_Date( $LastUpdate, 0 ) . '' + : '' + . (( !$UpdateStats ) ? $Message[24] : 'No qualified records found in log (' . $NbOfLinesCorrupted .' corrupted, ' . $NbOfLinesComment . ' comments, ' . $NbOfLinesBlank . ' Blank, ' . $NbOfLinesDropped .' dropped)') + . '' + ); + + if ( $AllowToUpdateStatsFromBrowser && !$StaticLinks ) { my $NewLinkParams = ${QueryString}; $NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i; $NewLinkParams =~ s/(^|&|&)staticlinks(=\w*|$)//i; - $NewLinkParams =~ s/(^|&|&)year=[^&]*//i; - $NewLinkParams =~ s/(^|&|&)month=[^&]*//i; $NewLinkParams =~ s/(^|&|&)framename=[^&]*//i; + if ( $FrameName eq 'mainright' ) { + $NewLinkParams .= "&framename=mainright"; + } $NewLinkParams =~ s/(&|&)+/&/i; $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; - my $NewLinkTarget = ''; - - if ( $FrameName eq 'mainright' ) { - $NewLinkTarget = " target=\"_parent\""; - } - print "
    \n"; - } - - if ( $QueryString !~ /buildpdf/i ) { - print -"\n"; - print "
    \n"; - print -"\n"; - } - else { - print "
    \n"; + if ($NewLinkParams) { $NewLinkParams = "${NewLinkParams}&"; } + $lastUpdateBuild .= ''; } - if ( $FrameName ne 'mainright' ) { + print '
    ' + . '' + . '
    ' . $SiteDomain . '
    '; - # Print Statistics Of - if ( $FrameName eq 'mainleft' ) { - my $shortSiteDomain = $SiteDomain; - if ( length($SiteDomain) > 30 ) { - $shortSiteDomain = - substr( $SiteDomain, 0, 20 ) . "..." - . substr( $SiteDomain, length($SiteDomain) - 5, 5 ); - } - print -"
    "; - } - else { - print -""; - } + if ( !$StaticLinks ) { Show_Flag_Links($Lang); } + + print '
    '; - # Logo and flags - if ( $FrameName ne 'mainleft' ) { - if ( $LogoLink =~ "https://www.awstats.org" ) { - print "
    "; - } - print "\n"; - } - if ( $FrameName ne 'mainleft' ) { + if ( $ENV{'GATEWAY_INTERFACE'} || !$StaticLinks ) { - # Print Last Update - print -""; - print -""; + print ''; - # Logo and flags - if ( $FrameName eq 'mainright' ) { - if ( $LogoLink =~ "https://www.awstats.org" ) { - print ""; + print ''; } - print "\n"; - - # Print selected period of analysis (month and year required) - print -""; - print "\n"; - } - if ( $QueryString !~ /buildpdf/i ) { - print "
    $Message[7]:
    $shortSiteDomain
    $Message[7]: $SiteDomain"; - } - else { - print ""; - } - if ( !$StaticLinks ) { print "
    "; Show_Flag_Links($Lang); } - print "
    $Message[35]: "; - if ($LastUpdate) { print Format_Date( $LastUpdate, 0 ); } - else { + print ''; - # Here NbOfOldLines = 0 (because LastUpdate is not defined) - if ( !$UpdateStats ) { - print "$Message[24]"; - } - else { - print - "No qualified records found in log - ($NbOfLinesCorrupted corrupted, $NbOfLinesComment comments, $NbOfLinesBlank Blank, - $NbOfLinesDropped dropped)"; - } + print ''; + + print ''; - # Print Update Now link - if ( $AllowToUpdateStatsFromBrowser && !$StaticLinks ) { - my $NewLinkParams = ${QueryString}; - $NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i; - $NewLinkParams =~ s/(^|&|&)staticlinks(=\w*|$)//i; - $NewLinkParams =~ s/(^|&|&)framename=[^&]*//i; - if ( $FrameName eq 'mainright' ) { - $NewLinkParams .= "&framename=mainright"; - } - $NewLinkParams =~ s/(&|&)+/&/i; - $NewLinkParams =~ s/^&//; - $NewLinkParams =~ s/&$//; - if ($NewLinkParams) { $NewLinkParams = "${NewLinkParams}&"; } - print "       "; - print "$Message[74]"; + print '\n"; - } - else { - print "\n"; + if ( $DatabaseBreak eq 'day' || $DatabaseBreak eq 'hour') { + if (!$DayRequired) { $DayRequired = $nowday; } + print '
    $Message[133]:"; - if ( $ENV{'GATEWAY_INTERFACE'} || !$StaticLinks ) { - print "\n"; - - print "'; + foreach ( 0 .. 23 ) { + print '$_"; } - print "\n"; - print "'; + } - # Add YearRequired in list if not in ListOfYears - $ListOfYears{$YearRequired} ||= $MonthRequired; - foreach ( sort keys %ListOfYears ) { - print "$_\n"; - } - print "\n"; + print '' + . (($SiteConfig) ? '' : '') + . (($DirConfig) ? '' : '') + . (( $QueryString =~ /lang=(\w+)/i ) ? '' : '') + . (( $QueryString =~ /debug=(\d+)/i ) ? '' : '') + . (( $FrameName eq 'mainright' ) ? '' : '') + . ''; + + print ''; + + } else { + print ""; + if ($DayRequired) { print "$Message[4] $DayRequired - "; } + + if ( $MonthRequired eq 'all' ) { + print "$Message[6] $YearRequired"; + } else { + print "$Message[5] $MonthNumLib{$MonthRequired} $YearRequired"; + } - if ( $DatabaseBreak eq 'day' || - $DatabaseBreak eq 'hour') { - if (!$DayRequired) { - $DayRequired = $nowday; - } - print "\n"; - } + print ""; + } - if ( $DatabaseBreak eq 'hour') { - if (!$HourRequired) { - $HourRequired = $nowhour; - } - print "\n"; - } + print '
    '. $Message[35] .' : ' . $lastUpdateBuild . '
    ' + . ''; - print "\n"; - if ($SiteConfig) { - print -"\n"; - } - if ($DirConfig) { - print -"\n"; - } - if ( $QueryString =~ /lang=(\w+)/i ) { - print - "\n"; - } - if ( $QueryString =~ /debug=(\d+)/i ) { - print - "\n"; - } - if ( $FrameName eq 'mainright' ) { - print -"\n"; - } - print -""; - } - else { - print ""; - if ($DayRequired) { print "$Message[4] $DayRequired - "; } - if ( $MonthRequired eq 'all' ) { - print "$Message[6] $YearRequired"; - } - else { - print - "$Message[5] $MonthNumLib{$MonthRequired} $YearRequired"; - } - print ""; - } - print "
    \n"; - print "
    \n"; - } - else { - print "\n"; - } + &HTMLMainSummary(); - if ( $FrameName ne 'mainleft' ) { print "
    \n"; } - else { print "
    \n"; } - print "\n"; + HTMLMenu($NewLinkParams, $NewLinkTarget); + + print "
    "; + } #------------------------------------------------------------------------------ @@ -10388,6 +10532,61 @@ sub HTMLTopBanner{ # Return: - #------------------------------------------------------------------------------ sub HTMLMenu{ + + print ''; + return; + my $NewLinkParams = shift; my $NewLinkTarget = shift; my $frame = ( $FrameName eq 'mainleft' ); @@ -10416,13 +10615,7 @@ sub HTMLMenu{ if ( !$PluginsLoaded{'ShowMenu'}{'menuapplet'} ) { my $menuicon = 0; # TODO a virer # Menu HTML - print "\n"; + print ''; if ( $FrameName eq 'mainleft' && $ShowMonthStats ) { print( $frame? ""; + $html .= '
    ' + . &$function( + $Message[73], "filetypes", + 0, \@blocklabel, + 0, \@valcolor, + 0, 0, + 0, \@valdata + ) + . '
    '; } } - - print -""; - if ( $ShowFileTypesStats =~ /H/i ) { - print ""; - } - if ( $ShowFileTypesStats =~ /B/i ) { - print ""; - } - if ( $ShowFileTypesStats =~ /C/i ) { - print -""; + # Graph the top five in a pie chart + if (scalar @keylist > 1) + { + $html .= showGraph(); } - print "\n"; - my $total_con = 0; - my $total_cre = 0; - my $count = 0; - foreach my $key (@keylist) { - my $p_h = ' '; - my $p_k = ' '; - if ($Totalh) { - $p_h = int( $_filetypes_h{$key} / $Totalh * 1000 ) / 10; - $p_h = "$p_h %"; - } - if ($Totalk) { - $p_k = int( $_filetypes_k{$key} / $Totalk * 1000 ) / 10; - $p_k = "$p_k %"; - } + + foreach my $key (@keylist) + { + my $p_h = ($Totalh) ? int( $_filetypes_h{$key} / $Totalh * 1000 ) * .1 : 1; + my $p_k = ($Totalk) ? int( $_filetypes_k{$key} / $Totalk * 1000 ) * .1 : 1; + + $html .= ''; if ( $key eq 'Unknown' ) { - print ""; + $html .= ''; + } else { + my $nameicon = $MimeHashLib{$key}[0] || 'notavailable'; + my $nametype = $MimeHashFamily{$MimeHashLib{$key}[0]} || ''; + $html .= ''; } - else { - my $nameicon = $MimeHashLib{$key}[0] || "notavailable"; - my $nametype = $MimeHashFamily{$MimeHashLib{$key}[0]} || " "; - print ""; - print ""; - } - if ( $ShowFileTypesStats =~ /H/i ) { - print ""; - } - if ( $ShowFileTypesStats =~ /B/i ) { - print '"; - } - if ( $ShowFileTypesStats =~ /C/i ) { - if ( $_filetypes_gz_in{$key} ) { - my $percent = int( - 100 * ( - 1 - $_filetypes_gz_out{$key} / - $_filetypes_gz_in{$key} - ) - ); - printf( - "", - Format_Bytes( $_filetypes_gz_in{$key} ), - Format_Bytes( $_filetypes_gz_out{$key} ), - Format_Bytes( - $_filetypes_gz_in{$key} - - $_filetypes_gz_out{$key} - ), - $percent - ); + + $html .= (( $ShowFileTypesStats =~ /H/i ) ? HTMLDataCellWithBar('h', $_filetypes_h{$key}, '' . $p_h . '% ' . Format_Number($_filetypes_h{$key}), $Totalh) : '' ) + . (( $ShowFileTypesStats =~ /B/i ) ? HTMLDataCellWithBar('b', $_filetypes_k{$key}, '' . $p_k . '% ' . Format_Bytes($_filetypes_k{$key}), $Totalk) : '' ) + . (( $ShowFileTypesStats =~ /B/i ) ? HTMLDataCellWithBar('b', 0, Format_Bytes($_filetypes_k{$key} / $_filetypes_h{$key}), 200) : '' ); + + if ( $ShowFileTypesStats =~ /C/i ) + { + if ( $_filetypes_gz_in{$key} ) + { + $html .= '' + . '' + . '' + . ''; $total_con += $_filetypes_gz_in{$key}; $total_cre += $_filetypes_gz_out{$key}; - } - else { - print ""; + } else { + $html .= ''; } } - print "\n"; - $count++; + $html .= ''; } - # Add total (only useful if compression is enabled) - if ( $ShowFileTypesStats =~ /C/i ) { - my $colspan = 3; - if ( $ShowFileTypesStats =~ /H/i ) { $colspan += 2; } - if ( $ShowFileTypesStats =~ /B/i ) { $colspan += 2; } - print ""; - print -""; - if ( $ShowFileTypesStats =~ /C/i ) { - if ($total_con) { - my $percent = - int( 100 * ( 1 - $total_cre / $total_con ) ); - printf( - "", - Format_Bytes($total_con), - Format_Bytes($total_cre), - Format_Bytes( $total_con - $total_cre ), - $percent - ); - } - else { - print ""; - } - } - print "\n"; + # Add total (compression) + if ($total_con && $ShowFileTypesStats =~ /C/i ) + { + $html .= '' + . (( $ShowFileTypesStats =~ /H/i ) ? '' : '') + . (( $ShowFileTypesStats =~ /B/i ) ? '' : '') + . '' + . '' + . '' + . '' + . '' + . ''; + } + + if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push(@links, '' . $Message[179] .''); + } + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); } - &tab_end(); + + return &tab_head($title, join( ' ', @links ), 'filetypes', $tooltip) + . '
    " : "" ); print @@ -10543,7 +10736,7 @@ sub HTMLMenu{ ); if ($linetitle) { print "
    " + . ( $frame ? "" : "" ) . ">" . ( $menuicon ? " " @@ -10832,8 +11025,6 @@ sub HTMLMenu{ else { } } - #print ($frame?"":"
    \n"); - print "
    \n"; } # Print Back link @@ -10867,180 +11058,131 @@ sub HTMLMenu{ } #------------------------------------------------------------------------------ -# Function: Prints the File Type table -# Parameters: _ +# Function: Return the File Type table +# Parameters: - # Input: $NewLinkParams, $NewLinkTargets -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainFileType{ - my $NewLinkParams = shift; - my $NewLinkTarget = shift; + if ($Debug) { debug( "ShowFileTypesStatsCompressionStats", 2 ); } + if (!$LevelForFileTypesDetection > 0){return;} - if ($Debug) { debug( "ShowFileTypesStatsCompressionStats", 2 ); } - print "$Center 
    \n"; - my $Totalh = 0; + + my $NewLinkParams = shift; + my $NewLinkTarget = shift; + my $title = $Message[73]; + my @links = (); + my $tooltip = my $html = ''; + my $Totalh = my $Totalk = my $total_con = my $total_cre = 0; + foreach ( keys %_filetypes_h ) { $Totalh += $_filetypes_h{$_}; } - my $Totalk = 0; foreach ( keys %_filetypes_k ) { $Totalk += $_filetypes_k{$_}; } - my $title = "$Message[73]"; - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title = "$title   -   $Message[179]"); - } - if ( $ShowFileTypesStats =~ /C/i ) { $title .= " - $Message[98]"; } - - # build keylist at top - &BuildKeyList( $MaxRowsInHTMLOutput, 1, \%_filetypes_h, - \%_filetypes_h ); - - &tab_head( "$title", 19, 0, 'filetypes' ); - - # Graph the top five in a pie chart - if (scalar @keylist > 1){ + &BuildKeyList( $MaxRowsInHTMLOutput, 1, \%_filetypes_h, \%_filetypes_h ); + + my sub showGraph() + { + my $html = ''; foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) { my @blocklabel = (); my @valdata = (); my @valcolor = ($color_p); my $cnt = 0; + foreach my $key (@keylist) { push @valdata, int( $_filetypes_h{$key} / $Totalh * 1000 ) / 10; push @blocklabel, "$key"; $cnt++; if ($cnt > 4) { last; } } - print "
    "; + my $function = "ShowGraph_$pluginname"; - &$function( - "$Message[73]", "filetypes", - 0, \@blocklabel, - 0, \@valcolor, - 0, 0, - 0, \@valdata - ); - print "
    $Message[73]$Message[57]$Message[15]$Message[75]$Message[15]$Message[100]$Message[101]$Message[99]
    $Message[0]' . $Message[0] . ' (' . $nametype . ')  ' . $key . '
    $key$nametype".Format_Number($_filetypes_h{$key})."$p_h' - . Format_Bytes( $_filetypes_k{$key} ) - . "$p_k%s%s%s (%s%)' . Format_Bytes( $_filetypes_gz_in{$key} ) . '' . Format_Bytes( $_filetypes_gz_out{$key} ) . '' . Format_Bytes( $_filetypes_gz_in{$key} - $_filetypes_gz_out{$key} ) . '' . int( 100 * (1 - $_filetypes_gz_out{$key} /$_filetypes_gz_in{$key}) ) . '   
    $Message[98]%s%s%s (%s%)   
    ' . $Message[98] . '' . Format_Bytes($total_con) . '' . Format_Bytes($total_cre) . '' . Format_Bytes( $total_con - $total_cre ) . '' . int( 100 * ( 1 - $total_cre / $total_con ) ) . '
    ' + . HTMLDataTableHeader('', $ShowFileTypesStats) + . $html . '
    ' . &tab_end(); } #------------------------------------------------------------------------------ @@ -11051,75 +11193,86 @@ sub HTMLMainFileType{ # Return: - #------------------------------------------------------------------------------ sub HTMLMainFileSize{ - if ($Debug) { debug("ShowFileSizesStats",2); } - my $FirstTime = 0; - my $LastTime = 0; - foreach my $key ( keys %FirstTime ) { - my $keyqualified = 0; - if ( $MonthRequired eq 'all' ) { $keyqualified = 1; } - if ( $key =~ /^$YearRequired$MonthRequired/ ) { $keyqualified = 1; } - if ($keyqualified) { - if ( $FirstTime{$key} - && ( $FirstTime == 0 || $FirstTime > $FirstTime{$key} ) ) - { - $FirstTime = $FirstTime{$key}; - } - if ( $LastTime < ( $LastTime{$key} || 0 ) ) { - $LastTime = $LastTime{$key}; - } - } - } + if ($Debug) { debug("ShowFileSizesStats",2); } + my $FirstTime = my $LastTime = my $inicio = my $fim = my $number_of_requests = my $request_frequency_average = my $Totals = my $average_s = my $total_s = 0; + + my $title = $Message[186]; + my $tooltip = ''; + + foreach my $key ( keys %FirstTime ) + { + my $keyqualified = 0; + if ( $MonthRequired eq 'all' ) { $keyqualified = 1; } + if ( $key =~ /^$YearRequired$MonthRequired/ ) { $keyqualified = 1; } + if ($keyqualified) + { + if ( $FirstTime{$key} && ( $FirstTime == 0 || $FirstTime > $FirstTime{$key} ) ) + { + $FirstTime = $FirstTime{$key}; + } + if ( $LastTime < ( $LastTime{$key} || 0 ) ) { + $LastTime = $LastTime{$key}; + } + } + } - my $inicio = 0; - my $fim = 0; - if ($FirstTime =~ /$regdate/o) { $inicio = Time::Local::timelocal($6, $5, $4, $3, $2-1, $1); } - if ($LastTime =~ /$regdate/o) { $fim = Time::Local::timelocal($6, $5, $4, $3, $2-1, $1); } - my $periodo = $fim - $inicio; - my $number_of_requests = 0; - my $request_frequency_average = 0; - foreach my $key (@PayloadRange) { - $number_of_requests += $_filesize{$key}; - } - if ($periodo) { $request_frequency_average = $number_of_requests/$periodo;} - else { $request_frequency_average = 0 }; - print "$Center 
    \n"; - my $title = "$Message[186]"; - &tab_head($title, 19, 0, 'filesizes'); - my $Totals = 0; - my $average_s = 0; - foreach (@PayloadRange) { - $average_s += ( $_filesize{$_} || 0 ) * $PayloadAverage{$_}; - $Totals += $_filesize{$_} || 0; - } - if ($Totals) { $average_s = int($average_s / $Totals); } - else { $average_s = '?'; } - print "$Message[182]: $number_of_requests - $Message[183]: $periodo $Message[184] - $Message[185]: ".sprintf ("%.6f",$request_frequency_average)."$Message[181]$Message[57]$Message[15]\n"; - my $total_s = 0; - my $count = 0; - foreach my $key (@PayloadRange) { - my $p = 0; - my $f = 0; - if ($Totals) { $p = int($_filesize{$key} / $Totals * 1000) / 10; } - if ($periodo) { $f = $_filesize{$key} / $periodo; } - $total_s += $_filesize{$key} || 0; - print "$key"; - print "".($_filesize{$key}? sprintf("%.5f",$f):" ").""; - print "".($_filesize{$key}? $_filesize{$key}:" ").""; - print "".($_filesize{$key}? "$p %":" ").""; - print "\n"; - $count++; - } - my $rest_s = $TotalVisits-$total_s; - if ($rest_s > 0) { - my $p = 0; - if ($TotalVisits) { $p = int($rest_s / $TotalVisits * 1000) / 10; } - print "$Message[0]"; - print "$rest_s"; - print "".($rest_s?"$p %":" ").""; - print "\n"; - } + if ($FirstTime =~ /$regdate/o) { $inicio = Time::Local::timelocal($6, $5, $4, $3, $2-1, $1); } + if ($LastTime =~ /$regdate/o) { $fim = Time::Local::timelocal($6, $5, $4, $3, $2-1, $1); } + my $periodo = $fim - $inicio; + + foreach my $key (@PayloadRange) + { + $number_of_requests += $_filesize{$key}; + } - &tab_end(); + if ($periodo) { $request_frequency_average = $number_of_requests/$periodo;} + else { $request_frequency_average = 0 }; + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } + + print &tab_head($title, '', 'filesizes', $tooltip); + + foreach (@PayloadRange) + { + $average_s += ( $_filesize{$_} || 0 ) * $PayloadAverage{$_}; + $Totals += $_filesize{$_} || 0; + } + if ($Totals) { $average_s = int($average_s / $Totals); } + else { $average_s = '?'; } + + print '' + . "\n"; + + foreach my $key (@PayloadRange) + { + my $p = 0; + my $f = 0; + if ($Totals) { $p = int($_filesize{$key} / $Totals * 1000) / 10; } + if ($periodo) { $f = $_filesize{$key} / $periodo; } + $total_s += $_filesize{$key} || 0; + print "" + . "" + . "" + . "" + . "\n"; + } + + my $rest_s = $TotalVisits-$total_s; + if ($rest_s > 0) + { + my $p = 0; + if ($TotalVisits) { $p = int($rest_s / $TotalVisits * 1000) / 10; } + print "" + . "" + . "" + . "\n"; + } + + print '
    $Message[182]: $number_of_requests - $Message[183]: $periodo $Message[184] - $Message[185]: ".sprintf ("%.6f",$request_frequency_average)."$Message[181]$Message[57]$Message[15]
    $key".($_filesize{$key}? sprintf("%.5f",$f):" ")."".($_filesize{$key}? $_filesize{$key}:" ")."".($_filesize{$key}? "$p %":" ")."
    $Message[0]$rest_s".($rest_s?"$p %":" ")."
    ' . &tab_end(); } #------------------------------------------------------------------------------ @@ -11130,75 +11283,89 @@ sub HTMLMainFileSize{ # Return: - #------------------------------------------------------------------------------ sub HTMLMainRequestTime{ - if ($Debug) { debug("ShowRequestTimesStats", 2); } - my $FirstTime = 0; - my $LastTime = 0; - foreach my $key ( keys %FirstTime ) { - my $keyqualified = 0; - if ( $MonthRequired eq 'all' ) { $keyqualified = 1; } - if ( $key =~ /^$YearRequired$MonthRequired/ ) { $keyqualified = 1; } - if ($keyqualified) { - if ( $FirstTime{$key} - && ( $FirstTime == 0 || $FirstTime > $FirstTime{$key} ) ) - { - $FirstTime = $FirstTime{$key}; - } - if ( $LastTime < ( $LastTime{$key} || 0 ) ) { - $LastTime = $LastTime{$key}; - } - } - } - - my $inicio = 0; - my $fim = 0; - if ($FirstTime =~ /$regdate/o) { $inicio = Time::Local::timelocal($6,$5,$4,$3,$2-1,$1); } - if ($LastTime =~ /$regdate/o) { $fim = Time::Local::timelocal($6,$5,$4,$3,$2-1,$1); } - my $periodo = $fim - $inicio; - my $number_of_requests = 0; - my $request_frequency_average = 0; - foreach my $key (@TimeRange) { - $number_of_requests += $_requesttime{$key}; - } - if ($periodo) { $request_frequency_average = $number_of_requests / $periodo;} - else { $request_frequency_average = 0}; - print "$Center 
    \n"; - my $title = "$Message[188]"; - &tab_head($title, 19, 0, 'requesttimes'); - my $Totals = 0; - my $average_s = 0; - foreach (@TimeRange) { - $average_s += ($_requesttime{$_} || 0) * $TimeAverage{$_}; - $Totals += $_requesttime{$_} || 0; - } - if ($Totals) { $average_s = int($average_s / $Totals); } - else { $average_s = '?'; } - print "$Message[182]: $number_of_requests - $Message[183]: $periodo $Message[184] - $Message[185]: ".sprintf ("%.6f",$request_frequency_average)."$Message[181]$Message[57]$Message[15]\n"; - my $total_s = 0; - my $count = 0; - foreach my $key (@TimeRange) { - my $p = 0; - my $f = 0; - if ($Totals) { $p = int($_requesttime{$key} / $Totals * 1000) / 10; } - if ($periodo) { $f = $_requesttime{$key} / $periodo; } - $total_s += $_requesttime{$key} || 0; - print "$key"; - print "".($_requesttime{$key} ? sprintf("%.5f",$f) : " ").""; - print "".($_requesttime{$key} ? $_requesttime{$key} : " ").""; - print "".($_requesttime{$key} ? "$p %" : " ").""; - print "\n"; - $count++; - } - my $rest_s = $TotalVisits - $total_s; - if ($rest_s > 0) { - my $p = 0; - if ($TotalVisits) { $p = int($rest_s / $TotalVisits * 1000) / 10; } - print "$Message[0]"; - print "$rest_s"; - print "".($rest_s?"$p %":" ").""; - print "\n"; - } + if ($Debug) { debug("ShowRequestTimesStats", 2); } + + my $FirstTime = 0; + my $LastTime = 0; + + foreach my $key ( keys %FirstTime ) { + my $keyqualified = 0; + if ( $MonthRequired eq 'all' ) { $keyqualified = 1; } + if ( $key =~ /^$YearRequired$MonthRequired/ ) { $keyqualified = 1; } + if ($keyqualified) { + if ( $FirstTime{$key} && ( $FirstTime == 0 || $FirstTime > $FirstTime{$key} ) ) + { + $FirstTime = $FirstTime{$key}; + } + if ( $LastTime < ( $LastTime{$key} || 0 ) ) { + $LastTime = $LastTime{$key}; + } + } + } + + my $inicio = 0; + my $fim = 0; + if ($FirstTime =~ /$regdate/o) { $inicio = Time::Local::timelocal($6,$5,$4,$3,$2-1,$1); } + if ($LastTime =~ /$regdate/o) { $fim = Time::Local::timelocal($6,$5,$4,$3,$2-1,$1); } + my $periodo = $fim - $inicio; + my $number_of_requests = 0; + my $request_frequency_average = 0; + foreach my $key (@TimeRange) + { + $number_of_requests += $_requesttime{$key}; + } + if ($periodo) { $request_frequency_average = $number_of_requests / $periodo;} + else { $request_frequency_average = 0}; + # print " "; + + my $title = $Message[188]; + + my $tooltip = ''; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } - &tab_end(); + print &tab_head($title, '', 'requesttimes', $tooltip); + + my $Totals = 0; + my $average_s = 0; + foreach (@TimeRange) { + $average_s += ($_requesttime{$_} || 0) * $TimeAverage{$_}; + $Totals += $_requesttime{$_} || 0; + } + if ($Totals) { $average_s = int($average_s / $Totals); } + else { $average_s = '?'; } + + print '' + . "\n"; + my $total_s = 0; + my $count = 0; + foreach my $key (@TimeRange) { + my $p = 0; + my $f = 0; + if ($Totals) { $p = int($_requesttime{$key} / $Totals * 1000) / 10; } + if ($periodo) { $f = $_requesttime{$key} / $periodo; } + $total_s += $_requesttime{$key} || 0; + print ""; + print ""; + print ""; + print ""; + print "\n"; + $count++; + } + my $rest_s = $TotalVisits - $total_s; + if ($rest_s > 0) { + my $p = 0; + if ($TotalVisits) { $p = int($rest_s / $TotalVisits * 1000) / 10; } + print ""; + print ""; + print ""; + print "\n"; + } + + print '
    $Message[182]: $number_of_requests - $Message[183]: $periodo $Message[184] - $Message[185]: ".sprintf ("%.6f",$request_frequency_average)."$Message[181]$Message[57]$Message[15]
    $key".($_requesttime{$key} ? sprintf("%.5f",$f) : " ")."".($_requesttime{$key} ? $_requesttime{$key} : " ")."".($_requesttime{$key} ? "$p %" : " ")."
    $Message[0]$rest_s".($rest_s?"$p %":" ")."
    ' . &tab_end(); } #------------------------------------------------------------------------------ @@ -11210,17 +11377,24 @@ sub HTMLMainRequestTime{ #------------------------------------------------------------------------------ sub HTMLShowBrowserDetail{ # Show browsers versions - print "$Center 
    "; + print " "; + my $title = "$Message[21]"; - &tab_head( "$title", 19, 0, 'browsersversions' ); - print -"$Message[58]"; - print -"$Message[111]$Message[56]$Message[15]"; - print -"$Message[57]$Message[15]"; - print " "; - print "\n"; + + my $tooltip = ''; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } + + print &tab_head($title, '', 'browsersversions', $tooltip) + . '' + . "" + . "" + . "" + . "" + . "\n"; my $total_h = 0; my $total_p = 0; my $count = 0; @@ -11278,7 +11452,7 @@ sub HTMLShowBrowserDetail{ if ( $key =~ /^$family(.*)/i ) { if ( !$familyheadershown ) { print -""; print ""; print "\n"; @@ -11376,7 +11548,7 @@ sub HTMLShowBrowserDetail{ $p_h = "$p_h %"; } print -""; +""; print ""; @@ -11447,16 +11619,16 @@ sub HTMLShowBrowserDetail{ # alt and title are not provided to reduce page size if ($ShowBrowsersStats) { - print -"
    "; - print -"
    "; + print HtmlBarH('p', $bredde_p); + print HtmlBarH('h', $bredde_h); } print ""; print "\n"; } - &tab_end(); - &html_end(1); + + print '
    $Message[58]$Message[111]" . ucfirst($Message[28]) . "$Message[15]$Message[57]$Message[15] 
    " +"
    " . uc($family) . " " @@ -11344,10 +11518,8 @@ sub HTMLShowBrowserDetail{ # alt and title are not provided to reduce page size if ($ShowBrowsersStats) { - print -"
    "; - print -"
    "; + print HtmlBarH('p', $bredde_p); + print HtmlBarH('h', $bredde_h); } print "
    $Message[2]
    $Message[2] " . Format_Number(( $total_p - $TotalFamily_p )) . "$p_p
    ' . &tab_end(); + + print &html_end(1); } #------------------------------------------------------------------------------ @@ -11468,7 +11640,7 @@ sub HTMLShowBrowserDetail{ #------------------------------------------------------------------------------ sub HTMLShowBrowserUnknown{ my $NewLinkTarget = shift; - print "$Center 
    \n"; + print " "; my $title = "$Message[50]"; if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { # extend the title to include the added link @@ -11478,10 +11650,11 @@ sub HTMLShowBrowserUnknown{ . "&siteConfig=$SiteConfig" ) . "\"$NewLinkTarget>$Message[179]"); } - &tab_head( "$title", 19, 0, 'unknownbrowser' ); - print "User agent (" - . ( scalar keys %_unknownrefererbrowser_l ) - . ")$Message[9]\n"; + print &tab_head( "$title", 19, 0, 'unknownbrowser' ) + . '' + . "\n"; my $total_l = 0; my $count = 0; &BuildKeyList( $MaxRowsInHTMLOutput, 1, \%_unknownrefererbrowser_l, @@ -11489,7 +11662,7 @@ sub HTMLShowBrowserUnknown{ foreach my $key (@keylist) { my $useragent = XMLEncode( CleanXSS($key) ); print - "\n"; $total_l += 1; @@ -11502,8 +11675,10 @@ sub HTMLShowBrowserUnknown{ print ""; print "\n"; } - &tab_end(); - &html_end(1); + + print '
    User agent (" + . ( scalar keys %_unknownrefererbrowser_l ) + . ")$Message[9]
    $useragent" + "
    $useragent" . Format_Date( $_unknownrefererbrowser_l{$key}, 1 ) . "
    -
    ' . &tab_end(); + + print &html_end(1); } #------------------------------------------------------------------------------ @@ -11515,16 +11690,14 @@ sub HTMLShowBrowserUnknown{ #------------------------------------------------------------------------------ sub HTMLShowOSDetail{ # Show os versions - print "$Center 
    "; + print " "; my $title = "$Message[59]"; - &tab_head( "$title", 19, 0, 'osversions' ); - print -"$Message[58]"; - print -"$Message[56]$Message[15]"; - print -"$Message[57]$Message[15]"; - print "\n"; + print &tab_head( "$title", 19, 0, 'osversions' ) + . '' + . "" + . "" + . "" + . "\n"; my $total_h = 0; my $total_p = 0; my $count = 0; @@ -11576,7 +11749,7 @@ sub HTMLShowOSDetail{ $family_name = $OSFamily{$family}; } print -""; +""; print ""; @@ -11630,10 +11803,8 @@ sub HTMLShowOSDetail{ # alt and title are not provided to reduce page size if ($ShowOSStats) { - print -"
    "; - print -"
    "; + print HtmlBarH('p', $bredde_p); + print HtmlBarH('h', $bredde_h); } print ""; print "\n"; @@ -11662,7 +11833,7 @@ sub HTMLShowOSDetail{ $p_p = "$p_p %"; } print -""; +""; print ""; @@ -11721,16 +11892,16 @@ sub HTMLShowOSDetail{ # alt and title are not provided to reduce page size if ($ShowOSStats) { - print -"
    "; - print -"
    "; + print HtmlBarH('p', $bredde_p); + print HtmlBarH('h', $bredde_h); } print ""; print "\n"; } - &tab_end(); - &html_end(1); + + print '
    $Message[58]" . ucfirst($Message[28]) . "$Message[15]$Message[57]$Message[15]
    $family_name
    $family_name" . Format_Number(int( $totalfamily_p{$family} )) . "$p_p
    $Message[2]
    $Message[2]" . Format_Number(( $total_p - $TotalFamily_p )) . "$p_p
    ' . &tab_end(); + + print &html_end(1); } #------------------------------------------------------------------------------ @@ -11742,7 +11913,7 @@ sub HTMLShowOSDetail{ #------------------------------------------------------------------------------ sub HTMLShowOSUnknown{ my $NewLinkTarget = shift; - print "$Center 
    \n"; + print " "; my $title = "$Message[46]"; if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { # extend the title to include the added link @@ -11752,8 +11923,9 @@ sub HTMLShowOSUnknown{ . "&siteConfig=$SiteConfig" ) . "\"$NewLinkTarget>$Message[179]"); } - &tab_head( "$title", 19, 0, 'unknownos' ); - print "User agent (" + print &tab_head( "$title", 19, 0, 'unknownos' ) + . '' + . "\n"; my $total_l = 0; @@ -11763,7 +11935,7 @@ sub HTMLShowOSUnknown{ foreach my $key (@keylist) { my $useragent = XMLEncode( CleanXSS($key) ); print ""; - print ""; print "\n"; $total_l += 1; @@ -11776,8 +11948,10 @@ sub HTMLShowOSUnknown{ print ""; print "\n"; } - &tab_end(); - &html_end(1); + + print '
    User agent (" . ( scalar keys %_unknownreferer_l ) . ")$Message[9]
    $useragent" + print "" . Format_Date( $_unknownreferer_l{$key}, 1 ) . "
    -
    ' . &tab_end(); + + print &html_end(1); } #------------------------------------------------------------------------------ @@ -11789,7 +11963,7 @@ sub HTMLShowOSUnknown{ #------------------------------------------------------------------------------ sub HTMLShowReferers{ my $NewLinkTarget = shift; - print "$Center 
    \n"; + print " "; my $title = "$Message[40]"; if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { # extend the title to include the added link @@ -11799,14 +11973,12 @@ sub HTMLShowReferers{ . "&siteConfig=$SiteConfig" ) . "\"$NewLinkTarget>$Message[179]"); } - &tab_head( $title, 19, 0, 'refererse' ); - print -"".Format_Number($TotalDifferentSearchEngines)." $Message[122]"; - print -"$Message[56]$Message[15]"; - print -"$Message[57]$Message[15]"; - print "\n"; + print &tab_head( $title, 19, 0, 'refererse' ) + . '' + . "" + . "" + . "" + . "\n"; my $total_s = 0; my $total_p = 0; my $total_h = 0; @@ -11878,8 +12050,10 @@ sub HTMLShowReferers{ print ""; print "\n"; } - &tab_end(); - &html_end(1); + + print '
    ".Format_Number($TotalDifferentSearchEngines)." $Message[122]" . ucfirst($Message[28]) . "$Message[15]$Message[57]$Message[15]
    $p_h %
    ' . &tab_end(); + + print &html_end(1); } #------------------------------------------------------------------------------ @@ -11891,7 +12065,7 @@ sub HTMLShowReferers{ #------------------------------------------------------------------------------ sub HTMLShowRefererPages{ my $NewLinkTarget = shift; - print "$Center 
    \n"; + print " "; my $total_p = 0; my $total_h = 0; my $rest_p = 0; @@ -11914,8 +12088,9 @@ sub HTMLShowRefererPages{ } my $cpt = 0; $cpt = ( scalar keys %_pagesrefs_h ); - &tab_head( "$title", 19, 0, 'refererpages' ); - print ""; + print &tab_head( "$title", 19, 0, 'refererpages' ) + . '' + . ""; print -""; +""; print -""; +""; print "\n"; my $total_s = 0; my $count = 0; @@ -11976,7 +12151,7 @@ sub HTMLShowRefererPages{ 10; } print ""; print ""; print "\n"; } - &tab_end(); - &html_end(1); + + print '
    "; if ( $FilterIn{'refererpages'} || $FilterEx{'refererpages'} ) { if ( $FilterIn{'refererpages'} ) { @@ -11934,15 +12109,15 @@ sub HTMLShowRefererPages{ print "$cpt $Message[28]"; #if ($MonthRequired ne 'all') { - # if ($HTMLOutput{'refererpages'}) { print "
    $Message[102]: $TotalDifferentPages $Message[28]"; } + # if ($HTMLOutput{'refererpages'}) { print "$Message[102]: $TotalDifferentPages $Message[28]"; } #} } else { print "$Message[102]: ".Format_Number($cpt)." $Message[28]"; } print "
    $Message[56]$Message[15]" . ucfirst($Message[28]) . "$Message[15]$Message[57]$Message[15]$Message[57]$Message[15]
    "; - &HTMLShowURLInfo($key); + print &HTMLShowURLInfo($key); print "" . ( $_pagesrefs_p{$key} ? Format_Number($_pagesrefs_p{$key}) : ' ' ) @@ -12016,8 +12191,10 @@ sub HTMLShowRefererPages{ print "$p_h %
    ' . &tab_end(); + + print &html_end(1); } #------------------------------------------------------------------------------ @@ -12029,7 +12206,7 @@ sub HTMLShowRefererPages{ #------------------------------------------------------------------------------ sub HTMLShowKeyPhrases{ my $NewLinkTarget = shift; - print "$Center 
    \n"; + print " "; my $title = "$Message[43]"; if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { # extend the title to include the added link @@ -12039,10 +12216,11 @@ sub HTMLShowKeyPhrases{ . "&siteConfig=$SiteConfig" ) . "\"$NewLinkTarget>$Message[179]"); } - &tab_head( $title, 19, 0, 'keyphrases' ); - print "".Format_Number($TotalDifferentKeyphrases)." $Message[103]$Message[14]$Message[15]\n"; + print &tab_head( $title, 19, 0, 'keyphrases' ) + . '' + . "\n"; my $total_s = 0; my $count = 0; &BuildKeyList( @@ -12084,8 +12262,10 @@ sub HTMLShowKeyPhrases{ ""; print "\n"; } - &tab_end(); - &html_end(1); + + print '
    ".Format_Number($TotalDifferentKeyphrases)." $Message[103]$Message[14]$Message[15]
    $Message[124]".Format_Number($rest_s)."$p %
    ' . &tab_end(); + + print &html_end(1); } #------------------------------------------------------------------------------ @@ -12097,7 +12277,7 @@ sub HTMLShowKeyPhrases{ #------------------------------------------------------------------------------ sub HTMLShowKeywords{ my $NewLinkTarget = shift; - print "$Center 
    \n"; + print " "; my $title = "$Message[44]"; if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { # extend the title to include the added link @@ -12107,10 +12287,11 @@ sub HTMLShowKeywords{ . "&siteConfig=$SiteConfig" ) . "\"$NewLinkTarget>$Message[179]"); } - &tab_head( $title, 19, 0, 'keywords' ); - print "".Format_Number($TotalDifferentKeywords)." $Message[13]$Message[14]$Message[15]\n"; + print &tab_head( $title, 19, 0, 'keywords' ) + . '' + . "\n"; my $total_s = 0; my $count = 0; &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Keyword'}, @@ -12149,8 +12330,10 @@ sub HTMLShowKeywords{ ""; print "\n"; } - &tab_end(); - &html_end(1); + + print '
    ".Format_Number($TotalDifferentKeywords)." $Message[13]$Message[14]$Message[15]
    $Message[30]".Format_Number($rest_s)."$p %
    ' . &tab_end(); + + print &html_end(1); } #------------------------------------------------------------------------------ @@ -12167,16 +12350,17 @@ sub HTMLShowErrorCodes{ $title = $customtitles{$code} ? $customtitles{$code} : (join(' ', ( ($httpcodelib{$code} ? $httpcodelib{$code} : 'Unknown error'), "urls (HTTP code " . $code . ")" ))); - print "$Center 
    \n"; - &tab_head( $title, 19, 0, "errors$code" ); - print "URL (" - . Format_Number(( scalar keys %{$_sider_h{$code}} )) - . ")$Message[49]"; + # print " "; + print &tab_head( $title, 19, 0, "errors$code" ) + . '' + . ""; foreach (split(//, $ShowHTTPErrorsPageDetail)) { if ( $_ =~ /R/i ) { - print ""; + print ""; } elsif ( $_ =~ /H/i ) { - print ""; + print ""; } } print "\n"; @@ -12215,8 +12399,10 @@ sub HTMLShowErrorCodes{ # print ""; # print "\n"; # } - &tab_end(); - &html_end(1); + + print '
    URL (" + . Format_Number(( scalar keys %{$_sider_h{$code}} )) + . ")$Message[49]$Message[23]$Message[23]$Message[81]$Message[81]
    ...
    ' . &tab_end(); + + print &html_end(1); } #------------------------------------------------------------------------------ @@ -12234,23 +12420,24 @@ sub HTMLShowExtraSections{ if ( $HTMLOutput{"allextra$extranum"} ) { if ($Debug) { debug( "ExtraName$extranum", 2 ); } - print "$Center 
    "; + # print " "; my $title = $ExtraName[$extranum]; - &tab_head( "$title", 19, 0, "extra$extranum" ); - print ""; - print "" . $ExtraFirstColumnTitle[$extranum] . ""; + print &tab_head( "$title", 19, 0, "extra$extranum" ) + . '' + . "" + . ""; if ( $ExtraStatTypes[$extranum] =~ m/P/i ) { print -""; +""; } if ( $ExtraStatTypes[$extranum] =~ m/H/i ) { print -""; +""; } if ( $ExtraStatTypes[$extranum] =~ m/B/i ) { print -""; +""; } if ( $ExtraStatTypes[$extranum] =~ m/L/i ) { print ""; @@ -12376,366 +12563,12 @@ sub HTMLShowExtraSections{ } print "\n"; } - &tab_end(); - &html_end(1); - } - } -} - -#------------------------------------------------------------------------------ -# Function: Prints the Robot details frame or static page -# Parameters: _ -# Input: _ -# Output: HTML -# Return: - -#------------------------------------------------------------------------------ -sub HTMLShowRobots{ - my $total_p = 0; - my $total_h = 0; - my $total_k = 0; - my $total_r = 0; - my $rest_p = 0; - my $rest_h = 0; - my $rest_k = 0; - my $rest_r = 0; - - print "$Center 
    \n"; - my $title = ''; - if ( $HTMLOutput{'allrobots'} ) { $title .= "$Message[53]"; } - if ( $HTMLOutput{'lastrobots'} ) { $title .= "$Message[9]"; } - &tab_head( "$title", 19, 0, 'robots' ); - print ""; - if ( $ShowRobotsStats =~ /H/i ) { - print - ""; - } - if ( $ShowRobotsStats =~ /B/i ) { - print -""; - } - if ( $ShowRobotsStats =~ /L/i ) { - print ""; - } - print "\n"; - $total_p = $total_h = $total_k = $total_r = 0; - my $count = 0; - if ( $HTMLOutput{'allrobots'} ) { - &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Robot'}, - \%_robot_h, \%_robot_h ); - } - if ( $HTMLOutput{'lastrobots'} ) { - &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Robot'}, - \%_robot_h, \%_robot_l ); - } - foreach my $key (@keylist) { - print ""; - if ( $ShowRobotsStats =~ /H/i ) { - print ""; - } - if ( $ShowRobotsStats =~ /B/i ) { - print ""; - } - if ( $ShowRobotsStats =~ /L/i ) { - print ""; - } - print "\n"; - - #$total_p += $_robot_p{$key}||0; - $total_h += $_robot_h{$key}; - $total_k += $_robot_k{$key} || 0; - $total_r += $_robot_r{$key} || 0; - $count++; - } - - # For bots we need to count Totals - my $TotalPagesRobots = - 0; #foreach (values %_robot_p) { $TotalPagesRobots+=$_; } - my $TotalHitsRobots = 0; - foreach ( values %_robot_h ) { $TotalHitsRobots += $_; } - my $TotalBytesRobots = 0; - foreach ( values %_robot_k ) { $TotalBytesRobots += $_; } - my $TotalRRobots = 0; - foreach ( values %_robot_r ) { $TotalRRobots += $_; } - $rest_p = 0; #$rest_p=$TotalPagesRobots-$total_p; - $rest_h = $TotalHitsRobots - $total_h; - $rest_k = $TotalBytesRobots - $total_k; - $rest_r = $TotalRRobots - $total_r; - - if ($Debug) { - debug( -"Total real / shown : $TotalPagesRobots / $total_p - $TotalHitsRobots / $total_h - $TotalBytesRobots / $total_k", - 2 - ); - } - if ( $rest_p > 0 || $rest_h > 0 || $rest_k > 0 || $rest_r > 0 ) - { # All other robots - print -""; - if ( $ShowRobotsStats =~ /H/i ) { print ""; } - if ( $ShowRobotsStats =~ /B/i ) { - print ""; - } - if ( $ShowRobotsStats =~ /L/i ) { print ""; } - print "\n"; - } - &tab_end( - "* $Message[156]" . ( $TotalRRobots ? " $Message[157]" : "" ) ); - &html_end(1); -} - -#------------------------------------------------------------------------------ -# Function: Prints the URL, Entry or Exit details frame or static page -# Parameters: _ -# Input: _ -# Output: HTML -# Return: - -#------------------------------------------------------------------------------ -sub HTMLShowURLDetail{ - my $total_p = 0; - my $total_e = 0; - my $total_k = 0; - my $total_x = 0; - # Call to plugins' function ShowPagesFilter - foreach - my $pluginname ( keys %{ $PluginsLoaded{'ShowPagesFilter'} } ) - { - my $function = "ShowPagesFilter_$pluginname"; - &$function(); - } - print "$Center 
    \n"; - - # Show filter form - &HTMLShowFormFilter( "urlfilter", $FilterIn{'url'}, $FilterEx{'url'} ); - - # Show URL list - my $title = ''; - my $cpt = 0; - if ( $HTMLOutput{'urldetail'} ) { - $title = $Message[19]; - $cpt = ( scalar keys %_url_p ); - } - if ( $HTMLOutput{'urlentry'} ) { - $title = $Message[104]; - $cpt = ( scalar keys %_url_e ); - } - if ( $HTMLOutput{'urlexit'} ) { - $title = $Message[116]; - $cpt = ( scalar keys %_url_x ); - } - &tab_head( "$title", 19, 0, 'urls' ); - print ""; - if ( $ShowPagesStats =~ /P/i ) { - print - ""; - } - if ( $ShowPagesStats =~ /B/i ) { - print -""; - } - if ( $ShowPagesStats =~ /E/i ) { - print - ""; - } - if ( $ShowPagesStats =~ /X/i ) { - print - ""; - } - - # Call to plugins' function ShowPagesAddField - foreach - my $pluginname ( keys %{ $PluginsLoaded{'ShowPagesAddField'} } ) - { - - # my $function="ShowPagesAddField_$pluginname('title')"; - # eval("$function"); - my $function = "ShowPagesAddField_$pluginname"; - &$function('title'); - } - print "\n"; - $total_p = $total_k = $total_e = $total_x = 0; - my $count = 0; - if ( $HTMLOutput{'urlentry'} ) { - &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'File'}, \%_url_e, - \%_url_e ); - } - elsif ( $HTMLOutput{'urlexit'} ) { - &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'File'}, \%_url_x, - \%_url_x ); - } - else { - &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'File'}, \%_url_p, - \%_url_p ); - } - my $max_p = 1; - my $max_k = 1; - foreach my $key (@keylist) { - if ( $_url_p{$key} > $max_p ) { $max_p = $_url_p{$key}; } - if ( $_url_k{$key} / ( $_url_p{$key} || 1 ) > $max_k ) { - $max_k = $_url_k{$key} / ( $_url_p{$key} || 1 ); - } - } - foreach my $key (@keylist) { - print ""; - my $bredde_p = 0; - my $bredde_e = 0; - my $bredde_x = 0; - my $bredde_k = 0; - if ( $max_p > 0 ) { - $bredde_p = - int( $BarWidth * ( $_url_p{$key} || 0 ) / $max_p ) + 1; - } - if ( ( $bredde_p == 1 ) && $_url_p{$key} ) { $bredde_p = 2; } - if ( $max_p > 0 ) { - $bredde_e = - int( $BarWidth * ( $_url_e{$key} || 0 ) / $max_p ) + 1; - } - if ( ( $bredde_e == 1 ) && $_url_e{$key} ) { $bredde_e = 2; } - if ( $max_p > 0 ) { - $bredde_x = - int( $BarWidth * ( $_url_x{$key} || 0 ) / $max_p ) + 1; - } - if ( ( $bredde_x == 1 ) && $_url_x{$key} ) { $bredde_x = 2; } - if ( $max_k > 0 ) { - $bredde_k = - int( $BarWidth * - ( ( $_url_k{$key} || 0 ) / ( $_url_p{$key} || 1 ) ) / - $max_k ) + 1; - } - if ( ( $bredde_k == 1 ) && $_url_k{$key} ) { $bredde_k = 2; } - if ( $ShowPagesStats =~ /P/i ) { - print ""; - } - if ( $ShowPagesStats =~ /B/i ) { - print ""; - } - if ( $ShowPagesStats =~ /E/i ) { - print ""; - } - if ( $ShowPagesStats =~ /X/i ) { - print ""; - } - - # Call to plugins' function ShowPagesAddField - foreach my $pluginname ( - keys %{ $PluginsLoaded{'ShowPagesAddField'} } ) - { - - # my $function="ShowPagesAddField_$pluginname('$key')"; - # eval("$function"); - my $function = "ShowPagesAddField_$pluginname"; - &$function($key); - } - print "\n"; - $total_p += $_url_p{$key}; - $total_e += $_url_e{$key}; - $total_x += $_url_x{$key}; - $total_k += $_url_k{$key}; - $count++; - } - if ($Debug) { - debug( -"Total real / shown : $TotalPages / $total_p - $TotalEntries / $total_e - $TotalExits / $total_x - $TotalBytesPages / $total_k", - 2 - ); - } - my $rest_p = $TotalPages - $total_p; - my $rest_k = $TotalBytesPages - $total_k; - my $rest_e = $TotalEntries - $total_e; - my $rest_x = $TotalExits - $total_x; - if ( $rest_p > 0 || $rest_e > 0 || $rest_k > 0 ) { - print -""; - if ( $ShowPagesStats =~ /P/i ) { - print ""; - } - if ( $ShowPagesStats =~ /B/i ) { - print ""; - } - if ( $ShowPagesStats =~ /E/i ) { - print ""; - } - if ( $ShowPagesStats =~ /X/i ) { - print ""; - } + + print '
    " . $ExtraFirstColumnTitle[$extranum] . "$Message[56]" . ucfirst($Message[28]) . "$Message[57]$Message[57]$Message[75]$Message[75]$Message[9]
    " - . Format_Number(( scalar keys %_robot_h )) - . " $Message[51]$Message[57]$Message[75]$Message[9]
    " - . ( $RobotsHashIDLib{$key} ? $RobotsHashIDLib{$key} : $key ) - . "" - . Format_Number(( $_robot_h{$key} - $_robot_r{$key} )) - . ( $_robot_r{$key} ? "+$_robot_r{$key}" : "" ) . "" . Format_Bytes( $_robot_k{$key} ) . "" - . ( - $_robot_l{$key} - ? Format_Date( $_robot_l{$key}, 1 ) - : '-' - ) - . "
    $Message[2]".Format_Number($rest_h)."" . ( Format_Bytes($rest_k) ) . " 
    "; - if ( $FilterIn{'url'} || $FilterEx{'url'} ) { - if ( $FilterIn{'url'} ) { - print "$Message[79] $FilterIn{'url'}"; - } - if ( $FilterIn{'url'} && $FilterEx{'url'} ) { print " - "; } - if ( $FilterEx{'url'} ) { - print "Exclude $Message[79] $FilterEx{'url'}"; - } - if ( $FilterIn{'url'} || $FilterEx{'url'} ) { print ": "; } - print Format_Number($cpt)." $Message[28]"; - if ( $MonthRequired ne 'all' ) { - if ( $HTMLOutput{'urldetail'} ) { - print -"
    $Message[102]: ".Format_Number($TotalDifferentPages)." $Message[28]"; - } - } - } - else { print "$Message[102]: ".Format_Number($cpt)." $Message[28]"; } - print "
    $Message[29]$Message[106]$Message[104]$Message[116] 
    "; - &HTMLShowURLInfo($key); - print "".Format_Number($_url_p{$key})."" - . ( - $_url_k{$key} - ? Format_Bytes( - $_url_k{$key} / ( $_url_p{$key} || 1 ) - ) - : " " - ) - . "" - . ( $_url_e{$key} ? Format_Number($_url_e{$key}) : " " ) . "" - . ( $_url_x{$key} ? Format_Number($_url_x{$key}) : " " ) . ""; - - # alt and title are not provided to reduce page size - if ( $ShowPagesStats =~ /P/i ) { - print -"
    "; - } - if ( $ShowPagesStats =~ /B/i ) { - print -"
    "; - } - if ( $ShowPagesStats =~ /E/i ) { - print -"
    "; - } - if ( $ShowPagesStats =~ /X/i ) { - print -""; - } - print "
    $Message[2]" . ( $rest_p ? Format_Number($rest_p) : " " ) . "" - . ( - $rest_k - ? Format_Bytes( $rest_k / ( $rest_p || 1 ) ) - : " " - ) - . "" . ( $rest_e ? Format_Number($rest_e) : " " ) . "" . ( $rest_x ? Format_Number($rest_x) : " " ) . "
    ' . &tab_end(); - # Call to plugins' function ShowPagesAddField - foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowPagesAddField'} } ) - { - my $function = "ShowPagesAddField_$pluginname"; - &$function(''); + print &html_end(1); } - print " \n"; } - &tab_end(); - &html_end(1); } #------------------------------------------------------------------------------ @@ -12752,25 +12585,26 @@ sub HTMLShowLogins{ my $rest_p = 0; my $rest_h = 0; my $rest_k = 0; - print "$Center 
    \n"; + print " "; my $title = ''; if ( $HTMLOutput{'alllogins'} ) { $title .= "$Message[94]"; } if ( $HTMLOutput{'lastlogins'} ) { $title .= "$Message[9]"; } - &tab_head( "$title", 19, 0, 'logins' ); - print "$Message[94] : " - . Format_Number(( scalar keys %_login_h )) . ""; + print &tab_head( "$title", 19, 0, 'logins' ) + . '' + . ""; &HTMLShowUserInfo('__title__'); if ( $ShowAuthenticatedUsers =~ /P/i ) { print - ""; + ""; } if ( $ShowAuthenticatedUsers =~ /H/i ) { print - ""; + ""; } if ( $ShowAuthenticatedUsers =~ /B/i ) { print -""; +""; } if ( $ShowAuthenticatedUsers =~ /L/i ) { print ""; @@ -12843,530 +12677,14 @@ sub HTMLShowLogins{ } print "\n"; } - &tab_end(); - &html_end(1); + + print '
    $Message[94] : " + . Format_Number(( scalar keys %_login_h )) . "$Message[56]" . ucfirst($Message[28]) . "$Message[57]$Message[57]$Message[75]$Message[75]$Message[9]
    ' . &tab_end(); + + print &html_end(1); } #------------------------------------------------------------------------------ -# Function: Prints the Unknown IP/Host details frame or static page -# Parameters: _ -# Input: _ -# Output: HTML -# Return: - -#------------------------------------------------------------------------------ -sub HTMLShowHostsUnknown{ - my $total_p = 0; - my $total_h = 0; - my $total_k = 0; - my $rest_p = 0; - my $rest_h = 0; - my $rest_k = 0; - print "$Center 
    \n"; - &tab_head( "$Message[45]", 19, 0, 'unknownwip' ); - print "" - . Format_Number(( scalar keys %_host_h )) - . " $Message[1]"; - &HTMLShowHostInfo('__title__'); - if ( $ShowHostsStats =~ /P/i ) { - print - "$Message[56]"; - } - if ( $ShowHostsStats =~ /H/i ) { - print - "$Message[57]"; - } - if ( $ShowHostsStats =~ /B/i ) { - print -"$Message[75]"; - } - if ( $ShowHostsStats =~ /L/i ) { - print "$Message[9]"; - } - print "\n"; - $total_p = $total_h = $total_k = 0; - my $count = 0; - &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Host'}, \%_host_h, - \%_host_p ); - foreach my $key (@keylist) { - my $host = CleanXSS($key); - print "$host"; - &HTMLShowHostInfo($key); - if ( $ShowHostsStats =~ /P/i ) { - print "" - . ( $_host_p{$key} ? Format_Number($_host_p{$key}) : " " ) - . ""; - } - if ( $ShowHostsStats =~ /H/i ) { - print "".Format_Number($_host_h{$key}).""; - } - if ( $ShowHostsStats =~ /B/i ) { - print "" . Format_Bytes( $_host_k{$key} ) . ""; - } - if ( $ShowHostsStats =~ /L/i ) { - print "" - . ( - $_host_l{$key} - ? Format_Date( $_host_l{$key}, 1 ) - : '-' - ) - . ""; - } - print "\n"; - $total_p += $_host_p{$key}; - $total_h += $_host_h{$key}; - $total_k += $_host_k{$key} || 0; - $count++; - } - if ($Debug) { - debug( -"Total real / shown : $TotalPages / $total_p - $TotalHits / $total_h - $TotalBytes / $total_h", - 2 - ); - } - $rest_p = $TotalPages - $total_p; - $rest_h = $TotalHits - $total_h; - $rest_k = $TotalBytes - $total_k; - if ( $rest_p > 0 || $rest_h > 0 || $rest_k > 0 ) - { # All other visitors (known or not) - print -"$Message[82]"; - &HTMLShowHostInfo(''); - if ( $ShowHostsStats =~ /P/i ) { - print "" . ( $rest_p ? Format_Number($rest_p) : " " ) . ""; - } - if ( $ShowHostsStats =~ /H/i ) { print "".Format_Number($rest_h).""; } - if ( $ShowHostsStats =~ /B/i ) { - print "" . Format_Bytes($rest_k) . ""; - } - if ( $ShowHostsStats =~ /L/i ) { print " "; } - print "\n"; - } - &tab_end(); - &html_end(1); -} - -#------------------------------------------------------------------------------ -# Function: Prints the Host details frame or static page -# Parameters: _ -# Input: _ -# Output: HTML -# Return: - -#------------------------------------------------------------------------------ -sub HTMLShowHosts{ - my $total_p = 0; - my $total_h = 0; - my $total_k = 0; - my $rest_p = 0; - my $rest_h = 0; - my $rest_k = 0; - print "$Center 
    \n"; - - # Show filter form - &HTMLShowFormFilter( "hostfilter", $FilterIn{'host'}, - $FilterEx{'host'} ); - - # Show hosts list - my $title = ''; - my $cpt = 0; - if ( $HTMLOutput{'allhosts'} ) { - $title .= "$Message[81]"; - $cpt = ( scalar keys %_host_h ); - } - if ( $HTMLOutput{'lasthosts'} ) { - $title .= "$Message[9]"; - $cpt = ( scalar keys %_host_h ); - } - &tab_head( "$title", 19, 0, 'hosts' ); - print ""; - if ( $FilterIn{'host'} || $FilterEx{'host'} ) { # With filter - if ( $FilterIn{'host'} ) { - print "$Message[79] '$FilterIn{'host'}'"; - } - if ( $FilterIn{'host'} && $FilterEx{'host'} ) { print " - "; } - if ( $FilterEx{'host'} ) { - print " Exclude $Message[79] '$FilterEx{'host'}'"; - } - if ( $FilterIn{'host'} || $FilterEx{'host'} ) { print ": "; } - print "$cpt $Message[81]"; - if ( $MonthRequired ne 'all' ) { - if ( $HTMLOutput{'allhosts'} || $HTMLOutput{'lasthosts'} ) { - print -"
    $Message[102]: ".Format_Number($TotalHostsKnown)." $Message[82], ".Format_Number($TotalHostsUnknown)." $Message[1] - ".Format_Number($TotalUnique)." $Message[11]"; - } - } - } - else { # Without filter - if ( $MonthRequired ne 'all' ) { - print -"$Message[102] : ".Format_Number($TotalHostsKnown)." $Message[82], ".Format_Number($TotalHostsUnknown)." $Message[1] - ".Format_Number($TotalUnique)." $Message[11]"; - } - else { print "$Message[102] : " . Format_Number(( scalar keys %_host_h )); } - } - print ""; - &HTMLShowHostInfo('__title__'); - if ( $ShowHostsStats =~ /P/i ) { - print - "$Message[56]"; - } - if ( $ShowHostsStats =~ /H/i ) { - print - "$Message[57]"; - } - if ( $ShowHostsStats =~ /B/i ) { - print -"$Message[75]"; - } - if ( $ShowHostsStats =~ /L/i ) { - print "$Message[9]"; - } - print "\n"; - $total_p = $total_h = $total_k = 0; - my $count = 0; - if ( $HTMLOutput{'allhosts'} ) { - &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Host'}, \%_host_h, - \%_host_p ); - } - if ( $HTMLOutput{'lasthosts'} ) { - &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Host'}, \%_host_h, - \%_host_l ); - } - my $regipv4=qr/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; - - if ( $DynamicDNSLookup == 2 ) { - # Use static DNS file - &Read_DNS_Cache( \%MyDNSTable, "$DNSStaticCacheFile", "", 1 ); - } - - foreach my $key (@keylist) { - my $host = CleanXSS($key); - print "" - . ( $_robot_l{$key} ? '' : '' ) . "$host" - . ( $_robot_l{$key} ? '' : '' ); - - if ($DynamicDNSLookup) { - # Dynamic reverse DNS lookup - if ($host =~ /$regipv4/o) { - my $lookupresult=lc(gethostbyaddr(pack("C4",split(/\./,$host)),AF_INET)); # This may be slow - if (! $lookupresult || $lookupresult =~ /$regipv4/o || ! IsAscii($lookupresult)) { - if ( $DynamicDNSLookup == 2 ) { - # Check static DNS file - $lookupresult = $MyDNSTable{$host}; - if ($lookupresult) { print " ($lookupresult)"; } - else { print ""; } - } - else { print ""; } - } - else { print " ($lookupresult)"; } - } - } - - print ""; - &HTMLShowHostInfo($key); - if ( $ShowHostsStats =~ /P/i ) { - print "" - . ( $_host_p{$key} ? Format_Number($_host_p{$key}) : " " ) - . ""; - } - if ( $ShowHostsStats =~ /H/i ) { - print "".Format_Number($_host_h{$key}).""; - } - if ( $ShowHostsStats =~ /B/i ) { - print "" . Format_Bytes( $_host_k{$key} ) . ""; - } - if ( $ShowHostsStats =~ /L/i ) { - print "" - . ( - $_host_l{$key} - ? Format_Date( $_host_l{$key}, 1 ) - : '-' - ) - . ""; - } - print "\n"; - $total_p += $_host_p{$key}; - $total_h += $_host_h{$key}; - $total_k += $_host_k{$key} || 0; - $count++; - } - if ($Debug) { - debug( -"Total real / shown : $TotalPages / $total_p - $TotalHits / $total_h - $TotalBytes / $total_h", - 2 - ); - } - $rest_p = $TotalPages - $total_p; - $rest_h = $TotalHits - $total_h; - $rest_k = $TotalBytes - $total_k; - if ( $rest_p > 0 || $rest_h > 0 || $rest_k > 0 ) - { # All other visitors (known or not) - print -"$Message[2]"; - &HTMLShowHostInfo(''); - if ( $ShowHostsStats =~ /P/i ) { - print "" . ( $rest_p ? Format_Number($rest_p) : " " ) . ""; - } - if ( $ShowHostsStats =~ /H/i ) { print "".Format_Number($rest_h).""; } - if ( $ShowHostsStats =~ /B/i ) { - print "" . Format_Bytes($rest_k) . ""; - } - if ( $ShowHostsStats =~ /L/i ) { print " "; } - print "\n"; - } - &tab_end(); - &html_end(1); -} - -#------------------------------------------------------------------------------ -# Function: Prints the Domains details frame or static page -# Parameters: _ -# Input: _ -# Output: HTML -# Return: - -#------------------------------------------------------------------------------ -sub HTMLShowDomains{ - my $total_p = 0; - my $total_h = 0; - my $total_k = 0; - my $total_v = 0; - my $total_u = 0; - my $rest_p = 0; - my $rest_h = 0; - my $rest_k = 0; - my $rest_v = 0; - my $rest_u = 0; - print "$Center 
    \n"; - - # Show domains list - my $title = ''; - my $cpt = 0; - if ( $HTMLOutput{'alldomains'} ) { - $title .= "$Message[25]"; - $cpt = ( scalar keys %_domener_h ); - } - &tab_head( "$title", 19, 0, 'domains' ); - print -" $Message[17]"; - if ( $ShowDomainsStats =~ /U/i ) { - print - "$Message[11]"; - } - if ( $ShowDomainsStats =~ /V/i ) { - print - "$Message[10]"; - } - if ( $ShowDomainsStats =~ /P/i ) { - print - "$Message[56]"; - } - if ( $ShowDomainsStats =~ /H/i ) { - print - "$Message[57]"; - } - if ( $ShowDomainsStats =~ /B/i ) { - print -"$Message[75]"; - } - print " "; - print "\n"; - $total_u = $total_v = $total_p = $total_h = $total_k = 0; - my $max_h = 1; - foreach ( values %_domener_h ) { - if ( $_ > $max_h ) { $max_h = $_; } - } - my $max_k = 1; - foreach ( values %_domener_k ) { - if ( $_ > $max_k ) { $max_k = $_; } - } - my $count = 0; - &BuildKeyList( $MaxRowsInHTMLOutput, 1, \%_domener_h, - \%_domener_p ); - foreach my $key (@keylist) { - my ( $_domener_u, $_domener_v ); - my $bredde_p = 0; - my $bredde_h = 0; - my $bredde_k = 0; - if ( $max_h > 0 ) { - $bredde_p = - int( $BarWidth * $_domener_p{$key} / $max_h ) + 1; - } # use max_h to enable to compare pages with hits - if ( $_domener_p{$key} && $bredde_p == 1 ) { $bredde_p = 2; } - if ( $max_h > 0 ) { - $bredde_h = - int( $BarWidth * $_domener_h{$key} / $max_h ) + 1; - } - if ( $_domener_h{$key} && $bredde_h == 1 ) { $bredde_h = 2; } - if ( $max_k > 0 ) { - $bredde_k = - int( $BarWidth * ( $_domener_k{$key} || 0 ) / $max_k ) + - 1; - } - if ( $_domener_k{$key} && $bredde_k == 1 ) { $bredde_k = 2; } - my $newkey = lc($key); - if ( $newkey eq 'ip' || !$DomainsHashIDLib{$newkey} ) { - print -"$Message[0]$newkey"; - } - else { - print -"$DomainsHashIDLib{$newkey}$newkey"; - } - ## to add unique visitors and number of visits, by Josep Ruano @ CAPSiDE - if ( $ShowDomainsStats =~ /U/i ) { - $_domener_u = ( - $_domener_p{$key} - ? $_domener_p{$key} / $TotalPages - : 0 - ); - $_domener_u += ( $_domener_h{$key} / $TotalHits ); - $_domener_u = - sprintf( "%.0f", ( $_domener_u * $TotalUnique ) / 2 ); - print "".Format_Number($_domener_u)." (" - . sprintf( "%.1f%", 100 * $_domener_u / $TotalUnique ) - . ")"; - } - if ( $ShowDomainsStats =~ /V/i ) { - $_domener_v = ( - $_domener_p{$key} - ? $_domener_p{$key} / $TotalPages - : 0 - ); - $_domener_v += ( $_domener_h{$key} / $TotalHits ); - $_domener_v = - sprintf( "%.0f", ( $_domener_v * $TotalVisits ) / 2 ); - print "".Format_Number($_domener_v)." (" - . sprintf( "%.1f%", 100 * $_domener_v / $TotalVisits ) - . ")"; - } - if ( $ShowDomainsStats =~ /P/i ) { - print "".Format_Number($_domener_p{$key}).""; - } - if ( $ShowDomainsStats =~ /H/i ) { - print "".Format_Number($_domener_h{$key}).""; - } - if ( $ShowDomainsStats =~ /B/i ) { - print "" . Format_Bytes( $_domener_k{$key} ) . ""; - } - print ""; - if ( $ShowDomainsStats =~ /P/i ) { - print -"
    \n"; - } - if ( $ShowDomainsStats =~ /H/i ) { - print -"
    \n"; - } - if ( $ShowDomainsStats =~ /B/i ) { - print -""; - } - print ""; - print "\n"; - $total_u += $_domener_u; - $total_v += $_domener_v; - $total_p += $_domener_p{$key}; - $total_h += $_domener_h{$key}; - $total_k += $_domener_k{$key} || 0; - $count++; - } - my $rest_u = $TotalUnique - $total_u; - my $rest_v = $TotalVisits - $total_v; - $rest_p = $TotalPages - $total_p; - $rest_h = $TotalHits - $total_h; - $rest_k = $TotalBytes - $total_k; - if ( $rest_u > 0 - || $rest_v > 0 - || $rest_p > 0 - || $rest_h > 0 - || $rest_k > 0 ) - { # All other domains (known or not) - print -" $Message[2]"; - if ( $ShowDomainsStats =~ /U/i ) { print "$rest_u"; } - if ( $ShowDomainsStats =~ /V/i ) { print "$rest_v"; } - if ( $ShowDomainsStats =~ /P/i ) { print "$rest_p"; } - if ( $ShowDomainsStats =~ /H/i ) { print "$rest_h"; } - if ( $ShowDomainsStats =~ /B/i ) { - print "" . Format_Bytes($rest_k) . ""; - } - print " "; - print "\n"; - } - &tab_end(); - &html_end(1); -} - -#------------------------------------------------------------------------------ -# Function: Prints the Downloads code frame or static page -# Parameters: _ -# Input: _ -# Output: HTML -# Return: - -#------------------------------------------------------------------------------ -sub HTMLShowDownloads{ - my $regext = qr/\.(\w{1,6})$/; - print "$Center 
    \n"; - &tab_head( $Message[178], 19, 0, "downloads" ); - print "$Message[178]"; - if ( $ShowFileTypesStats =~ /H/i ){print "$Message[57]" - ."206 $Message[57]"; } - if ( $ShowFileTypesStats =~ /B/i ){ - print "$Message[75]"; - print "$Message[106]"; - } - print "\n"; - my $count = 0; - for my $u (sort {$_downloads{$b}->{'AWSTATS_HITS'} <=> $_downloads{$a}->{'AWSTATS_HITS'}}(keys %_downloads) ){ - print ""; - my $ext = Get_Extension($regext, $u); - if ( !$ext) { - print ""; - } - else { - my $nameicon = $MimeHashLib{$ext}[0] || "notavailable"; - my $nametype = $MimeHashFamily{$MimeHashLib{$ext}[0]} || " "; - print ""; - } - print ""; - &HTMLShowURLInfo($u); - print ""; - if ( $ShowFileTypesStats =~ /H/i ){ - print "".Format_Number($_downloads{$u}->{'AWSTATS_HITS'}).""; - print "".Format_Number($_downloads{$u}->{'AWSTATS_206'}).""; - } - if ( $ShowFileTypesStats =~ /B/i ){ - print "".Format_Bytes($_downloads{$u}->{'AWSTATS_SIZE'}).""; - print "".Format_Bytes(($_downloads{$u}->{'AWSTATS_SIZE'}/ - ($_downloads{$u}->{'AWSTATS_HITS'} + $_downloads{$u}->{'AWSTATS_206'}))).""; - } - print "\n"; - $count++; - if ($count >= $MaxRowsInHTMLOutput){last;} - } - &tab_end(); - &html_end(1); -} - -#------------------------------------------------------------------------------ -# Function: Prints the Summary section at the top of the main page +# Function: Prints the Summary section at the top of the main page # Parameters: _ # Input: _ # Output: HTML @@ -13374,9 +12692,10 @@ sub HTMLShowDownloads{ #------------------------------------------------------------------------------ sub HTMLMainSummary{ if ($Debug) { debug( "ShowSummary", 2 ); } - # FirstTime LastTime + my $FirstTime = 0; my $LastTime = 0; + foreach my $key ( keys %FirstTime ) { my $keyqualified = 0; if ( $MonthRequired eq 'all' ) { $keyqualified = 1; } @@ -13392,10 +12711,6 @@ sub HTMLMainSummary{ } } } - - #print "$Center 
    \n"; - my $title = "$Message[128]"; - &tab_head( "$title", 0, 0, 'month' ); my $NewLinkParams = ${QueryString}; $NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i; @@ -13406,6 +12721,7 @@ sub HTMLMainSummary{ $NewLinkParams =~ s/(&|&)+/&/i; $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; + if ($NewLinkParams) { $NewLinkParams = "${NewLinkParams}&"; } my $NewLinkTarget = ''; @@ -13413,598 +12729,443 @@ sub HTMLMainSummary{ $NewLinkTarget = " target=\"_parent\""; } - # Ratio - my $RatioVisits = 0; - my $RatioPages = 0; - my $RatioHits = 0; - my $RatioBytes = 0; - if ( $TotalUnique > 0 ) { - $RatioVisits = int( $TotalVisits / $TotalUnique * 100 ) / 100; - } - if ( $TotalVisits > 0 ) { - $RatioPages = int( $TotalPages / $TotalVisits * 100 ) / 100; - } - if ( $TotalVisits > 0 ) { - $RatioHits = int( $TotalHits / $TotalVisits * 100 ) / 100; - } - if ( $TotalVisits > 0 ) { - $RatioBytes = - int( ( $TotalBytes / 1024 ) * 100 / - ( $LogType eq 'M' ? $TotalHits : $TotalVisits ) ) / 100; - } - - my $colspan = 5; - my $w = '20'; - if ( $LogType eq 'W' || $LogType eq 'S' ) { - $w = '17'; - $colspan = 6; - } + # Show main indicators title row + print '
    '; # Show first/last - print ""; - print -"$Message[133]\n"; - print( $MonthRequired eq 'all' - ? "$Message[6] $YearRequired" - : "$Message[5] " - . $MonthNumLib{$MonthRequired} - . " $YearRequired" + print '
    ' + . '' . $Message[8] . ' ' . ($FirstTime ? Format_Date($FirstTime, 0) : 'N/A') . '' + . ' - ' . ($MonthRequired eq 'all' ? $YearRequired : $MonthNumLib{$MonthRequired} . ' ' . $YearRequired) . ' - ' + . '' . $Message[9] . ' ' . ($LastTime ? Format_Date( $LastTime, 0 ) : "NA" ) . '' + . '
    '; + print '
    '; + + print (( $ShowSummary =~ /U/i && $LogType ne 'M' ) ? + '
    ' + . '
    $Message[18]
    " + . '
    ' . (($MonthRequired eq 'all') ? '<= ' . Format_Number($TotalUnique) . ' ' . $Message[129] : '' . Format_Number($TotalUnique) . '') . '
    ' + . '
    ' + : '' ); - print "\n"; - print ""; - print "$Message[8]\n"; - print "" - . ( $FirstTime ? Format_Date( $FirstTime, 0 ) : "NA" ) . ""; - print "\n"; - print ""; - print "$Message[9]\n"; - print "" - . ( $LastTime ? Format_Date( $LastTime, 0 ) : "NA" ) - . "\n"; - print "\n"; - # Show main indicators title row - print ""; - if ( $LogType eq 'W' || $LogType eq 'S' ) { - print " "; - } - if ( $ShowSummary =~ /U/i ) { - print "$Message[11]"; - } - else { - print -" "; - } - if ( $ShowSummary =~ /V/i ) { - print "$Message[10]"; - } - else { - print -" "; - } - if ( $ShowSummary =~ /P/i ) { - print "$Message[56]"; - } - else { - print -" "; - } - if ( $ShowSummary =~ /H/i ) { - print "$Message[57]"; - } - else { - print -" "; - } - if ( $ShowSummary =~ /B/i ) { - print "$Message[75]"; - } - else { - print -" "; - } - print "\n"; + print (( $ShowSummary =~ /V/i && $LogType ne 'M' ) ? + '
    ' + . '
    $Message[10]
    " + . '
    ' . Format_Number($TotalVisits) . '
    ' + . '
    ' + : '' + ); + + print (( $ShowSummary =~ /P/i && $LogType ne 'M' ) ? + '
    ' + . '
    " . ucfirst($Message[28]) . "
    " + . '
    ' . Format_Number($TotalPages) . '
    ' + . '
    ' . Format_Number($TotalNotViewedPages) . ' *' . $Message[( $LogType eq 'M' ) ? 166 : 161] . '
    ' + . '
    ' + : '' + ); - # Show main indicators values for viewed traffic - print ""; - if ( $LogType eq 'M' ) { - print "$Message[165]"; - print " 
     \n"; - print " 
     \n"; - if ( $ShowSummary =~ /H/i ) { - print "".Format_Number($TotalHits)."" - . ( - $LogType eq 'M' - ? "" - : "
    ($RatioHits " - . lc( $Message[57] . "/" . $Message[12] ) . ")" - ) - . ""; - } - else { print " "; } - if ( $ShowSummary =~ /B/i ) { - print "" - . Format_Bytes( int($TotalBytes) ) - . "
    ($RatioBytes $Message[108]/" - . $Message[ ( $LogType eq 'M' ? 149 : 12 ) ] - . ")"; - } - else { print " "; } - } - else { - if ( $LogType eq 'W' || $LogType eq 'S' ) { - print "$Message[160] *"; - } - if ( $ShowSummary =~ /U/i ) { - print "" - . ( - $MonthRequired eq 'all' - ? "<= ".Format_Number($TotalUnique)."
    $Message[129]" - : "".Format_Number($TotalUnique)."
     " - ) - . ""; - } - else { print " "; } - if ( $ShowSummary =~ /V/i ) { - print -"".Format_Number($TotalVisits)."
    ($RatioVisits $Message[52])"; - } - else { print " "; } - if ( $ShowSummary =~ /P/i ) { - print "".Format_Number($TotalPages)."
    ($RatioPages " - . $Message[56] . "/" - . $Message[12] - . ")"; - } - else { print " "; } - if ( $ShowSummary =~ /H/i ) { - print "".Format_Number($TotalHits)."" - . ( - $LogType eq 'M' - ? "" - : "
    ($RatioHits " - . $Message[57] . "/" - . $Message[12] . ")" - ) - . ""; - } - else { print " "; } - if ( $ShowSummary =~ /B/i ) { - print "" - . Format_Bytes( int($TotalBytes) ) - . "
    ($RatioBytes $Message[108]/" - . $Message[ ( $LogType eq 'M' ? 149 : 12 ) ] - . ")"; - } - else { print " "; } - } - print "\n"; + print (( $ShowSummary =~ /H/i ) ? + '
    ' + . '
    $Message[57]
    " + . '
    ' + . '
    '.Format_Number($TotalHits).'
    ' + . '
    ' + . '
    ' . Format_Number($TotalNotViewedHits) . ' *' . $Message[( $LogType eq 'M' ) ? 166 : 161] . '
    ' + . '
    ' + : '' + ); - # Show main indicators values for not viewed traffic values - if ( $LogType eq 'M' || $LogType eq 'W' || $LogType eq 'S' ) { - print ""; - if ( $LogType eq 'M' ) { - print "$Message[166]"; - print " 
     \n"; - print " 
     \n"; - if ( $ShowSummary =~ /H/i ) { - print "".Format_Number($TotalNotViewedHits).""; - } - else { print " "; } - if ( $ShowSummary =~ /B/i ) { - print "" - . Format_Bytes( int($TotalNotViewedBytes) ) - . ""; - } - else { print " "; } - } - else { - if ( $LogType eq 'W' || $LogType eq 'S' ) { - print "$Message[161] *"; - } - print " 
     \n"; - if ( $ShowSummary =~ /P/i ) { - print "".Format_Number($TotalNotViewedPages).""; - } - else { print " "; } - if ( $ShowSummary =~ /H/i ) { - print "".Format_Number($TotalNotViewedHits).""; - } - else { print " "; } - if ( $ShowSummary =~ /B/i ) { - print "" - . Format_Bytes( int($TotalNotViewedBytes) ) - . ""; - } - else { print " "; } - } - print "\n"; - } - &tab_end($LogType eq 'W' - || $LogType eq 'S' ? "* $Message[159]" : "" ); + print (( $ShowSummary =~ /B/i ) ? + '
    ' + . '
    $Message[75]
    " + . '
    ' + . '
    ' . Format_Bytes( int($TotalBytes) ) . '
    ' + . '
    ' + . '
    ' . Format_Bytes( int($TotalNotViewedBytes) ) . ' *' . $Message[( $LogType eq 'M' ) ? 166 : 161] . '
    ' + . '
    ' + : '' + ); + + print '
    ' . '
    '; } #------------------------------------------------------------------------------ -# Function: Prints the Monthly section on the main page -# Parameters: _ -# Input: _ -# Output: HTML -# Return: - +# Function: Return Data table footer with sums +# Parameters: string $title, string $config, hash $sums, string $averageTitle, int $average +# Output: _ +# Return: string +#------------------------------------------------------------------------------ +sub HTMLDataTableFooter { + my $sumTitle = shift; + my $config = shift; + my $sums = shift; + my %ref_sums = %{ $sums }; + my $averageTitle = shift; + my $averages = shift; + my %ref_averages = %{ $averages }; + + return '' + . '' + . '' . $sumTitle . '' + . ( ( $config =~ /U/i ) ? HTMLDataCellWithBar('u', 200, $ref_sums{'u'}, 100) : '' ) + . ( ( $config =~ /V/i ) ? HTMLDataCellWithBar('v', 200, $ref_sums{'v'}, 100) : '' ) + . ( ( $config =~ /P/i ) ? HTMLDataCellWithBar('p', 200, $ref_sums{'p'}, 100) : '' ) + . ( ( $config =~ /H/i ) ? HTMLDataCellWithBar('h', 200, $ref_sums{'h'}, 100) : '' ) + . ( ( $config =~ /B/i ) ? HTMLDataCellWithBar('b', 200, $ref_sums{'b'}, 100) : '' ) + . '' + . '' + . '' . $averageTitle . '' + . ( ( $config =~ /U/i ) ? HTMLDataCellWithBar('u', 0, $ref_averages{'u'}, 100) : '' ) + . ( ( $config =~ /V/i ) ? HTMLDataCellWithBar('v', 0, $ref_averages{'v'}, 100) : '' ) + . ( ( $config =~ /P/i ) ? HTMLDataCellWithBar('p', 0, $ref_averages{'p'}, 100) : '' ) + . ( ( $config =~ /H/i ) ? HTMLDataCellWithBar('h', 0, $ref_averages{'h'}, 100) : '' ) + . ( ( $config =~ /B/i ) ? HTMLDataCellWithBar('b', 0, $ref_averages{'b'}, 100) : '' ) + . '' + . ''; +} + +#------------------------------------------------------------------------------ +# Function: Return Data table header with titles +# Parameters: string $title, string $config +# Output: _ +# Return: string +#------------------------------------------------------------------------------ +sub HTMLDataTableHeader{ + my $title = shift; + my $config = shift; + + return '' + . '' . $title . '' + . ( ( $config =~ /U/i ) ? '' . CleanXSS($Message[18]) . '' : '' ) #tooltip 2 + . ( ( $config =~ /V/i ) ? '' . CleanXSS($Message[10]) . '' : '' ) #tooltip 1 + . ( ( $config =~ /P/i ) ? '' . CleanXSS(ucfirst($Message[28])) . '' : '' ) #tooltip 3 + . ( ( $config =~ /H/i ) ? '' . CleanXSS($Message[57]) . '' : '' ) #tooltip 4 + . ( ( $config =~ /B/i ) ? '' . CleanXSS($Message[75]) . '' : '' ) #tooltip 5 + . ( ( $config =~ /L/i ) ? '' . CleanXSS($Message[9]) . '' : '' ) + . ( ( $config =~ /C/i ) ? '' . $Message[83] . '
    ' . $Message[100] . '' . $Message[83] . '
    ' . $Message[101] . '' . $Message[99] . '' : '' ) + . ''; +} + +#------------------------------------------------------------------------------ +# Function: Return the Monthly section on the main page +# Parameters: - +# Input: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainMonthly{ + if ($Debug) { debug( "ShowMonthStats", 2 ); } - print "$Center 
    \n"; - my $title = "$Message[162]"; - &tab_head( "$title", 0, 0, 'month' ); - print "\n"; - print "
    \n"; + my $title = $Message[162]; + + my $not_empty_months = 0; my $average_nb = my $average_u = my $average_v = my $average_p = 0; my $average_h = my $average_k = 0; my $total_u = my $total_v = my $total_p = my $total_h = my $total_k = 0; - my $max_v = my $max_p = my $max_h = my $max_k = 1; - + my $max_u = my $max_v = my $max_p = my $max_h = my $max_k = 1; + + my $height = 0; + my $bars = ''; + my $width = 'var(--bar-v-width-month)'; + my $data = ''; + my $tableData = ''; + my $html = ''; + + my @blocklabel = (); + my @vallabel = ( + $Message[11], $Message[10], + ucfirst($Message[28]), $Message[57], + $Message[75] + ); + my @valcolor = ( $color_u, $color_v, $color_p, $color_h, $color_k ); + my @valmax = ( $max_v, $max_v, $max_h, $max_h, $max_k ); + my @valtotal = ( $total_u, $total_v, $total_p, $total_h, $total_k ); + my @valaverage = (); + my @valdata = (); + my $xx = 0; + + my $graphPlugin = (%{ $PluginsLoaded{'ShowGraph'} }) ? 1 : 0; + # Define total and max - for ( my $ix = 1 ; $ix <= 12 ; $ix++ ) { + for ( my $ix = 1 ; $ix <= 12 ; $ix++ ) + { my $monthix = sprintf( "%02s", $ix ); + $total_u += $MonthUnique{ $YearRequired . $monthix } || 0; $total_v += $MonthVisits{ $YearRequired . $monthix } || 0; $total_p += $MonthPages{ $YearRequired . $monthix } || 0; $total_h += $MonthHits{ $YearRequired . $monthix } || 0; $total_k += $MonthBytes{ $YearRequired . $monthix } || 0; -#if (($MonthUnique{$YearRequired.$monthix}||0) > $max_v) { $max_v=$MonthUnique{$YearRequired.$monthix}; } - if ( - ( $MonthVisits{ $YearRequired . $monthix } || 0 ) > $max_v ) + $max_u = (( $MonthUnique{ $YearRequired . $monthix } || 0 ) > $max_u ) ? $MonthUnique{ $YearRequired . $monthix } : $max_u; + + $max_v = (( $MonthVisits{ $YearRequired . $monthix } || 0 ) > $max_v ) ? $MonthVisits{ $YearRequired . $monthix } : $max_v; + + $max_p = (($MonthPages{$YearRequired.$monthix}||0) > $max_p) ? $MonthPages{$YearRequired.$monthix} : $max_p; + + $max_h = (( $MonthHits{ $YearRequired . $monthix } || 0 ) > $max_h ) ? $MonthHits{ $YearRequired . $monthix } : $max_h; + + $max_k = (( $MonthBytes{ $YearRequired . $monthix } || 0 ) > $max_k ) ? $MonthBytes{ $YearRequired . $monthix } : $max_k; + } + + # Set table datas + for ( my $ix = 1 ; $ix <= 12 ; $ix++ ) + { + my $monthix = sprintf( "%02s", $ix ); + + if($MonthHits{ $YearRequired . $monthix } > 0) { - $max_v = $MonthVisits{ $YearRequired . $monthix }; + $not_empty_months++; } -#if (($MonthPages{$YearRequired.$monthix}||0) > $max_p) { $max_p=$MonthPages{$YearRequired.$monthix}; } - if ( ( $MonthHits{ $YearRequired . $monthix } || 0 ) > $max_h ) - { - $max_h = $MonthHits{ $YearRequired . $monthix }; + if ($graphPlugin == 1) { + + $valdata[ $xx++ ] = $MonthUnique{ $YearRequired . $monthix } || 0; + $valdata[ $xx++ ] = $MonthVisits{ $YearRequired . $monthix } || 0; + $valdata[ $xx++ ] = $MonthPages{ $YearRequired . $monthix } || 0; + $valdata[ $xx++ ] = $MonthHits{ $YearRequired . $monthix } || 0; + $valdata[ $xx++ ] = $MonthBytes{ $YearRequired . $monthix } || 0; + + push @blocklabel, "$MonthNumLib{$monthix}\n$YearRequired"; + } - if ( ( $MonthBytes{ $YearRequired . $monthix } || 0 ) > $max_k ) + + $bars .= ''; + + $tableData .= '' + . '' + . (!$StaticLinks && $monthix == $nowmonth && $YearRequired == $nowyear ? '' : '' ) + . $MonthNumLib{$monthix} + . (!$StaticLinks && $monthix == $nowmonth && $YearRequired == $nowyear ? '' : '' ) + . ''; + + if ( $ShowMonthStats =~ /U/i ) { - $max_k = $MonthBytes{ $YearRequired . $monthix }; - } - } + $data = int($MonthUnique{ $YearRequired . $monthix } || 0 ); - # Define average - # TODO + $bars .= HtmlBar('u', $data, Format_Number($data), $max_u, $Message[11], $width); - # Show bars for month - my $graphdone=0; - foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) - { - my @blocklabel = (); - for ( my $ix = 1 ; $ix <= 12 ; $ix++ ) { - my $monthix = sprintf( "%02s", $ix ); - push @blocklabel, - "$MonthNumLib{$monthix}\n$YearRequired"; - } - my @vallabel = ( - "$Message[11]", "$Message[10]", - "$Message[56]", "$Message[57]", - "$Message[75]" - ); - my @valcolor = - ( "$color_u", "$color_v", "$color_p", "$color_h", - "$color_k" ); - my @valmax = ( $max_v, $max_v, $max_h, $max_h, $max_k ); - my @valtotal = - ( $total_u, $total_v, $total_p, $total_h, $total_k ); - my @valaverage = (); - - #my @valaverage=($average_v,$average_p,$average_h,$average_k); - my @valdata = (); - my $xx = 0; - for ( my $ix = 1 ; $ix <= 12 ; $ix++ ) { - my $monthix = sprintf( "%02s", $ix ); - $valdata[ $xx++ ] = $MonthUnique{ $YearRequired . $monthix } - || 0; - $valdata[ $xx++ ] = $MonthVisits{ $YearRequired . $monthix } - || 0; - $valdata[ $xx++ ] = $MonthPages{ $YearRequired . $monthix } - || 0; - $valdata[ $xx++ ] = $MonthHits{ $YearRequired . $monthix } - || 0; - $valdata[ $xx++ ] = $MonthBytes{ $YearRequired . $monthix } - || 0; + $tableData .= HTMLDataCellWithBar('u', $data, Format_Number($data), $max_u); } - - my $function = "ShowGraph_$pluginname"; - &$function( - "$title", "month", - $ShowMonthStats, \@blocklabel, - \@vallabel, \@valcolor, - \@valmax, \@valtotal, - \@valaverage, \@valdata - ); - $graphdone=1; - } - if (! $graphdone) - { - print "\n"; - print ""; - print "\n"; - for ( my $ix = 1 ; $ix <= 12 ; $ix++ ) { - my $monthix = sprintf( "%02s", $ix ); - my $bredde_u = 0; - my $bredde_v = 0; - my $bredde_p = 0; - my $bredde_h = 0; - my $bredde_k = 0; - if ( $max_v > 0 ) { - $bredde_u = - int( - ( $MonthUnique{ $YearRequired . $monthix } || 0 ) / - $max_v * $BarHeight ) + 1; - } - if ( $max_v > 0 ) { - $bredde_v = - int( - ( $MonthVisits{ $YearRequired . $monthix } || 0 ) / - $max_v * $BarHeight ) + 1; - } - if ( $max_h > 0 ) { - $bredde_p = - int( - ( $MonthPages{ $YearRequired . $monthix } || 0 ) / - $max_h * $BarHeight ) + 1; - } - if ( $max_h > 0 ) { - $bredde_h = - int( ( $MonthHits{ $YearRequired . $monthix } || 0 ) / - $max_h * $BarHeight ) + 1; - } - if ( $max_k > 0 ) { - $bredde_k = - int( - ( $MonthBytes{ $YearRequired . $monthix } || 0 ) / - $max_k * $BarHeight ) + 1; - } - print "\n"; + + if ( $ShowMonthStats =~ /V/i ) + { + $data = int($MonthVisits{ $YearRequired . $monthix } || 0 ); + + $bars .= HtmlBar('v', $data, Format_Number($data), $max_v, $Message[10], $width); + + $tableData .= HTMLDataCellWithBar('v', $data, Format_Number($data), $max_v); } - print ""; - print "\n"; - # Show lib for month - print ""; + if ( $ShowMonthStats =~ /P/i ) + { + $data = int($MonthPages{ $YearRequired . $monthix } || 0 ); - #if (!$StaticLinks) { - # print ""; - #} - #else { - print ""; + $bars .= HtmlBar('p', $data, Format_Number($data), $max_p, ucfirst($Message[28]), $width); - # } - for ( my $ix = 1 ; $ix <= 12 ; $ix++ ) { - my $monthix = sprintf( "%02s", $ix ); + $tableData .= HTMLDataCellWithBar('p', $data, Format_Number($data), $max_p); + } -# if (!$StaticLinks) { -# print ""; -# } -# else { - print ""; + if ( $ShowMonthStats =~ /H/i ) + { + $data = int($MonthHits{ $YearRequired . $monthix } || 0 ); - # } + $bars .= HtmlBar('h', $data, Format_Number($data), $max_h, $Message[57], $width); + + $tableData .= HTMLDataCellWithBar('h', $data, Format_Number($data), $max_h); } -# if (!$StaticLinks) { -# print ""; -# } -# else { - print ""; + if ( $ShowMonthStats =~ /B/i ) + { + $data = int($MonthBytes{ $YearRequired . $monthix } || 0 ); - # } - print "\n"; - print "
     "; - if ( $ShowMonthStats =~ /U/i ) { - print -""; - } - if ( $ShowMonthStats =~ /V/i ) { - print -""; - } - if ( $ShowMonthStats =~ /P/i ) { - print -""; - } - if ( $ShowMonthStats =~ /H/i ) { - print -""; - } - if ( $ShowMonthStats =~ /B/i ) { - print -""; - } - print " 
    << $MonthNumLib{$monthix}
    $YearRequired
    " - . ( - !$StaticLinks - && $monthix == $nowmonth - && $YearRequired == $nowyear - ? '' - : '' - ); - print "$MonthNumLib{$monthix}
    $YearRequired"; - print( !$StaticLinks - && $monthix == $nowmonth - && $YearRequired == $nowyear ? '
    ' : '' ); - print "
    >> 
    \n"; - } - print "
    \n"; + $bars .= HtmlBar('b', $data, Format_Bytes($data), $max_k, $Message[75], $width); - # Show data array for month - if ($AddDataArrayMonthStats) { - print "\n"; - print -""; - if ( $ShowMonthStats =~ /U/i ) { - print ""; - } - if ( $ShowMonthStats =~ /V/i ) { - print ""; - } - if ( $ShowMonthStats =~ /P/i ) { - print ""; - } - if ( $ShowMonthStats =~ /H/i ) { - print ""; - } - if ( $ShowMonthStats =~ /B/i ) { - print ""; + $tableData .= HTMLDataCellWithBar('b', $data, Format_Bytes($data), $max_k); } - print "\n"; - for ( my $ix = 1 ; $ix <= 12 ; $ix++ ) { - my $monthix = sprintf( "%02s", $ix ); - print ""; - print ""; - if ( $ShowMonthStats =~ /U/i ) { - print ""; - } - if ( $ShowMonthStats =~ /V/i ) { - print ""; - } - if ( $ShowMonthStats =~ /P/i ) { - print ""; - } - if ( $ShowMonthStats =~ /H/i ) { - print ""; - } - if ( $ShowMonthStats =~ /B/i ) { - print ""; - } - print "\n"; + + $bars .= ''; + $tableData .= ''; + } + + # Define average + $average_u = sprintf( "%.2f", $total_u / $not_empty_months ); + $average_v = sprintf( "%.2f", $total_v / $not_empty_months ); + $average_p = sprintf( "%.2f", $total_p / $not_empty_months ); + $average_h = sprintf( "%.2f", $total_h / $not_empty_months ); + $average_k = sprintf( "%.2f", $total_k / $not_empty_months ); + + # Show bars for month + if ($graphPlugin == 1) + { + foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) + { + my @valaverage=($average_v,$average_p,$average_h,$average_k); + + my $function = "ShowGraph_$pluginname"; + &$function( + $title, 'month', + $ShowMonthStats, \@blocklabel, + \@vallabel, \@valcolor, + \@valmax, \@valtotal, + \@valaverage, \@valdata + ); } + } - # Average row - # TODO + $html .= '
    $Message[5]$Message[11]$Message[10]$Message[56]$Message[57]$Message[75]
    " - . ( - !$StaticLinks - && $monthix == $nowmonth - && $YearRequired == $nowyear - ? '' - : '' - ); - print "$MonthNumLib{$monthix} $YearRequired"; - print( !$StaticLinks - && $monthix == $nowmonth - && $YearRequired == $nowyear ? '' : '' ); - print "", - Format_Number($MonthUnique{ $YearRequired . $monthix } - ? $MonthUnique{ $YearRequired . $monthix } - : "0"), "", - Format_Number($MonthVisits{ $YearRequired . $monthix } - ? $MonthVisits{ $YearRequired . $monthix } - : "0"), "", - Format_Number($MonthPages{ $YearRequired . $monthix } - ? $MonthPages{ $YearRequired . $monthix } - : "0"), "", - Format_Number($MonthHits{ $YearRequired . $monthix } - ? $MonthHits{ $YearRequired . $monthix } - : "0"), "", - Format_Bytes( - int( $MonthBytes{ $YearRequired . $monthix } || 0 ) - ), "
    ' . '' . $bars . '' + . ''; + + for ( my $ix = 1 ; $ix <= 12 ; $ix++ ) + { + my $monthix = sprintf( "%02s", $ix ); + + $html .= ''; + } + + $html .= '' . '
    ' + . (!$StaticLinks && $monthix == $nowmonth && $YearRequired == $nowyear ? '' : '') + . "$MonthNumLib{$monthix}" + . (!$StaticLinks && $monthix == $nowmonth && $YearRequired == $nowyear ? '' : '' ) + . '
    '; + + # Show data array for month + if ($AddDataArrayMonthStats) + { # Total row - print -"$Message[102]"; - if ( $ShowMonthStats =~ /U/i ) { - print - "".Format_Number($total_u).""; - } - if ( $ShowMonthStats =~ /V/i ) { - print - "".Format_Number($total_v).""; - } - if ( $ShowMonthStats =~ /P/i ) { - print - "".Format_Number($total_p).""; - } - if ( $ShowMonthStats =~ /H/i ) { - print - "".Format_Number($total_h).""; - } - if ( $ShowMonthStats =~ /B/i ) { - print "" - . Format_Bytes($total_k) . ""; - } - print "\n"; - print "\n
    \n"; + my (%sums) = ( + 'u' => Format_Number($total_u), + 'v'=> Format_Number($total_v), + 'p'=> Format_Number($total_p), + 'h'=> Format_Number($total_h), + 'b'=> Format_Bytes($total_k) + ); + + # Average row + my (%averages) = ( + 'u'=> Format_Number(int($average_u)), + 'v'=> Format_Number(int($average_v)), + 'p'=> Format_Number(int($average_p)), + 'h'=> Format_Number(int($average_h)), + 'b'=> Format_Bytes(int($average_k)) + ); + + $html .= '' + . HTMLDataTableHeader($YearRequired, $ShowMonthStats) + . HTMLDataTableFooter('', $ShowMonthStats, \%sums, $Message[96], \%averages) + . '' . $tableData . '' . '
    '; } - print "
    \n"; - print "\n"; - &tab_end(); + return &tab_head( $title, '', 'month' ) . $html . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the Daily section on the main page +# Function: Return the Ratio section (html) # Parameters: $firstdaytocountaverage, $lastdaytocountaverage -# $firstdaytoshowtime, $lastdaytoshowtime +# $firstdaytoshowtime, $lastdaytoshowtime # Input: _ -# Output: HTML -# Return: - +# Output: _ +# Return: string #------------------------------------------------------------------------------ -sub HTMLMainDaily{ +sub HTMLMainRatios{ + if ($Debug) { debug( 'ShowRatiosStats', 2 ); } + my $firstdaytocountaverage = shift; my $lastdaytocountaverage = shift; my $firstdaytoshowtime = shift; my $lastdaytoshowtime = shift; - - if ($Debug) { debug( "ShowDaysOfMonthStats", 2 ); } - print "$Center 
    \n"; + my $title = $Message[22]; + my $tooltip = ''; + my $total_u = my $total_v = my $total_p = my $total_h = my $total_k = 0; + my @cat; + my $tableData = ''; + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19) . '

    *' . $Message[158]; + } + + foreach my $daycursor ( $firstdaytoshowtime .. $lastdaytoshowtime ) + { + $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; + if ( !DateIsValid( $3, $2, $1 ) ) { next; } # If not an existing day, go to next + my $date = $1 . $2 . $3 ; + $total_v += $DayVisits{$date} || 0; + $total_p += $DayPages{$date} || 0; + $total_h += $DayHits{$date} || 0; + $total_k += $DayBytes{$date} || 0; + } + + if($total_h < 1){return ''}; + + if ( $ShowRatiosStats =~ /U/i ) + { + my $ratio_V_U = ($TotalUnique > 0) ? sprintf('%.2f', Format_Number($total_v / $TotalUnique)) : ''; + my $ratio_P_U = ($TotalUnique > 0) ? sprintf('%.2f', Format_Number($total_p / $TotalUnique)) : ''; + my $ratio_H_U = ($TotalUnique > 0) ? sprintf('%.2f', Format_Number($total_h / $TotalUnique)) : ''; + my $ratio_B_U = ($TotalUnique > 0) ? Format_Bytes($total_k / $TotalUnique) : ''; + push @cat, {'ref' => 'u', 'name' => $Message[18], 'u' => '', 'v' => $ratio_V_U, 'p' => $ratio_P_U, 'h' => $ratio_H_U, 'b' => $ratio_B_U}; + } + + if ( $ShowRatiosStats =~ /V/i ) + { + my $ratio_P_V = ($total_v > 0) ? sprintf('%.2f', Format_Number($total_p / $total_v)) : ''; + my $ratio_H_V = ($total_v > 0) ? sprintf('%.2f', Format_Number($total_h / $total_v)) : ''; + my $ratio_B_V = ($total_v > 0) ? Format_Bytes($total_k / $total_v) : ''; + push @cat, {'ref' => 'v', 'name' => $Message[10], 'u' => '', 'v' => '', 'p' => $ratio_P_V, 'h' => $ratio_H_V, 'b' => $ratio_B_V}; + } + + if ( $ShowRatiosStats =~ /P/i ) + { + my $ratio_H_P = ($total_p > 0) ? sprintf('%.2f', Format_Number($total_h / $total_p)) : ''; + my $ratio_B_P = ($total_p > 0) ? Format_Bytes($total_k / $total_p) : ''; + push @cat, {'ref' => 'p', 'name' => ucfirst($Message[28]), 'u' => '', 'v' => '', 'p' => '', 'h' => $ratio_H_P, 'b' => $ratio_B_P}; + } + + if ( $ShowRatiosStats =~ /H/i ) + { + my $ratio_B_H = ($total_h > 0) ? Format_Bytes($total_k / $total_h) : ''; + push @cat, {'ref' => 'h', 'name' => $Message[57], 'u' => '', 'v' => '', 'p' => '', 'h' => '', 'b' => $ratio_B_H}; + } + + foreach my $hash (@cat){ + $tableData .= '' + . ' / ' . $hash->{'name'} . '' + . HTMLDataCellWithBar($hash->{'ref'}, 0, $hash->{'v'}, 100) + . HTMLDataCellWithBar($hash->{'ref'}, 0, $hash->{'p'}, 100) + . HTMLDataCellWithBar($hash->{'ref'}, 0, $hash->{'h'}, 100) + . HTMLDataCellWithBar($hash->{'ref'}, 0, $hash->{'b'}, 100) + . ''; + } + + return &tab_head( $title, '', 'ratios', $tooltip ) + . '' + . HTMLDataTableHeader($MonthNumLib{$MonthRequired} . ' ' . $YearRequired, 'VPHB') + . '' . $tableData . '
    ' + . &tab_end(); +} + +#------------------------------------------------------------------------------ +# Function: Return the Daily section on the main page +# Parameters: $firstdaytocountaverage, $lastdaytocountaverage +# $firstdaytoshowtime, $lastdaytoshowtime +# Input: - +# Output: - +# Return: string +#------------------------------------------------------------------------------ +sub HTMLMainDaily{ + if ($Debug) { debug( 'ShowDaysOfMonthStats', 2 ); } + + my $firstdaytocountaverage = shift; + my $lastdaytocountaverage = shift; + my $firstdaytoshowtime = shift; + my $lastdaytoshowtime = shift; my $NewLinkParams = ${QueryString}; + $NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i; $NewLinkParams =~ s/(^|&|&)staticlinks(=\w*|$)//i; $NewLinkParams =~ s/(^|&|&)year=[^&]*//i; @@ -14013,879 +13174,461 @@ sub HTMLMainDaily{ $NewLinkParams =~ s/(&|&)+/&/i; $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; + if ($NewLinkParams) { $NewLinkParams = "${NewLinkParams}&"; } + my $NewLinkTarget = ''; - - if ( $FrameName eq 'mainright' ) { - $NewLinkTarget = " target=\"_parent\""; - } - my $title = "$Message[138]"; - - if ($AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title = "$title   -   $Message[179]"); - } - - &tab_head( "$title", 0, 0, 'daysofmonth' ); - print ""; - print "\n"; - print "
    \n"; - + my $not_empty_days = 0; my $average_v = my $average_p = 0; my $average_h = my $average_k = 0; my $total_u = my $total_v = my $total_p = my $total_h = my $total_k = 0; - my $max_v = my $max_h = my $max_k = 0; # Start from 0 because can be lower than 1 + my $max_v = my $max_p = my $max_h = my $max_k = 0; # Start from 0 because can be lower than 1 + my $height = 0; + my $width = 'var(--bar-v-width-daily)'; + my $bars = ''; + my $data = ''; + my $tableData = ''; + my $html = ''; + + my @blocklabel = (); + my @valcolor = ("$color_v", "$color_p", "$color_h", "$color_k" ); + my @valmax = ($max_v, $max_h, $max_h, $max_k ); + my @valtotal = ($total_v, $total_p, $total_h, $total_k ); + my @valaverage = ($average_v, $average_p, $average_h, $average_k ); + my @valdata = (); + my $xx = 0; + my @vallabel = ($Message[10], ucfirst($Message[28]), $Message[57], $Message[75]); + + if ( $FrameName eq 'mainright' ) + { + $NewLinkTarget = ' target="_parent"'; + } + + my $graphPlugin = (%{ $PluginsLoaded{'ShowGraph'} }) ? 1 : 0; + + if ($AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + $title = "$title   -   $Message[179]" + ); + } + foreach my $daycursor ( $firstdaytoshowtime .. $lastdaytoshowtime ) { $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; my $year = $1; my $month = $2; my $day = $3; - if ( !DateIsValid( $day, $month, $year ) ) { - next; - } # If not an existing day, go to next - $total_v += $DayVisits{ $year . $month . $day } || 0; - $total_p += $DayPages{ $year . $month . $day } || 0; - $total_h += $DayHits{ $year . $month . $day } || 0; - $total_k += $DayBytes{ $year . $month . $day } || 0; - if ( ( $DayVisits{ $year . $month . $day } || 0 ) > $max_v ) { - $max_v = $DayVisits{ $year . $month . $day }; - } + my $date = $year . $month . $day; -#if (($DayPages{$year.$month.$day}||0) > $max_p) { $max_p=$DayPages{$year.$month.$day}; } - if ( ( $DayHits{ $year . $month . $day } || 0 ) > $max_h ) { - $max_h = $DayHits{ $year . $month . $day }; - } - if ( ( $DayBytes{ $year . $month . $day } || 0 ) > $max_k ) { - $max_k = $DayBytes{ $year . $month . $day }; - } + if ( !DateIsValid( $3, $2, $1 ) ) { next; } # If not an existing day, go to next + + if($DayHits{ $date } > 0){ $not_empty_days++; } + + $total_v += $DayVisits{ $date } || 0; + $total_p += $DayPages{ $date } || 0; + $total_h += $DayHits{ $date } || 0; + $total_k += $DayBytes{ $date } || 0; + + $max_v = ( ( $DayVisits{ $date } || 0 ) > $max_v ) ? $DayVisits{ $date } : $max_v; + + $max_p = ( ( $DayPages{$date } ||0) > $max_p) ? $DayPages{$date} : $max_p; + + $max_h = ( ( $DayHits{ $date } || 0 ) > $max_h ) ? $DayHits{ $date } : $max_h; + + $max_k = ( ( $DayBytes{ $date } || 0 ) > $max_k ) ? $DayBytes{ $date } : $max_k; } - $average_v = sprintf( "%.2f", $AverageVisits ); - $average_p = sprintf( "%.2f", $AveragePages ); - $average_h = sprintf( "%.2f", $AverageHits ); - $average_k = sprintf( "%.2f", $AverageBytes ); - # Show bars for day - my $graphdone=0; - foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) + $average_v = sprintf( "%.2f", $total_v / $not_empty_days ); + $average_p = sprintf( "%.2f", $total_p / $not_empty_days ); + $average_h = sprintf( "%.2f", $total_h / $not_empty_days ); + $average_k = sprintf( "%.2f", $total_k / $not_empty_days ); + + foreach my $daycursor ( $firstdaytoshowtime .. $lastdaytoshowtime ) { - my @blocklabel = (); - foreach my $daycursor ( $firstdaytoshowtime .. $lastdaytoshowtime ) - { - $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; - my $year = $1; - my $month = $2; - my $day = $3; - if ( !DateIsValid( $day, $month, $year ) ) { - next; - } # If not an existing day, go to next - my $bold = - ( $day == $nowday - && $month == $nowmonth - && $year == $nowyear ? ':' : '' ); - my $weekend = - ( DayOfWeek( $day, $month, $year ) =~ /[06]/ ? '!' : '' ); - push @blocklabel, - "$day\n$MonthNumLib{$month}$weekend$bold"; - } - my @vallabel = ( - "$Message[10]", "$Message[56]", - "$Message[57]", "$Message[75]" - ); - my @valcolor = - ( "$color_v", "$color_p", "$color_h", "$color_k" ); - my @valmax = ( $max_v, $max_h, $max_h, $max_k ); - my @valtotal = ( $total_v, $total_p, $total_h, $total_k ); - my @valaverage = - ( $average_v, $average_p, $average_h, $average_k ); - my @valdata = (); - my $xx = 0; - - foreach my $daycursor ( $firstdaytoshowtime .. $lastdaytoshowtime ) + $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; + my $year = $1; + my $month = $2; + my $day = $3; + my $date = $year . $month . $day; + + if ( !DateIsValid( $3, $2, $1 ) ) { next; } # If not an existing day, go to next + + my $dayofweekcursor = DayOfWeek( $day, $month, $year ); + + if ($graphPlugin == 1) { - $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; - my $year = $1; - my $month = $2; - my $day = $3; - if ( !DateIsValid( $day, $month, $year ) ) { - next; - } # If not an existing day, go to next - $valdata[ $xx++ ] = $DayVisits{ $year . $month . $day } - || 0; - $valdata[ $xx++ ] = $DayPages{ $year . $month . $day } || 0; - $valdata[ $xx++ ] = $DayHits{ $year . $month . $day } || 0; - $valdata[ $xx++ ] = $DayBytes{ $year . $month . $day } || 0; - } - my $function = "ShowGraph_$pluginname"; - &$function( - "$title", "daysofmonth", - $ShowDaysOfMonthStats, \@blocklabel, - \@vallabel, \@valcolor, - \@valmax, \@valtotal, - \@valaverage, \@valdata - ); - $graphdone=1; - } - # If graph was not printed by a plugin - if (! $graphdone) { - print "\n"; - print "\n"; - foreach my $daycursor ( $firstdaytoshowtime .. $lastdaytoshowtime ) + my $bold = ($day == $nowday && $month == $nowmonth && $year == $nowyear) ? ':' : ''; + my $weekend = ($dayofweekcursor =~ /[06]/) ? '!' : '' ; + push @blocklabel, "$day\n$MonthNumLib{$month}$weekend$bold"; + $valdata[ $xx++ ] = $DayVisits{ $date } || 0; + $valdata[ $xx++ ] = $DayPages{ $date } || 0; + $valdata[ $xx++ ] = $DayHits{ $date } || 0; + $valdata[ $xx++ ] = $DayBytes{ $date } || 0; + } + + $bars .= ''; + + if ( $ShowDaysOfMonthStats =~ /V/i ) { - $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; - my $year = $1; - my $month = $2; - my $day = $3; - if ( !DateIsValid( $day, $month, $year ) ) { - next; - } # If not an existing day, go to next - my $bredde_v = 0; - my $bredde_p = 0; - my $bredde_h = 0; - my $bredde_k = 0; - if ( $max_v > 0 ) { - $bredde_v = - int( ( $DayVisits{ $year . $month . $day } || 0 ) / - $max_v * $BarHeight ) + 1; - } - if ( $max_h > 0 ) { - $bredde_p = - int( ( $DayPages{ $year . $month . $day } || 0 ) / - $max_h * $BarHeight ) + 1; - } - if ( $max_h > 0 ) { - $bredde_h = - int( ( $DayHits{ $year . $month . $day } || 0 ) / - $max_h * $BarHeight ) + 1; - } - if ( $max_k > 0 ) { - $bredde_k = - int( ( $DayBytes{ $year . $month . $day } || 0 ) / - $max_k * $BarHeight ) + 1; - } - print "\n"; - } - print ""; + $data = int($DayVisits{ $date } || 0 ); + + $bars .= HtmlBar('v', $data, Format_Number($data), $max_v, $Message[10], $width); - # Show average value bars - print "\n"; - print "\n"; - # Show lib for day - print ""; - foreach - my $daycursor ( $firstdaytoshowtime .. $lastdaytoshowtime ) + if ( $ShowDaysOfMonthStats =~ /P/i ) { - $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; - my $year = $1; - my $month = $2; - my $day = $3; - if ( !DateIsValid( $day, $month, $year ) ) { - next; - } # If not an existing day, go to next - my $dayofweekcursor = DayOfWeek( $day, $month, $year ); - print ""; - print( - !$StaticLinks - && $day == $nowday - && $month == $nowmonth - && $year == $nowyear - ? '' - : '' - ); - print "$day
    " - . $MonthNumLib{$month} - . ""; - print( !$StaticLinks - && $day == $nowday - && $month == $nowmonth - && $year == $nowyear ? '
    ' : '' ); - print "\n"; - } - print "
    "; - print "\n"; - print "\n"; - print "
    '; + + $tableData .= '' : '>' ) + . '' + . ( !$StaticLinks && $day == $nowday && $month == $nowmonth && $year == $nowyear ? '' : '' ) + . $day . ' ' . $MonthNumLib{$MonthRequired} + . ( !$StaticLinks && $day == $nowday && $month == $nowmonth && $year == $nowyear ? '' : '' ) + . '"; - if ( $ShowDaysOfMonthStats =~ /V/i ) { - print -""; - } - if ( $ShowDaysOfMonthStats =~ /P/i ) { - print -""; - } - if ( $ShowDaysOfMonthStats =~ /H/i ) { - print -""; - } - if ( $ShowDaysOfMonthStats =~ /B/i ) { - print -""; - } - print " "; - my $bredde_v = 0; - my $bredde_p = 0; - my $bredde_h = 0; - my $bredde_k = 0; - if ( $max_v > 0 ) { - $bredde_v = int( $average_v / $max_v * $BarHeight ) + 1; - } - if ( $max_h > 0 ) { - $bredde_p = int( $average_p / $max_h * $BarHeight ) + 1; - } - if ( $max_h > 0 ) { - $bredde_h = int( $average_h / $max_h * $BarHeight ) + 1; - } - if ( $max_k > 0 ) { - $bredde_k = int( $average_k / $max_k * $BarHeight ) + 1; - } - $average_v = sprintf( "%.2f", $average_v ); - $average_p = sprintf( "%.2f", $average_p ); - $average_h = sprintf( "%.2f", $average_h ); - $average_k = sprintf( "%.2f", $average_k ); - if ( $ShowDaysOfMonthStats =~ /V/i ) { - print -""; - } - if ( $ShowDaysOfMonthStats =~ /P/i ) { - print -""; - } - if ( $ShowDaysOfMonthStats =~ /H/i ) { - print -""; - } - if ( $ShowDaysOfMonthStats =~ /B/i ) { - print -""; + $tableData .= HTMLDataCellWithBar('v', $data, Format_Number($data), $max_v); } - print "
     $Message[96]
    \n"; - } - print "
    \n"; + $data = int($DayPages{ $date } || 0 ); - # Show data array for days - if ($AddDataArrayShowDaysOfMonthStats) { - print "\n"; - print -""; - if ( $ShowDaysOfMonthStats =~ /V/i ) { - print ""; - } - if ( $ShowDaysOfMonthStats =~ /P/i ) { - print ""; - } - if ( $ShowDaysOfMonthStats =~ /H/i ) { - print ""; - } - if ( $ShowDaysOfMonthStats =~ /B/i ) { - print ""; - } - print ""; - foreach - my $daycursor ( $firstdaytoshowtime .. $lastdaytoshowtime ) - { - $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; - my $year = $1; - my $month = $2; - my $day = $3; - if ( !DateIsValid( $day, $month, $year ) ) { - next; - } # If not an existing day, go to next - my $dayofweekcursor = DayOfWeek( $day, $month, $year ); - print ""; - print ""; - if ( $ShowDaysOfMonthStats =~ /V/i ) { - print ""; - } - if ( $ShowDaysOfMonthStats =~ /P/i ) { - print ""; - } - if ( $ShowDaysOfMonthStats =~ /H/i ) { - print ""; - } - if ( $ShowDaysOfMonthStats =~ /B/i ) { - print ""; - } - print "\n"; - } + $bars .= HtmlBar('p', $data, Format_Number($data), $max_p, ucfirst($Message[28]), $width); - # Average row - print -""; - if ( $ShowDaysOfMonthStats =~ /V/i ) { - print ""; + $tableData .= HTMLDataCellWithBar('p', $data, Format_Number($data), $max_p); } - if ( $ShowDaysOfMonthStats =~ /P/i ) { - print ""; + + if ( $ShowDaysOfMonthStats =~ /H/i ) + { + $data = int($DayHits{ $date } || 0 ); + + $bars .= HtmlBar('h', $data, Format_Number($data), $max_h, $Message[57], $width); + + $tableData .= HTMLDataCellWithBar('h', $data, Format_Number($data), $max_h); } - if ( $ShowDaysOfMonthStats =~ /H/i ) { - print ""; + + if ( $ShowDaysOfMonthStats =~ /B/i ) + { + $data = int($DayBytes{ $date } || 0 ); + + $bars .= HtmlBar('b', $data, Format_Bytes($data), $max_k, $Message[75], $width); + + $tableData .= HTMLDataCellWithBar('b', $data, Format_Bytes($data), $max_k); } - if ( $ShowDaysOfMonthStats =~ /B/i ) { - print ""; + + $bars .= ''; + $tableData .= ''; + } + + # render Graph Plugin + if ($graphPlugin == 1) + { + foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) + { + my $function = "ShowGraph_$pluginname"; + &$function( + $title, 'daysofmonth', + $ShowDaysOfMonthStats, \@blocklabel, + \@vallabel, \@valcolor, + \@valmax, \@valtotal, + \@valaverage, \@valdata + ); } - print "\n"; + } + + # Show average value bars + # $bars .= '' . ''; + + $bars .= ''; + + # Show lib for day + $bars .= ''; + foreach my $daycursor ( $firstdaytoshowtime .. $lastdaytoshowtime ) + { + $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; + my $year = $1; + my $month = $2; + my $day = $3; + + if ( !DateIsValid( $3, $2, $1 ) ) { next; } # If not an existing day, go to next + my $dayofweekcursor = DayOfWeek( $3, $2, $1 ); + $bars .= '' + . ((!$StaticLinks && $day == $nowday && $month == $nowmonth && $year == $nowyear) ? '' : '') + . $day + . ((!$StaticLinks && $day == $nowday && $month == $nowmonth && $year == $nowyear) ? '' : '' ) + . ''; + } + + # Show data array for days + if ($AddDataArrayShowDaysOfMonthStats) + { # Total row - print -""; - if ( $ShowDaysOfMonthStats =~ /V/i ) { - print ""; - } - if ( $ShowDaysOfMonthStats =~ /P/i ) { - print ""; - } - if ( $ShowDaysOfMonthStats =~ /H/i ) { - print ""; - } - if ( $ShowDaysOfMonthStats =~ /B/i ) { - print ""; - } - print "\n"; - print "
    $Message[4]$Message[10]$Message[56]$Message[57]$Message[75]
    " - . ( - !$StaticLinks - && $day == $nowday - && $month == $nowmonth - && $year == $nowyear - ? '' - : '' - ); - print Format_Date( "$year$month$day" . "000000", 2 ); - print( !$StaticLinks - && $day == $nowday - && $month == $nowmonth - && $year == $nowyear ? '' : '' ); - print "", - Format_Number($DayVisits{ $year . $month . $day } - ? $DayVisits{ $year . $month . $day } - : "0"), "", - Format_Number($DayPages{ $year . $month . $day } - ? $DayPages{ $year . $month . $day } - : "0"), "", - Format_Number($DayHits{ $year . $month . $day } - ? $DayHits{ $year . $month . $day } - : "0"), "", - Format_Bytes( - int( $DayBytes{ $year . $month . $day } || 0 ) ), - "
    $Message[96]".Format_Number(int($average_v))."".Format_Number(int($average_p))."".Format_Number(int($average_h))."".Format_Bytes(int($average_k))."
     ' + # . (( $ShowDaysOfMonthStats =~ /V/i ) ? HtmlBar('v', $average_v, Format_Number($average_v), $max_v, $Message[10], $width) : '') + # . (( $ShowDaysOfMonthStats =~ /P/i ) ? HtmlBar('p', $average_p, Format_Number($average_p), $max_p, ucfirst($Message[28]), $width) : '') + # . (( $ShowDaysOfMonthStats =~ /H/i ) ? HtmlBar('h', $average_h, Format_Number($average_h), $max_h, $Message[57], $width) : '') + # . (( $ShowDaysOfMonthStats =~ /B/i ) ? HtmlBar('b', $average_k, Format_Number($average_k), $max_k, $Message[75], $width) : '') + # . '
    $Message[102]".Format_Number($total_v)."".Format_Number($total_p)."".Format_Number($total_h)."" . Format_Bytes($total_k) . "
    \n
    "; + my (%sums) = ( + 'v'=> Format_Number($total_v), + 'p'=> Format_Number($total_p), + 'h'=> Format_Number($total_h), + 'b'=> Format_Bytes($total_k) + ); + # Average row + my (%averages) = ( + 'v'=> Format_Number(int($average_v)), + 'p'=> Format_Number(int($average_p)), + 'h'=> Format_Number(int($average_h)), + 'b'=> Format_Bytes(int($average_k)) + ); + + $html .= '' + . HTMLDataTableHeader($MonthNumLib{$MonthRequired} . ' ' . $YearRequired, $ShowDaysOfMonthStats) + . HTMLDataTableFooter('', $ShowDaysOfMonthStats, \%sums, $Message[96], \%averages) + . '' . $tableData . '
    '; } - print "
    \n"; - print "\n"; - &tab_end(); + return &tab_head( $title, '', 'daysofmonth' ) + . '' . '' . $bars . '' . '
    ' + . $html . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the Days of the Week section on the main page +# Function: Return the Days of the Week section on the main page # Parameters: $firstdaytocountaverage, $lastdaytocountaverage -# Input: _ -# Output: HTML -# Return: - +# Input: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainDaysofWeek{ - my $firstdaytocountaverage = shift; - my $lastdaytocountaverage = shift; - my $NewLinkParams = shift; - my $NewLinkTarget = shift; - if ($Debug) { debug( "ShowDaysOfWeekStats", 2 ); } - print "$Center 
    \n"; - my $title = "$Message[91]"; - &tab_head( "$title", 18, 0, 'daysofweek' ); - print ""; - print ""; - print "
    \n"; - - my $max_h = my $max_k = 0; # Start from 0 because can be lower than 1 - # Get average value for day of week - my @avg_dayofweek_nb = (); - my @avg_dayofweek_p = (); - my @avg_dayofweek_h = (); - my @avg_dayofweek_k = (); - foreach my $daycursor ( - $firstdaytocountaverage .. $lastdaytocountaverage ) - { - $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; - my $year = $1; - my $month = $2; - my $day = $3; - if ( !DateIsValid( $day, $month, $year ) ) { - next; - } # If not an existing day, go to next - my $dayofweekcursor = DayOfWeek( $day, $month, $year ); - $avg_dayofweek_nb[$dayofweekcursor] - ++; # Increase number of day used to count for this day of week - $avg_dayofweek_p[$dayofweekcursor] += - ( $DayPages{$daycursor} || 0 ); - $avg_dayofweek_h[$dayofweekcursor] += - ( $DayHits{$daycursor} || 0 ); - $avg_dayofweek_k[$dayofweekcursor] += - ( $DayBytes{$daycursor} || 0 ); - } - for (@DOWIndex) { - if ( $avg_dayofweek_nb[$_] ) { - $avg_dayofweek_p[$_] = - $avg_dayofweek_p[$_] / $avg_dayofweek_nb[$_]; - $avg_dayofweek_h[$_] = - $avg_dayofweek_h[$_] / $avg_dayofweek_nb[$_]; - $avg_dayofweek_k[$_] = - $avg_dayofweek_k[$_] / $avg_dayofweek_nb[$_]; - - #if ($avg_dayofweek_p[$_] > $max_p) { $max_p = $avg_dayofweek_p[$_]; } - if ( $avg_dayofweek_h[$_] > $max_h ) { - $max_h = $avg_dayofweek_h[$_]; - } - if ( $avg_dayofweek_k[$_] > $max_k ) { - $max_k = $avg_dayofweek_k[$_]; - } - } - else { - $avg_dayofweek_p[$_] = "?"; - $avg_dayofweek_h[$_] = "?"; - $avg_dayofweek_k[$_] = "?"; - } - } - # Show bars for days of week - my $graphdone=0; - foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) - { - my @blocklabel = (); - for (@DOWIndex) { - push @blocklabel, - ( $Message[ $_ + 84 ] . ( $_ =~ /[06]/ ? "!" : "" ) ); - } - my @vallabel = - ( "$Message[56]", "$Message[57]", "$Message[75]" ); - my @valcolor = ( "$color_p", "$color_h", "$color_k" ); - my @valmax = ( int($max_h), int($max_h), int($max_k) ); - my @valtotal = ( $TotalPages, $TotalHits, $TotalBytes ); - # TEMP - my $average_p = my $average_h = my $average_k = 0; - $average_p = sprintf( "%.2f", $AveragePages ); - $average_h = sprintf( "%.2f", $AverageHits ); - $average_k = ( - int($average_k) - ? Format_Bytes( sprintf( "%.2f", $AverageBytes ) ) - : "0.00" - ); - my @valaverage = ( $average_p, $average_h, $average_k ); - my @valdata = (); - my $xx = 0; - - for (@DOWIndex) { - $valdata[ $xx++ ] = $avg_dayofweek_p[$_] || 0; - $valdata[ $xx++ ] = $avg_dayofweek_h[$_] || 0; - $valdata[ $xx++ ] = $avg_dayofweek_k[$_] || 0; - - # Round to be ready to show array - $avg_dayofweek_p[$_] = - sprintf( "%.2f", $avg_dayofweek_p[$_] ); - $avg_dayofweek_h[$_] = - sprintf( "%.2f", $avg_dayofweek_h[$_] ); - $avg_dayofweek_k[$_] = - sprintf( "%.2f", $avg_dayofweek_k[$_] ); - - # Remove decimal part that are .0 - if ( $avg_dayofweek_p[$_] == int( $avg_dayofweek_p[$_] ) ) { - $avg_dayofweek_p[$_] = int( $avg_dayofweek_p[$_] ); - } - if ( $avg_dayofweek_h[$_] == int( $avg_dayofweek_h[$_] ) ) { - $avg_dayofweek_h[$_] = int( $avg_dayofweek_h[$_] ); - } - } - my $function = "ShowGraph_$pluginname"; - &$function( - "$title", "daysofweek", - $ShowDaysOfWeekStats, \@blocklabel, - \@vallabel, \@valcolor, - \@valmax, \@valtotal, - \@valaverage, \@valdata - ); - $graphdone=1; - } - if (! $graphdone) - { - print "\n"; - print "\n"; - for (@DOWIndex) { - my $bredde_p = 0; - my $bredde_h = 0; - my $bredde_k = 0; - if ( $max_h > 0 ) { - $bredde_p = int( - ( - $avg_dayofweek_p[$_] ne '?' - ? $avg_dayofweek_p[$_] - : 0 - ) / $max_h * $BarHeight - ) + 1; - } - if ( $max_h > 0 ) { - $bredde_h = int( - ( - $avg_dayofweek_h[$_] ne '?' - ? $avg_dayofweek_h[$_] - : 0 - ) / $max_h * $BarHeight - ) + 1; - } - if ( $max_k > 0 ) { - $bredde_k = int( - ( - $avg_dayofweek_k[$_] ne '?' - ? $avg_dayofweek_k[$_] - : 0 - ) / $max_k * $BarHeight - ) + 1; - } - $avg_dayofweek_p[$_] = sprintf( - "%.2f", - ( - $avg_dayofweek_p[$_] ne '?' - ? $avg_dayofweek_p[$_] - : 0 - ) - ); - $avg_dayofweek_h[$_] = sprintf( - "%.2f", - ( - $avg_dayofweek_h[$_] ne '?' - ? $avg_dayofweek_h[$_] - : 0 - ) - ); - $avg_dayofweek_k[$_] = sprintf( - "%.2f", - ( - $avg_dayofweek_k[$_] ne '?' - ? $avg_dayofweek_k[$_] - : 0 - ) - ); + my $firstdaytocountaverage = shift; + my $lastdaytocountaverage = shift; + my $NewLinkParams = shift; + my $NewLinkTarget = shift; - # Remove decimal part that are .0 - if ( $avg_dayofweek_p[$_] == int( $avg_dayofweek_p[$_] ) ) { - $avg_dayofweek_p[$_] = int( $avg_dayofweek_p[$_] ); - } - if ( $avg_dayofweek_h[$_] == int( $avg_dayofweek_h[$_] ) ) { - $avg_dayofweek_h[$_] = int( $avg_dayofweek_h[$_] ); - } - print "\n"; - } - print "\n"; - print "\n"; - for (@DOWIndex) { - print "" - . ( - !$StaticLinks - && $_ == ( $nowwday - 1 ) - && $MonthRequired == $nowmonth - && $YearRequired == $nowyear - ? '' - : '' - ); - print $Message[ $_ + 84 ]; - print( !$StaticLinks - && $_ == ( $nowwday - 1 ) - && $MonthRequired == $nowmonth - && $YearRequired == $nowyear ? '' : '' ); - print ""; - } - print "\n
    "; - if ( $ShowDaysOfWeekStats =~ /P/i ) { - print -""; - } - if ( $ShowDaysOfWeekStats =~ /H/i ) { - print -""; - } - if ( $ShowDaysOfWeekStats =~ /B/i ) { - print -""; - } - print "
    \n"; - } - print "
    \n"; + my $title = $Message[91]; + my $width = 'var(--bar-v-width-weekday)'; + my $bars = ''; + my $tableData = ''; + + my $max_p = my $max_h = my $max_k = 0; + my @avg_dayofweek_nb = (); + my @avg_dayofweek_p = (); + my @avg_dayofweek_h = (); + my @avg_dayofweek_k = (); - # Show data array for days of week - if ($AddDataArrayShowDaysOfWeekStats) { - print "\n"; - print -""; - if ( $ShowDaysOfWeekStats =~ /P/i ) { - print ""; - } - if ( $ShowDaysOfWeekStats =~ /H/i ) { - print ""; - } - if ( $ShowDaysOfWeekStats =~ /B/i ) { - print ""; - } - for (@DOWIndex) { - print ""; - print ""; - if ( $ShowDaysOfWeekStats =~ /P/i ) { - print ""; - } - if ( $ShowDaysOfWeekStats =~ /H/i ) { - print ""; - } - if ( $ShowDaysOfWeekStats =~ /B/i ) { - print ""; - } - print "\n"; - } - print "
    $Message[4]$Message[56]$Message[57]$Message[75]
    " - . ( - !$StaticLinks - && $_ == ( $nowwday - 1 ) - && $MonthRequired == $nowmonth - && $YearRequired == $nowyear - ? '' - : '' - ); - print $Message[ $_ + 84 ]; - print( !$StaticLinks - && $_ == ( $nowwday - 1 ) - && $MonthRequired == $nowmonth - && $YearRequired == $nowyear ? '' : '' ); - print "", Format_Number(int($avg_dayofweek_p[$_])), "", Format_Number(int($avg_dayofweek_h[$_])), "", Format_Bytes(int($avg_dayofweek_k[$_])), - "
    \n
    \n"; - } + my $graphPlugin = (%{ $PluginsLoaded{'ShowGraph'} }) ? 1 : 0; - print "
    "; - print "\n"; - &tab_end(); -} + my $tooltip = ''; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(18); + } + + foreach my $daycursor ($firstdaytocountaverage .. $lastdaytocountaverage ) + { + $daycursor =~ /^(\d\d\d\d)(\d\d)(\d\d)/; + my $year = $1; + my $month = $2; + my $day = $3; + my $bars = ''; -#------------------------------------------------------------------------------ -# Function: Prints the Downloads chart and table -# Parameters: - -# Input: $NewLinkParams, $NewLinkTarget -# Output: HTML -# Return: - -#------------------------------------------------------------------------------ -sub HTMLMainDownloads{ - my $NewLinkParams = shift; - my $NewLinkTarget = shift; - if (!$LevelForFileTypesDetection > 0){return;} - if ($Debug) { debug( "ShowDownloadStats", 2 ); } - my $regext = qr/\.(\w{1,6})$/; - print "$Center 
    \n"; - my $Totalh = 0; - if ($MaxNbOf{'DownloadsShown'} < 1){$MaxNbOf{'DownloadsShown'} = 10;} # default if undefined - my $title = - "$Message[178] ($Message[77] $MaxNbOf{'DownloadsShown'})   -   $Message[80]"; + if ( !DateIsValid( $3, $2, $1 ) ) { next; } # If not an existing day, go to next + + my $dayofweekcursor = DayOfWeek( $3, $2, $1 ); + + $avg_dayofweek_nb[$dayofweekcursor]++; # Increase number of day used to count for this day of week + $avg_dayofweek_p[$dayofweekcursor] += ( $DayPages{$daycursor} || 0 ); + $avg_dayofweek_h[$dayofweekcursor] += ( $DayHits{$daycursor} || 0 ); + $avg_dayofweek_k[$dayofweekcursor] += ( $DayBytes{$daycursor} || 0 ); + } + + for (@DOWIndex) + { + $avg_dayofweek_p[$_] = ( $avg_dayofweek_nb[$_] ) ? $avg_dayofweek_p[$_] / $avg_dayofweek_nb[$_] : 0; + $avg_dayofweek_h[$_] = ( $avg_dayofweek_nb[$_] ) ?$avg_dayofweek_h[$_] / $avg_dayofweek_nb[$_] : 0; + $avg_dayofweek_k[$_] = ( $avg_dayofweek_nb[$_] ) ? $avg_dayofweek_k[$_] / $avg_dayofweek_nb[$_] : 0; - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title = "$title   -   $Message[179]"); - } - - &tab_head( "$title", 0, 0, 'downloads' ); - my $cnt=0; - for my $u (sort {$_downloads{$b}->{'AWSTATS_HITS'} <=> $_downloads{$a}->{'AWSTATS_HITS'}}(keys %_downloads) ){ - $Totalh += $_downloads{$u}->{'AWSTATS_HITS'}; - $cnt++; - if ($cnt > 4){last;} + $max_p = ( $avg_dayofweek_p[$_] > $max_p ) ? $avg_dayofweek_p[$_] : $max_p; + $max_h = ( $avg_dayofweek_h[$_] > $max_h ) ? $avg_dayofweek_h[$_] : $max_h; + $max_k = ( $avg_dayofweek_k[$_] > $max_k ) ? $avg_dayofweek_k[$_] : $max_k; } - # Graph the top five in a pie chart - if (($Totalh > 0) and (scalar keys %_downloads > 1)){ + + my $graphPlugin = (%{ $PluginsLoaded{'ShowGraph'} }) ? 1 : 0; + + if($graphPlugin == 1) + { foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) { my @blocklabel = (); - my @valdata = (); - my @valcolor = ($color_p); - my $cnt = 0; - for my $u (sort {$_downloads{$b}->{'AWSTATS_HITS'} <=> $_downloads{$a}->{'AWSTATS_HITS'}}(keys %_downloads) ){ - push @valdata, ($_downloads{$u}->{'AWSTATS_HITS'} / $Totalh * 1000 ) / 10; - push @blocklabel, Get_Filename($u); - $cnt++; - if ($cnt > 4) { last; } + + for (@DOWIndex) + { + push @blocklabel, ( $Message[ $_ + 84 ] . ( $_ =~ /[06]/ ? "!" : "" ) ); + } + + my @vallabel = ( ucfirst($Message[28]), $Message[57], $Message[75] ); + my @valcolor = ( $color_p, $color_h, $color_k ); + my @valmax = ( int($max_h), int($max_h), int($max_k) ); + my @valtotal = ( $TotalPages, $TotalHits, $TotalBytes ); + + my @valaverage = ( + sprintf( "%.2f", $AveragePages ), + sprintf( "%.2f", $AverageHits ), + (int($AverageBytes) ? Format_Bytes(sprintf( "%.2f", $AverageBytes)) : "0.00") + ); + + my @valdata = (); + my $xx = 0; + + for (@DOWIndex) + { + $valdata[ $xx++ ] = $avg_dayofweek_p[$_] || 0; + $valdata[ $xx++ ] = $avg_dayofweek_h[$_] || 0; + $valdata[ $xx++ ] = $avg_dayofweek_k[$_] || 0; + + # Round to be ready to show array + $avg_dayofweek_p[$_] = sprintf( "%.2f", $avg_dayofweek_p[$_] ); + $avg_dayofweek_h[$_] = sprintf( "%.2f", $avg_dayofweek_h[$_] ); + $avg_dayofweek_k[$_] = sprintf( "%.2f", $avg_dayofweek_k[$_] ); + + # Remove decimal part that are .0 + if ( $avg_dayofweek_p[$_] == int( $avg_dayofweek_p[$_] ) ) + { + $avg_dayofweek_p[$_] = int( $avg_dayofweek_p[$_] ); + } + + if ( $avg_dayofweek_h[$_] == int( $avg_dayofweek_h[$_] ) ) + { + $avg_dayofweek_h[$_] = int( $avg_dayofweek_h[$_] ); + } } - my $columns = 2; - if ($ShowDownloadsStats =~ /H/i){$columns += length($ShowDownloadsStats)+1;} - else{$columns += length($ShowDownloadsStats);} - print ""; + my $function = "ShowGraph_$pluginname"; - &$function( - "$Message[80]", "downloads", - 0, \@blocklabel, - 0, \@valcolor, - 0, 0, - 0, \@valdata + $bars .= &$function( + $title, 'daysofweek', + $ShowDaysOfWeekStats, \@blocklabel, + \@vallabel, \@valcolor, + \@valmax, \@valtotal, + \@valaverage, \@valdata ); - print ""; } } - - my $total_dls = scalar keys %_downloads; - print "$Message[178]: $total_dls"; - if ( $ShowDownloadsStats =~ /H/i ){print "$Message[57]" - ."206 $Message[57]"; } - if ( $ShowDownloadsStats =~ /B/i ){ - print "$Message[75]"; - print "$Message[106]"; + + $bars .= ''; + + for (@DOWIndex) + { + $bars .= ''; } - print "\n"; - my $count = 0; - for my $u (sort {$_downloads{$b}->{'AWSTATS_HITS'} <=> $_downloads{$a}->{'AWSTATS_HITS'}}(keys %_downloads) ){ - print ""; - my $ext = Get_Extension($regext, $u); - if ( !$ext) { - print ""; - } - else { - my $nameicon = $MimeHashLib{$ext}[0] || "notavailable"; - my $nametype = $MimeHashFamily{$MimeHashLib{$ext}[0]} || " "; - print ""; - } - print ""; - if ( $ShowDownloadsStats =~ /H/i ){ - print ""; - print ""; - } - if ( $ShowDownloadsStats =~ /B/i ){ - print ""; - print ""; + + $bars .= '' . ''; #tooltip 17 + + for (@DOWIndex) + { + $bars .= '' + . (!$StaticLinks && $_ == ( $nowwday - 1 ) && $MonthRequired == $nowmonth && $YearRequired == $nowyear ? '' : '') + . $Message[ $_ + 84 ] + . (!$StaticLinks && $_ == ( $nowwday - 1 ) && $MonthRequired == $nowmonth && $YearRequired == $nowyear ? '' : '' ) + . ''; + } + + # Show data array for days of week + if ($AddDataArrayShowDaysOfWeekStats) + { + my $data = ''; + + $tableData .= '
    ' + . (( $ShowDaysOfWeekStats =~ /P/i ) ? HtmlBar('p', $avg_dayofweek_p[$_], Format_Number($avg_dayofweek_p[$_]), $max_p, ucfirst($Message[28]), $width) : '') + . (( $ShowDaysOfWeekStats =~ /H/i ) ? HtmlBar('h', $avg_dayofweek_h[$_], Format_Number($avg_dayofweek_h[$_]), $max_h, $Message[57], $width) : '') + . (( $ShowDaysOfWeekStats =~ /B/i ) ? HtmlBar('b', $avg_dayofweek_k[$_], Format_Number($avg_dayofweek_k[$_]), $max_k, $Message[75], $width) : '') + . '
    "; - &HTMLShowURLInfo($u); - print "".Format_Number($_downloads{$u}->{'AWSTATS_HITS'})."".Format_Number($_downloads{$u}->{'AWSTATS_206'})."".Format_Bytes($_downloads{$u}->{'AWSTATS_SIZE'})."".Format_Bytes(($_downloads{$u}->{'AWSTATS_SIZE'}/ - ($_downloads{$u}->{'AWSTATS_HITS'} + $_downloads{$u}->{'AWSTATS_206'})))."
    ' + . HTMLDataTableHeader('', $ShowDaysOfWeekStats) + . ''; + + for (@DOWIndex) + { + $tableData .= '' + . ''; + + if ( $ShowDaysOfWeekStats =~ /P/i ) + { + $data = int($avg_dayofweek_p[$_]); + $tableData .= HTMLDataCellWithBar('p', $data , Format_Number($data), $max_p); + } + + if ( $ShowDaysOfWeekStats =~ /H/i ) + { + $data = int($avg_dayofweek_h[$_]); + $tableData .= HTMLDataCellWithBar('h', $data , Format_Number($data), $max_h); + } + + if ( $ShowDaysOfWeekStats =~ /B/i ) + { + $data = int($avg_dayofweek_k[$_]); + $tableData .= HTMLDataCellWithBar('b', $data , Format_Bytes($data), $max_k); + } + + $tableData .= ''; } - print "\n"; - $count++; - if ($count >= $MaxNbOf{'DownloadsShown'}){last;} + + $tableData .= '
    ' . ( ( !$StaticLinks && $_ == ( $nowwday - 1 ) && $MonthRequired == $nowmonth && $YearRequired == $nowyear ) ? '' : '' ) + . $Message[ $_ + 84 ] + . ( ( !$StaticLinks && $_ == ( $nowwday - 1 ) && $MonthRequired == $nowmonth && $YearRequired == $nowyear ) ? '' : '' ) + . '
    '; } - &tab_end(); + + return &tab_head($title, '', 'daysofweek', $tooltip ) . $bars . $tableData . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the hours chart and table +# Function: Return the hours chart and table # Parameters: $NewLinkParams, $NewLinkTarget # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainHours{ - my $NewLinkParams = shift; - my $NewLinkTarget = shift; - - if ($Debug) { debug( "ShowHoursStats", 2 ); } - print "$Center 
    \n"; - my $title = "$Message[20]"; + if ($Debug) { debug( "ShowHoursStats", 2 ); } + + my $NewLinkParams = shift; + my $NewLinkTarget = shift; + + my $title = $Message[20]; + my @links = (); + my $bars = ''; + my $tableData = ''; - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title = "$title   -   $Message[179]"); - } + if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push(@links, '' . $Message[179] . ''); + } - if ( $PluginsLoaded{'GetTimeZoneTitle'}{'timezone'} ) { - $title .= " (GMT " + if ( $PluginsLoaded{'GetTimeZoneTitle'}{'timezone'} ) + { + $title .= " (GMT " . ( GetTimeZoneTitle_timezone() >= 0 ? "+" : "" ) - . int( GetTimeZoneTitle_timezone() ) . ")"; + . int( GetTimeZoneTitle_timezone() ) . ")"; } - &tab_head( "$title", 19, 0, 'hours' ); - print "\n"; - print "
    \n"; - my $max_h = my $max_k = 1; - for ( my $ix = 0 ; $ix <= 23 ; $ix++ ) { + my $tooltip = ''; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } - #if ($_time_p[$ix]>$max_p) { $max_p=$_time_p[$ix]; } + my $width = 'var(--bar-v-width-hours)'; + my $max_p = my $max_h = my $max_k = 1; + for ( my $ix = 0 ; $ix <= 23 ; $ix++ ) + { + if ( $_time_p[$ix] > $max_p ) { $max_p=$_time_p[$ix]; } if ( $_time_h[$ix] > $max_h ) { $max_h = $_time_h[$ix]; } if ( $_time_k[$ix] > $max_k ) { $max_k = $_time_k[$ix]; } } @@ -14895,8 +13638,7 @@ sub HTMLMainHours{ foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) { my @blocklabel = ( 0 .. 23 ); - my @vallabel = - ( "$Message[56]", "$Message[57]", "$Message[75]" ); + my @vallabel = ( ucfirst($Message[28]), $Message[57], $Message[75] ); my @valcolor = ( "$color_p", "$color_h", "$color_k" ); my @valmax = ( int($max_h), int($max_h), int($max_k) ); my @valtotal = ( $TotalPages, $TotalHits, $TotalBytes ); @@ -14910,7 +13652,7 @@ sub HTMLMainHours{ } my $function = "ShowGraph_$pluginname"; &$function( - "$title", "hours", + $title, "hours", $ShowHoursStats, \@blocklabel, \@vallabel, \@valcolor, \@valmax, \@valtotal, @@ -14918,378 +13660,212 @@ sub HTMLMainHours{ ); $graphdone=1; } - if (! $graphdone) + + $bars .= ''; + + for ( my $ix = 0 ; $ix <= 23 ; $ix++ ) { - print "
    \n"; - print "\n"; - for ( my $ix = 0 ; $ix <= 23 ; $ix++ ) { - my $bredde_p = 0; - my $bredde_h = 0; - my $bredde_k = 0; - if ( $max_h > 0 ) { - $bredde_p = - int( $BarHeight * $_time_p[$ix] / $max_h ) + 1; - } - if ( $max_h > 0 ) { - $bredde_h = - int( $BarHeight * $_time_h[$ix] / $max_h ) + 1; - } - if ( $max_k > 0 ) { - $bredde_k = - int( $BarHeight * $_time_k[$ix] / $max_k ) + 1; - } - print "\n"; - } - print "\n"; + $bars .= ''; + } + + $bars .= ''; #tooltip 17 + + for ( my $ix = 0 ; $ix <= 23 ; $ix++ ) + { + $bars .= ''; + } - # Show hour lib - print ""; - for ( my $ix = 0 ; $ix <= 23 ; $ix++ ) { - print "\n" - ; # width=19 instead of 18 to avoid a MacOS browser bug. - } - print "\n"; + $bars .= ''; - # Show clock icon - print "\n"; - for ( my $ix = 0 ; $ix <= 23 ; $ix++ ) { - my $hrs = ( $ix >= 12 ? $ix - 12 : $ix ); - my $hre = ( $ix >= 12 ? $ix - 11 : $ix + 1 ); - my $apm = ( $ix >= 12 ? "pm" : "am" ); - print -"\n"; - } - print "\n"; - print "
    "; - if ( $ShowHoursStats =~ /P/i ) { - print -""; - } - if ( $ShowHoursStats =~ /H/i ) { - print -""; - } - if ( $ShowHoursStats =~ /B/i ) { - print -""; - } - print "
    ' + . (( $ShowHoursStats =~ /P/i ) ? HtmlBar('p', $_time_p[$ix], $_time_p[$ix], $max_p, ucfirst($Message[28]), $width) : '') + . (( $ShowHoursStats =~ /H/i ) ? HtmlBar('h', $_time_h[$ix], $_time_h[$ix], $max_h, $Message[57], $width) : '') + . (( $ShowHoursStats =~ /B/i ) ? HtmlBar('b', $_time_k[$ix], $_time_k[$ix], $max_k, $Message[75], $width) : '') + . '
    ' . $ix . '$ix
    \"$hrs:00
    \n"; + # Show clock icon + $bars .= ''; #tooltip 17 + + for ( my $ix = 0 ; $ix <= 23 ; $ix++ ) + { + my $hrs = ( $ix >= 12 ? $ix - 12 : $ix ); + my $hre = ( $ix >= 12 ? $ix - 11 : $ix + 1 ); + my $apm = ( $ix >= 12 ? 'pm' : 'am' ); + $bars .= '
    '; } - print "
    \n"; - # Show data array for hours - if ($AddDataArrayShowHoursStats) { - print "\n"; - print "
    \n"; + $bars .= '
    '; - print "\n"; - print -""; - if ( $ShowHoursStats =~ /P/i ) { - print ""; - } - if ( $ShowHoursStats =~ /H/i ) { - print ""; - } - if ( $ShowHoursStats =~ /B/i ) { - print ""; - } - print ""; - for ( my $ix = 0 ; $ix <= 11 ; $ix++ ) { - my $monthix = ( $ix < 10 ? "0$ix" : "$ix" ); - print ""; - print ""; - if ( $ShowHoursStats =~ /P/i ) { - print ""; - } - if ( $ShowHoursStats =~ /H/i ) { - print ""; - } - if ( $ShowHoursStats =~ /B/i ) { - print ""; - } - print "\n"; - } - print "
    $Message[20]$Message[56]$Message[57]$Message[75]
    $monthix", - Format_Number($_time_p[$monthix] ? $_time_p[$monthix] : "0"), - "", - Format_Number($_time_h[$monthix] ? $_time_h[$monthix] : "0"), - "", Format_Bytes( int( $_time_k[$monthix] ) ), - "
    \n"; + # Show data array for hours + if ($AddDataArrayShowHoursStats) + { + my $data = ''; - print "
    "; - print " "; - print "
    \n"; + $tableData .= '' + . HTMLDataTableHeader('', $ShowHoursStats); - print "
    \n"; - print -""; - if ( $ShowHoursStats =~ /P/i ) { - print ""; - } - if ( $ShowHoursStats =~ /H/i ) { - print ""; - } - if ( $ShowHoursStats =~ /B/i ) { - print ""; - } - print "\n"; - for ( my $ix = 12 ; $ix <= 23 ; $ix++ ) { + #body + for ( my $ix = 0 ; $ix <= 23 ; $ix++ ) + { my $monthix = ( $ix < 10 ? "0$ix" : "$ix" ); - print ""; - print ""; - if ( $ShowHoursStats =~ /P/i ) { - print ""; + + $tableData .= '' + . ''; + + if ( $ShowHoursStats =~ /P/i ) + { + $data = $_time_p[$monthix] ? $_time_p[$monthix] : '0'; + $tableData .= HTMLDataCellWithBar('p', $data , Format_Number($data), $max_p); } - if ( $ShowHoursStats =~ /H/i ) { - print ""; + + if ( $ShowHoursStats =~ /H/i ) + { + $data = $_time_h[$monthix] ? $_time_h[$monthix] : '0'; + $tableData .= HTMLDataCellWithBar('h', $data , Format_Number($data), $max_h); } - if ( $ShowHoursStats =~ /B/i ) { - print ""; + + if ( $ShowHoursStats =~ /B/i ) + { + $data = $_time_k[$monthix] ? $_time_k[$monthix] : '0'; + $tableData .= HTMLDataCellWithBar('b', $data , Format_Bytes($data), $max_k); } - print "\n"; + + $tableData .= ''; } - print "
    $Message[20]$Message[56]$Message[57]$Message[75]
    $monthix", - Format_Number($_time_p[$monthix] ? $_time_p[$monthix] : "0"), - "
    ' . $monthix . '", - Format_Number($_time_h[$monthix] ? $_time_h[$monthix] : "0"), - "", Format_Bytes( int( $_time_k[$monthix] ) ), - "
    \n"; - - print "
    \n"; - print "
    \n"; + $tableData .= ''; } - print "\n"; - &tab_end(); + return &tab_head( $title, join( ' ', @links ), 'hours', $tooltip ) . $bars . $tableData . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the countries chart and table +# Function: Return the countries chart and table # Parameters: $NewLinkParams, $NewLinkTarget # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainCountries{ + if ($Debug) { debug( "ShowDomainsStats", 2 ); } + my $NewLinkParams = shift; my $NewLinkTarget = shift; - - if ($Debug) { debug( "ShowDomainsStats", 2 ); } - print "$Center 
    \n"; - my $title = -"$Message[25] ($Message[77] $MaxNbOf{'Domain'})   -   $Message[80]"; - - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title = "$title   -   $Message[179]"); - } - - &tab_head( "$title", 19, 0, 'countries' ); - - my $total_u = my $total_v = my $total_p = my $total_h = my $total_k = 0; - my $max_h = 1; - foreach ( values %_domener_h ) { - if ( $_ > $max_h ) { $max_h = $_; } + my $count = my $total_u = my $total_v = my $total_p = my $total_h = my $total_k = 0; + my $rest_u = my $rest_v = my $rest_p = my $rest_h = my $rest_k = 0; + my $max_u = my $max_p = my $max_h = my $max_k = 1; + my $title = $Message[25] . (($HTMLOutput{'main'}) ? ' (' . $Message[77] . ' ' . $MaxNbOf{'Domain'} . ')' : ''); + my @links = (); + my $map = '
    '; + my $tooltip = my $tableData = my $tableFooter = ''; + my $colspan = ($ShowDomainsStats =~ /U/i) + ($ShowDomainsStats =~ /V/i) + ($ShowDomainsStats =~ /P/i) + ($ShowDomainsStats =~ /H/i) + ($ShowDomainsStats =~ /B/i); + my $tableFooter = ($HTMLOutput{'main'}) ? '' : ''; + + if($HTMLOutput{'main'}){ + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'alldomains', $Message[80])); } - my $max_k = 1; - foreach ( values %_domener_k ) { - if ( $_ > $max_k ) { $max_k = $_; } + + if ($AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push(@links, '' . $Message[179] . ''); + } + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); } - my $count = 0; - - &BuildKeyList( - $MaxNbOf{'Domain'}, $MinHit{'Domain'}, - \%_domener_h, \%_domener_p - ); + + foreach ( values %_domener_u ) { $max_u = ( $_ > $max_u ) ? $_ : $max_u; } + + foreach ( values %_domener_p ) { $max_p = ( $_ > $max_p ) ? $_ : $max_p; } + + foreach ( values %_domener_h ) { $max_h = ( $_ > $max_h ) ? $_ : $max_h; } - # print the map - if (scalar @keylist > 1){ - foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) - { - my @blocklabel = (); - my @valdata = (); - my $cnt = 0; - foreach my $key (@keylist) { - push @valdata, int( $_domener_h{$key} ); - push @blocklabel, $DomainsHashIDLib{$key}; - $cnt++; - if ($cnt > 99) { last; } - } - print ""; - my $function = "ShowGraph_$pluginname"; - &$function( - "AWStatsCountryMap", "countries_map", - 0, \@blocklabel, - 0, 0, - 0, 0, - 0, \@valdata - ); - print ""; - } - } + foreach ( values %_domener_k ) { $max_k = ( $_ > $max_k ) ? $_ : $max_k } - print -" $Message[17]"; - - ## to add unique visitors and number of visits by calculation of average of the relation with total - ## pages and total hits, and total visits and total unique - ## by Josep Ruano @ CAPSiDE - if ( $ShowDomainsStats =~ /U/i ) { - print "$Message[11]"; - } - if ( $ShowDomainsStats =~ /V/i ) { - print "$Message[10]"; - } - if ( $ShowDomainsStats =~ /P/i ) { - print "$Message[56]"; - } - if ( $ShowDomainsStats =~ /H/i ) { - print "$Message[57]"; - } - if ( $ShowDomainsStats =~ /B/i ) { - print "$Message[75]"; - } - print " "; - print "\n"; + &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Domain'}, \%_domener_h, \%_domener_p ); + + # # print the map + # if (scalar @keylist > 1){ + # foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) + # { + # my @blocklabel = (); + # my @valdata = (); + # my $cnt = 0; + # foreach my $key (@keylist) { + # push @valdata, int( $_domener_h{$key} ); + # push @blocklabel, $DomainsHashIDLib{$key}; + # $cnt++; + # if ($cnt > 99) { last; } + # } + # print "
    "; + # my $function = "ShowGraph_$pluginname"; + # &$function( + # "AWStatsCountryMap", "countries_map", + # 0, \@blocklabel, + # 0, 0, + # 0, 0, + # 0, \@valdata + # ); + # print "
    "; + # } + # } - foreach my $key (@keylist) { + $tableData .= ''; + + foreach my $key (@keylist) + { my ( $_domener_u, $_domener_v ); - my $bredde_p = 0; - my $bredde_h = 0; - my $bredde_k = 0; - my $bredde_u = 0; - my $bredde_v = 0; - if ( $max_h > 0 ) { - $bredde_p = - int( $BarWidth * $_domener_p{$key} / $max_h ) + 1; - } # use max_h to enable to compare pages with hits - if ( $_domener_p{$key} && $bredde_p == 1 ) { $bredde_p = 2; } - if ( $max_h > 0 ) { - $bredde_h = - int( $BarWidth * $_domener_h{$key} / $max_h ) + 1; - } - if ( $_domener_h{$key} && $bredde_h == 1 ) { $bredde_h = 2; } - if ( $max_k > 0 ) { - $bredde_k = - int( $BarWidth * ( $_domener_k{$key} || 0 ) / $max_k ) + - 1; - } - if ( $_domener_k{$key} && $bredde_k == 1 ) { $bredde_k = 2; } my $newkey = lc($key); - if ( $newkey eq 'ip' || !$DomainsHashIDLib{$newkey} ) { - print -"$Message[0]$newkey"; - } - else { - print -"$DomainsHashIDLib{$newkey}$newkey"; - } - ## to add unique visitors and number of visits, by Josep Ruano @ CAPSiDE - if ( $ShowDomainsStats =~ /U/i ) { - $_domener_u = ( - $_domener_p{$key} - ? $_domener_p{$key} / $TotalPages - : 0 - ); - $_domener_u += ( $_domener_h{$key} / $TotalHits ); - $_domener_u = - sprintf( "%.0f", ( $_domener_u * $TotalUnique ) / 2 ); - print "".Format_Number($_domener_u)." (" - . sprintf( "%.1f%", 100 * $_domener_u / $TotalUnique ) - . ")"; + my $data = ''; + + if ( $newkey eq 'ip' || !$DomainsHashIDLib{$newkey} ) + { + $tableData .= '' . $Message[0] . ' '; } - if ( $ShowDomainsStats =~ /V/i ) { - $_domener_v = ( - $_domener_p{$key} - ? $_domener_p{$key} / $TotalPages - : 0 - ); - $_domener_v += ( $_domener_h{$key} / $TotalHits ); - $_domener_v = - sprintf( "%.0f", ( $_domener_v * $TotalVisits ) / 2 ); - print "".Format_Number($_domener_v)." (" - . sprintf( "%.1f%", 100 * $_domener_v / $TotalVisits ) - . ")"; + else + { + $tableData .= ' $MaxNbOf{'Domain'}) ? ' style="visibility: collapse"' : '') + . ' data-country="' . $newkey . '">' + . '( ' . $newkey . ' )' . $DomainsHashIDLib{$newkey} . ' '; } - if ( $ShowDomainsStats =~ /P/i ) { - print "" - . ( $_domener_p{$key} ? Format_Number($_domener_p{$key}) : ' ' ) - . ""; - } - if ( $ShowDomainsStats =~ /H/i ) { - print "".Format_Number($_domener_h{$key}).""; + my $domener_temp = ($_domener_p{$key} ? $_domener_p{$key} / $TotalPages : 0) + $_domener_h{$key} / $TotalHits; + + if ( $ShowDomainsStats =~ /U/i ) + { + $data = int( $domener_temp * $TotalUnique ); + $tableData .= HTMLDataCellWithBar('u', $data , Format_Number($data), $TotalUnique); } - if ( $ShowDomainsStats =~ /B/i ) { - print "" . Format_Bytes( $_domener_k{$key} ) . ""; + + if ( $ShowDomainsStats =~ /V/i ) + { + $data = int( $domener_temp * $TotalVisits); + $tableData .= HTMLDataCellWithBar('v', $data , Format_Number($data), $TotalVisits); } - print ""; - if ( $ShowDomainsStats =~ /P/i ) { - print -"
    \n"; + if ( $ShowDomainsStats =~ /P/i ) + { + $data = int($_domener_p{$key} || 0); + $tableData .= HTMLDataCellWithBar('p', $data , Format_Number($data), $TotalPages); } - if ( $ShowDomainsStats =~ /H/i ) { - print -"
    \n"; + + if ( $ShowDomainsStats =~ /H/i ) + { + $data = int($_domener_h{$key} || 0); + $tableData .= HTMLDataCellWithBar('h', $data , Format_Number($data), $TotalHits); } - if ( $ShowDomainsStats =~ /B/i ) { - print -""; + + if ( $ShowDomainsStats =~ /B/i ) + { + $data = int($_domener_k{$key} || 0); + $tableData .= HTMLDataCellWithBar('b', $data , Format_Bytes($data), $TotalBytes); } - print ""; - print "\n"; + + $tableData .= ''; $total_u += $_domener_u; $total_v += $_domener_v; @@ -15298,224 +13874,308 @@ sub HTMLMainCountries{ $total_k += $_domener_k{$key} || 0; $count++; } - my $rest_u = $TotalUnique - $total_u; - my $rest_v = $TotalVisits - $total_v; - my $rest_p = $TotalPages - $total_p; - my $rest_h = $TotalHits - $total_h; - my $rest_k = $TotalBytes - $total_k; - if ( $rest_u > 0 - || $rest_v > 0 - || $rest_p > 0 - || $rest_h > 0 - || $rest_k > 0 ) - { # All other domains (known or not) - print -" $Message[2]"; - if ( $ShowDomainsStats =~ /U/i ) { print "$rest_u"; } - if ( $ShowDomainsStats =~ /V/i ) { print "$rest_v"; } - if ( $ShowDomainsStats =~ /P/i ) { print "$rest_p"; } - if ( $ShowDomainsStats =~ /H/i ) { print "$rest_h"; } - if ( $ShowDomainsStats =~ /B/i ) { - print "" . Format_Bytes($rest_k) . ""; + + $rest_u = $TotalUnique - $total_u; + $rest_v = $TotalVisits - $total_v; + $rest_p = $TotalPages - $total_p; + $rest_h = $TotalHits - $total_h; + $rest_k = $TotalBytes - $total_k; + + if ( $rest_u > 0 || $rest_v > 0 || $rest_p > 0 || $rest_h > 0 || $rest_k > 0 ) + { # All other domains (known or not) + $tableData .= '' . $Message[2] . '' + . (( $ShowDomainsStats =~ /U/i ) ? HTMLDataCellWithBar('u', $rest_u , Format_Number($rest_u), $TotalUnique) : '') + . (( $ShowDomainsStats =~ /V/i ) ? HTMLDataCellWithBar('v', $rest_v , Format_Number($rest_v), $TotalVisits) : '') + . (( $ShowDomainsStats =~ /P/i ) ? HTMLDataCellWithBar('p', $rest_p , Format_Number($rest_p), $TotalPages) : '') + . (( $ShowDomainsStats =~ /H/i ) ? HTMLDataCellWithBar('h', $rest_h , Format_Number($rest_h), $TotalHits) : '') + . (( $ShowDomainsStats =~ /B/i ) ? HTMLDataCellWithBar('b', $rest_k , Format_Bytes($rest_k), $TotalBytes) : '') + . ''; + } + + return &tab_head( $title, join( ' ', @links ), 'countries', $tooltip) + . $map + . '' . HTMLDataTableHeader('', $ShowDomainsStats) . $tableData . $tableFooter . '
    ' + . &tab_end(); +} + +#------------------------------------------------------------------------------ +# Function: Return the Downloads chart and table +# Parameters: - +# Input: $NewLinkParams, $NewLinkTarget +# Output: - +# Return: string +#------------------------------------------------------------------------------ +sub HTMLMainDownloads{ + if (!$LevelForFileTypesDetection > 0){return;} + if ($Debug) { debug( "ShowDownloadStats", 2 ); } + + my $NewLinkParams = shift; + my $NewLinkTarget = shift; + + my $TopFiveTotalh = my $total_h = my $total_206 = my $max_k = my $max_average_k = 0; + my @links = (); + my $chart = my $dataTable = ''; + my $title = $Message[178] . (($HTMLOutput{'main'}) ? ' ('. $Message[77] . ' ' . $MaxNbOf{'DownloadsShown'} .')' : ''); + my @sortedDlKeys = (sort {$_downloads{$b}->{'AWSTATS_SIZE'} <=> $_downloads{$a}->{'AWSTATS_SIZE'}}(keys %_downloads)); + + if($HTMLOutput{'main'}) + { + @sortedDlKeys = (scalar keys @sortedDlKeys > $MaxNbOf{'DownloadsShown'}) ? @sortedDlKeys[0..($MaxNbOf{'DownloadsShown'} - 1)] : @sortedDlKeys; + } + + my @sorted_TopFive_DlKeys = (scalar keys @sortedDlKeys > $MaxNbOf{'DownloadsShown'}) ? @sortedDlKeys[0..4] : @sortedDlKeys; + + if($HTMLOutput{'main'}) + { + if ($MaxNbOf{'DownloadsShown'} < 1){$MaxNbOf{'DownloadsShown'} = 10;} # default if undefined + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'downloads', $Message[80])); + } + + if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push (@links, '' . $Message[179] . ''); + } + + # Graph the top five in a pie chart + for my $u (keys @sorted_TopFive_DlKeys) + { + $TopFiveTotalh += $_downloads{$sorted_TopFive_DlKeys[$u]}->{'AWSTATS_HITS'}; + } + + if (($TopFiveTotalh > 0) and (scalar keys %_downloads > 1)) + { + foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) + { + my $function = "ShowGraph_$pluginname"; + my @blocklabel = my @valdata = (); + my @valcolor = ($color_p); + + for my $u ((keys @sorted_TopFive_DlKeys) ) + { + push @valdata, ($_downloads{$u}->{'AWSTATS_HITS'} / $TopFiveTotalh * 1000 ) / 10; + push @blocklabel, Get_Filename($u); + } + + $chart .= '
    ' + . &$function( + $Message[80], 'downloads', + 0, \@blocklabel, + 0, \@valcolor, + 0, 0, + 0, \@valdata + ) + . '
    '; } - print " "; - print "\n"; } - &tab_end(); + + for my $u (%_downloads) + { + $total_h += ($u ne '/robots.txt') ? ($_downloads{$u}->{'AWSTATS_HITS'} || 0) : 0; + $total_206 += $_downloads{$u}->{'AWSTATS_206'} || 0; + $max_k = ($_downloads{$u}->{'AWSTATS_SIZE'} > $max_k) ? $_downloads{$u}->{'AWSTATS_SIZE'} : $max_k; + $max_average_k = ($_downloads{$u}->{'AWSTATS_SIZE'} > $max_average_k) ? $_downloads{$u}->{'AWSTATS_SIZE'} / ($_downloads{$u}->{'AWSTATS_HITS'} + $_downloads{$u}->{'AWSTATS_206'}) : $max_average_k; + } + + $dataTable .= '' . ((scalar keys %_downloads) / 2) . ' ' .$Message[178] . '' + . (( $ShowDownloadsStats =~ /H/i ) ? '' . $Message[57] . '206 ' . $Message[57] .'' :'') + . (( $ShowDownloadsStats =~ /B/i ) ? '' . $Message[75] . '' . $Message[106] . '':'') + . ''; + + for my $u (@sortedDlKeys) + { + my $ext = Get_Extension(qr/\.(\w{1,6})$/, $u); + my $img = ' '; + } + + $dataTable .= '(' . $nametype . ')  ' . &HTMLShowURLInfo($u) . ' ' . $img . '' + . (( $ShowDownloadsStats =~ /H/i ) ? HTMLDataCellWithBar('h', $_downloads{$u}->{'AWSTATS_HITS'}, Format_Number($_downloads{$u}->{'AWSTATS_HITS'}), $total_h) : '') + . (( $ShowDownloadsStats =~ /H/i ) ? HTMLDataCellWithBar('h', $_downloads{$u}->{'AWSTATS_206'}, Format_Number($_downloads{$u}->{'AWSTATS_206'}), $total_206) : '') + . (( $ShowDownloadsStats =~ /B/i ) ? HTMLDataCellWithBar('b', $_downloads{$u}->{'AWSTATS_SIZE'}, Format_Bytes($_downloads{$u}->{'AWSTATS_SIZE'}), $max_k) : '') + . (( $ShowDownloadsStats =~ /B/i ) ? HTMLDataCellWithBar('b', $average, Format_Bytes($average), $max_average_k) : '') + . ''; + } + + return &tab_head($title, join( ' ', @links ), 'downloads') . $chart + . '' . $dataTable . '
    ' . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the hosts chart and table +# Function: Return the hosts chart and table # Parameters: $NewLinkParams, $NewLinkTarget # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainHosts{ my $NewLinkParams = shift; my $NewLinkTarget = shift; + + if ($Debug) { debug( 'ShowHostsStats', 2 ); } + + my $title = $Message[81]; + my @links = (); + my $tooltip = my $graph = my $tableData = my $tableHeader = ''; + my $total_p = my $total_h = my $total_k = 0; + my $max_p = my $max_h = my $max_k = 0; + my $regipv4 = qr/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; - if ($Debug) { debug( "ShowHostsStats", 2 ); } - print "$Center 
    \n"; - my $title = -"$Message[81] ($Message[77] $MaxNbOf{'HostsShown'})   -   $Message[80]   -   $Message[9]   -   $Message[45]"; - - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title = "$title   -   $Message[179]"); - } - - &tab_head( "$title", 19, 0, 'visitors' ); + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'unknownip', $Message[45])); + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'lasthosts', $Message[9])); + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'allhosts', $Message[80])); + + if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push(@links, '' + . $Message[179] . ''); + } + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } + + if ($HTMLOutput{'allhosts'}) + { + $title .= ' - ' . $Message[80]; + &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Host'}, \%_host_h, \%_host_p ); + } + elsif ($HTMLOutput{'lasthosts'}){ + $title .= ' - ' . $Message[9]; + &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Host'}, \%_host_h, \%_host_l ); + } + elsif($HTMLOutput{'unknownip'}) + { + $title .= ' - ' . $Message[45]; + &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Host'}, \%_host_h, \%_host_p ); + } + else { + $title .= ' (' . $Message[77] . ' ' . $MaxNbOf{'HostsShown'} .')'; + &BuildKeyList( $MaxNbOf{'HostsShown'}, $MinHit{'Host'}, \%_host_h, \%_host_p ); + } - &BuildKeyList( $MaxNbOf{'HostsShown'}, $MinHit{'Host'}, \%_host_h, - \%_host_p ); - # Graph the top five in a pie chart - if (scalar @keylist > 1){ + if (scalar @keylist > 1) + { foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) { my @blocklabel = (); my @valdata = (); my @valcolor = ($color_p); - my $cnt = 0; my $suma = 0; - foreach my $key (@keylist) { - $suma=$suma + ( $_host_h{$key}); - $cnt++; - if ($cnt > 4) { last; } + + foreach my $key (@keylist) + { + $suma=$suma + ( $_host_h{$key}); + $cnt++; + if ($cnt > 4) { last; } } my $cnt = 0; - foreach my $key (@keylist) { - push @valdata, int( $_host_h{$key} / $suma * 1000 ) / 10; - push @blocklabel, "$key"; - $cnt++; - if ($cnt > 4) { last; } + foreach my $key (@keylist) + { + push @valdata, int( $_host_h{$key} / $suma * 1000 ) / 10; + push @blocklabel, "$key"; + $cnt++; + if ($cnt > 4) { last; } } - print ""; my $function = "ShowGraph_$pluginname"; - &$function( - "Hosts", "hosts", - 0, \@blocklabel, - 0, \@valcolor, - 0, 0, - 0, \@valdata - ); - print ""; + $graph .= '
    ' + . &$function( + "Hosts", "hosts", + 0, \@blocklabel, + 0, \@valcolor, + 0, 0, + 0, \@valdata + ) + . '
    '; } } - - print ""; - print ""; - if ( $MonthRequired ne 'all' ) { - print -"$Message[81] : ".Format_Number($TotalHostsKnown)." $Message[82], ".Format_Number($TotalHostsUnknown)." $Message[1]
    ".Format_Number($TotalUnique)." $Message[11]"; - } - else { - print "$Message[81] : " . ( scalar keys %_host_h ) . ""; - } - &HTMLShowHostInfo('__title__'); - if ( $ShowHostsStats =~ /P/i ) { - print "$Message[56]"; - } - if ( $ShowHostsStats =~ /H/i ) { - print "$Message[57]"; - } - if ( $ShowHostsStats =~ /B/i ) { - print "$Message[75]"; - } - if ( $ShowHostsStats =~ /L/i ) { - print "$Message[9]"; - } - print "\n"; - my $total_p = my $total_h = my $total_k = 0; - my $count = 0; - - my $regipv4 = qr/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/; - if ( $DynamicDNSLookup == 2 ) { - # Use static DNS file - &Read_DNS_Cache( \%MyDNSTable, "$DNSStaticCacheFile", "", 1 ); - } + $tableHeader .= '' + . (( $ShowHostsStats =~ /P/i ) ? '' . ucfirst($Message[28]) . '' : '') #tooltip3 + . (( $ShowHostsStats =~ /H/i ) ? '' . $Message[57] . '' : '') #tt4 + . (( $ShowHostsStats =~ /B/i ) ? '' . $Message[75] . '' : '') #tt5 + . &HTMLShowHostInfo('__title__') + . (( $ShowHostsStats =~ /L/i ) ? '' . $Message[9] . '' : '') + . ''; - foreach my $key (@keylist) { - print ""; - print "$key"; - - if ($DynamicDNSLookup) { - # Dynamic reverse DNS lookup - if ($key =~ /$regipv4/o) { - my $lookupresult=lc(gethostbyaddr(pack("C4",split(/\./,$key)),AF_INET)); # This may be slow - if (! $lookupresult || $lookupresult =~ /$regipv4/o || ! IsAscii($lookupresult)) { - if ( $DynamicDNSLookup == 2 ) { - # Check static DNS file - $lookupresult = $MyDNSTable{$key}; - if ($lookupresult) { print " ($lookupresult)"; } - else { print ""; } - } - else { print ""; } - } - else { print " ($lookupresult)"; } - } - } + if ( $DynamicDNSLookup == 2 ) + { # Use static DNS file + &Read_DNS_Cache( \%MyDNSTable, "$DNSStaticCacheFile", "", 1 ); + } - print ""; - &HTMLShowHostInfo($key); - if ( $ShowHostsStats =~ /P/i ) { - print '' . ( Format_Number($_host_p{$key}) || " " ) . ''; - } - if ( $ShowHostsStats =~ /H/i ) { - print "".Format_Number($_host_h{$key}).""; - } - if ( $ShowHostsStats =~ /B/i ) { - print '' . Format_Bytes( $_host_k{$key} ) . ''; - } - if ( $ShowHostsStats =~ /L/i ) { - print '' - . ( - $_host_l{$key} - ? Format_Date( $_host_l{$key}, 1 ) - : '-' - ) - . ''; - } - print "\n"; + foreach my $key (@keylist) + { $total_p += $_host_p{$key}; $total_h += $_host_h{$key}; $total_k += $_host_k{$key} || 0; - $count++; + + $max_p = ($_host_p{$key} > $max_p) ? $_host_p{$key} : $max_p; + $max_h = ($_host_h{$key} > $max_h) ? $_host_h{$key} : $max_h; + $max_k = ($_host_k{$key} > $max_k) ? $_host_k{$key} : $max_k; + } + + foreach my $key (@keylist) + { + $tableData .= '' . '' . $key; + + if ($DynamicDNSLookup && $key =~ /$regipv4/o) + { # Dynamic reverse DNS lookup + my $lookupresult=lc(gethostbyaddr(pack("C4",split(/\./,$key)),AF_INET)); # This may be slow + if (! $lookupresult || $lookupresult =~ /$regipv4/o || ! IsAscii($lookupresult)) + { + if ( $DynamicDNSLookup == 2 ) + { # Check static DNS file + $lookupresult = $MyDNSTable{$key}; + if ($lookupresult) { $tableData .= ' (' . $lookupresult . ')'; } + } + } else { $tableData .= ' (' . $lookupresult . ')'; } + } + + $tableData .= '' + . (( $ShowHostsStats =~ /P/i ) ? HTMLDataCellWithBar('p', $_host_p{$key}, Format_Number($_host_p{$key}), $max_p) : '' ) + . (( $ShowHostsStats =~ /H/i ) ? HTMLDataCellWithBar('h', $_host_h{$key}, Format_Number($_host_h{$key}), $max_h) : '' ) + . (( $ShowHostsStats =~ /B/i ) ? HTMLDataCellWithBar('b', $_host_k{$key}, Format_Bytes($_host_k{$key}), $max_k) : '' ) + . &HTMLShowHostInfo($key) + . (( $ShowHostsStats =~ /L/i ) ? '' . ( $_host_l{$key} ? Format_Date( $_host_l{$key}, 1 ) : '-' ) . '' : '') + . ''; } + my $rest_p = $TotalPages - $total_p; my $rest_h = $TotalHits - $total_h; my $rest_k = $TotalBytes - $total_k; + if ( $rest_p > 0 || $rest_h > 0 || $rest_k > 0 ) - { # All other visitors (known or not) - print ""; - print -"$Message[2]"; - &HTMLShowHostInfo(''); - if ( $ShowHostsStats =~ /P/i ) { print "".Format_Number($rest_p).""; } - if ( $ShowHostsStats =~ /H/i ) { print "".Format_Number($rest_h).""; } - if ( $ShowHostsStats =~ /B/i ) { - print "" . Format_Bytes($rest_k) . ""; - } - if ( $ShowHostsStats =~ /L/i ) { print " "; } - print "\n"; - } - &tab_end(); + { # All other visitors (known or not) + $tableData .= '' . $Message[2] . '' + . (( $ShowHostsStats =~ /P/i ) ? '' . Format_Number($rest_p) . '' : '') + . (( $ShowHostsStats =~ /H/i ) ? '' . Format_Number($rest_h) . '' : '') + . (( $ShowHostsStats =~ /B/i ) ? '' . Format_Bytes($rest_k) . '' : '') + . &HTMLShowHostInfo('') + . (( $ShowHostsStats =~ /L/i ) ? '' : '') + . ''; + } + + return &tab_head( $title, join( ' ', @links ), 'hosts', $tooltip) . $graph + . '
    ' + . (( $MonthRequired ne 'all' ) + ? Format_Number($TotalHostsKnown) . ' ' . $Message[82] . ' - ' . Format_Number($TotalHostsUnknown) . ' ' . $Message[1]. ' - ' . Format_Number($TotalUnique) . ' ' . $Message[11] + : ( scalar keys %_host_h )) + . '
    ' + .'' . $tableHeader . $tableData . '
    ' + . &tab_end(); } #------------------------------------------------------------------------------ @@ -15530,9 +14190,9 @@ sub HTMLMainLogins{ my $NewLinkTarget = shift; if ($Debug) { debug( "ShowAuthenticatedUsers", 2 ); } - print "$Center 
    \n"; + print " "; my $title = -"$Message[94] ($Message[77] $MaxNbOf{'LoginShown'})   -   ($Message[77] $MaxNbOf{'LoginShown'})   -   $Message[9]"; } - &tab_head( "$title", 19, 0, 'logins' ); + print &tab_head( "$title", 19, 0, 'logins' ); print "$Message[94] : " . Format_Number(( scalar keys %_login_h )) . ""; &HTMLShowUserInfo('__title__'); if ( $ShowAuthenticatedUsers =~ /P/i ) { - print "$Message[56]"; + . ">" . ucfirst($Message[28]) . ""; } if ( $ShowAuthenticatedUsers =~ /H/i ) { - print "$Message[57]"; } if ( $ShowAuthenticatedUsers =~ /B/i ) { - print "$Message[75]"; } @@ -15652,558 +14312,435 @@ sub HTMLMainLogins{ } print "\n"; } - &tab_end(); + + print '' . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the robots chart and table +# Function: Return the robots chart and table # Parameters: $NewLinkParams, $NewLinkTarget # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainRobots{ + if ($Debug) { debug( "ShowRobotStats", 2 ); } + my $NewLinkParams = shift; my $NewLinkTarget = shift; - if ($Debug) { debug( "ShowRobotStats", 2 ); } - print "$Center 
    \n"; + my $title = $Message[53]; + my $html = ''; + my @links = (); - my $title = "$Message[53] ($Message[77] $MaxNbOf{'RobotShown'})   -   $Message[80]   -   $Message[9]"; + my $total_p = my $total_h = my $total_k = my $total_r = 0; - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title = "$title   -   $Message[179]"); - } - - &tab_head( "$title", 19, 0, 'robots'); - - print "" - . Format_Number(( scalar keys %_robot_h )) - . " $Message[51]*"; - if ( $ShowRobotsStats =~ /H/i ) { - print - "$Message[57]"; + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'allrobots', $Message[80])); + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'lastrobots', $Message[9])); + + if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push(@links, '' . $Message[179] . ''); + } + + my $TotalRRobots = 0; + foreach ( values %_robot_r ) { $TotalRRobots += $_; } + + my $tooltip = ''; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19) + . '

    ' . &$function(16) + . '

    ' . $Message[156] + . ( $TotalRRobots ? '
    ' . $Message[157] : '' ) + } + + if ( $HTMLOutput{'allrobots'} ) + { + &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Robot'}, \%_robot_h, \%_robot_h ); } - if ( $ShowRobotsStats =~ /B/i ) { - print - "$Message[75]"; + elsif ( $HTMLOutput{'lastrobots'} ) { + &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'Robot'}, \%_robot_h, \%_robot_l ); } - if ( $ShowRobotsStats =~ /L/i ) { - print "$Message[9]"; + else { + $title .= ' ('. $Message[77]. ' ' . $MaxNbOf{'RobotShown'} .')'; + &BuildKeyList( $MaxNbOf{'RobotShown'}, $MinHit{'Robot'}, \%_robot_h, \%_robot_h ); } - print "\n"; - my $total_p = my $total_h = my $total_k = my $total_r = 0; - my $count = 0; - &BuildKeyList( $MaxNbOf{'RobotShown'}, $MinHit{'Robot'}, \%_robot_h, - \%_robot_h ); - foreach my $key (@keylist) { - print "" - . ( $PageDir eq 'rtl' ? "" : "" ) - . ( $RobotsHashIDLib{$key} ? $RobotsHashIDLib{$key} : $key ) - . ( $PageDir eq 'rtl' ? "" : "" ) . ""; - if ( $ShowRobotsStats =~ /H/i ) { - print "" - . Format_Number(( $_robot_h{$key} - $_robot_r{$key} )) - . ( $_robot_r{$key} ? "+$_robot_r{$key}" : "" ) . ""; - } - if ( $ShowRobotsStats =~ /B/i ) { - print "" . Format_Bytes( $_robot_k{$key} ) . ""; - } - if ( $ShowRobotsStats =~ /L/i ) { - print "" - . ( - $_robot_l{$key} - ? Format_Date( $_robot_l{$key}, 1 ) - : '-' - ) - . ""; - } - print "\n"; + + # For bots we need to count Totals + # my $TotalPagesRobots = 0; #foreach (values %_robot_p) { $TotalPagesRobots+=$_; } + my $TotalHitsRobots = 0; + my $max_h = 0; + my $max_b = 0; + + foreach ( values %_robot_h ) + { + $TotalHitsRobots += $_; + $max_h = ($_ > $max_h) ? $_ : $max_h; + } + + my $TotalBytesRobots = 0; + foreach ( values %_robot_k ) + { + $TotalBytesRobots += $_; + $max_b = ($_ > $max_b) ? $_ : $max_b; + } + + foreach my $key (@keylist) + { + $html .= '' + . ( $PageDir eq 'rtl' ? '' : '' ) + . ( $RobotsHashIDLib{$key} ? $RobotsHashIDLib{$key} : $key ) + . ( $PageDir eq 'rtl' ? '' : '' ) . '' + . (( $ShowRobotsStats =~ /H/i ) ? HTMLDataCellWithBar('h', ($_robot_h{$key} - $_robot_r{$key}), Format_Number(( $_robot_h{$key} - $_robot_r{$key} )) . ( $_robot_r{$key} ? ' +' . $_robot_r{$key} . '' : '' ), $max_h): '') + . (( $ShowRobotsStats =~ /B/i ) ? HTMLDataCellWithBar('b', $_robot_k{$key}, Format_Bytes( $_robot_k{$key} ), $max_b): '') + . (( $ShowRobotsStats =~ /L/i ) ? '' . ($_robot_l{$key} ? Format_Date( $_robot_l{$key}, 1 ) : '-' ) . '' : '') + . ''; #$total_p += $_robot_p{$key}; $total_h += $_robot_h{$key}; $total_k += $_robot_k{$key} || 0; $total_r += $_robot_r{$key} || 0; - $count++; } - - # For bots we need to count Totals - my $TotalPagesRobots = - 0; #foreach (values %_robot_p) { $TotalPagesRobots+=$_; } - my $TotalHitsRobots = 0; - foreach ( values %_robot_h ) { $TotalHitsRobots += $_; } - my $TotalBytesRobots = 0; - foreach ( values %_robot_k ) { $TotalBytesRobots += $_; } - my $TotalRRobots = 0; - foreach ( values %_robot_r ) { $TotalRRobots += $_; } - my $rest_p = 0; #$rest_p=$TotalPagesRobots-$total_p; + + # my $rest_p = 0; #$rest_p=$TotalPagesRobots-$total_p; my $rest_h = $TotalHitsRobots - $total_h; my $rest_k = $TotalBytesRobots - $total_k; my $rest_r = $TotalRRobots - $total_r; - if ( $rest_p > 0 || $rest_h > 0 || $rest_k > 0 || $rest_r > 0 ) - { # All other robots - print -"$Message[2]"; - if ( $ShowRobotsStats =~ /H/i ) { - print "" - . Format_Number(( $rest_h - $rest_r )) - . ( $rest_r ? "+$rest_r" : "" ) . ""; - } - if ( $ShowRobotsStats =~ /B/i ) { - print "" . ( Format_Bytes($rest_k) ) . ""; - } - if ( $ShowRobotsStats =~ /L/i ) { print " "; } - print "\n"; - } - &tab_end( - "* $Message[156]" . ( $TotalRRobots ? " $Message[157]" : "" ) ); + if ( $rest_h > 0 || $rest_k > 0 || $rest_r > 0 ) + { # All other robots + $html .= '' . $Message[2] . '' + . (( $ShowRobotsStats =~ /H/i ) ? HTMLDataCellWithBar('h', ($rest_h - ($rest_r), Format_Number( $rest_h - $rest_r ) . ( $rest_r ? "+$rest_r" : '' )), $max_h) : '') + . (( $ShowRobotsStats =~ /B/i ) ? HTMLDataCellWithBar('b', $rest_k, Format_Bytes($rest_k), $max_b) : '') + . (( $ShowRobotsStats =~ /L/i ) ? ' ' : '') + . ''; + } + + return &tab_head($title, join( ' ', @links ), 'robots', $tooltip, '') + . '' + . '' + . (( $ShowRobotsStats =~ /H/i ) ? '' : '') + . (( $ShowRobotsStats =~ /B/i ) ? '' : '') + . (( $ShowRobotsStats =~ /L/i ) ? '' : '') + . '' + . $html + . '
    ' . Format_Number(( scalar keys %_robot_h )) . ' ' . $Message[51] . '' . $Message[57] . '' . $Message[75] . '' . $Message[9] . '
    ' + . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the worms chart and table +# Function: Return the worms chart and table # Parameters: - # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainWorms{ if ($Debug) { debug( "ShowWormsStats", 2 ); } - print "$Center 
    \n"; - &tab_head( "$Message[163] ($Message[77] $MaxNbOf{'WormsShown'})", - 19, 0, 'worms' ); - print ""; - print "" . Format_Number(( scalar keys %_worm_h )) . " $Message[164]*"; - print "$Message[167]"; - if ( $ShowWormsStats =~ /H/i ) { - print - "$Message[57]"; - } - if ( $ShowWormsStats =~ /B/i ) { - print - "$Message[75]"; - } - if ( $ShowWormsStats =~ /L/i ) { - print "$Message[9]"; - } - print "\n"; - my $total_p = my $total_h = my $total_k = 0; - my $count = 0; - &BuildKeyList( $MaxNbOf{'WormsShown'}, $MinHit{'Worm'}, \%_worm_h, - \%_worm_h ); - foreach my $key (@keylist) { - print ""; - print "" - . ( $PageDir eq 'rtl' ? "" : "" ) - . ( $WormsHashLib{$key} ? $WormsHashLib{$key} : $key ) - . ( $PageDir eq 'rtl' ? "" : "" ) . ""; - print "" - . ( $PageDir eq 'rtl' ? "" : "" ) - . ( $WormsHashTarget{$key} ? $WormsHashTarget{$key} : $key ) - . ( $PageDir eq 'rtl' ? "" : "" ) . ""; - if ( $ShowWormsStats =~ /H/i ) { - print "" . Format_Number($_worm_h{$key}) . ""; - } - if ( $ShowWormsStats =~ /B/i ) { - print "" . Format_Bytes( $_worm_k{$key} ) . ""; - } - if ( $ShowWormsStats =~ /L/i ) { - print "" - . ( - $_worm_l{$key} - ? Format_Date( $_worm_l{$key}, 1 ) - : '-' - ) - . ""; - } - print "\n"; - #$total_p += $_worm_p{$key}; - $total_h += $_worm_h{$key}; - $total_k += $_worm_k{$key} || 0; - $count++; - } + if(!%_worm_h){return '';} + + my $tooltip = ''; + my $html = ''; + my $total_h = my $total_k = 0; #my $total_p + my $max_h = my $max_k = 0; #my $max_p + my $TotalHitsWorms = my $TotalBytesWorms = 0; # my $TotalPagesWorms - # For worms we need to count Totals - my $TotalPagesWorms = - 0; #foreach (values %_worm_p) { $TotalPagesWorms+=$_; } - my $TotalHitsWorms = 0; + #foreach (values %_worm_p) { $TotalPagesWorms+=$_; } foreach ( values %_worm_h ) { $TotalHitsWorms += $_; } - my $TotalBytesWorms = 0; foreach ( values %_worm_k ) { $TotalBytesWorms += $_; } - my $rest_p = 0; #$rest_p=$TotalPagesRobots-$total_p; + # my $rest_p = $TotalPagesRobots-$total_p; my $rest_h = $TotalHitsWorms - $total_h; my $rest_k = $TotalBytesWorms - $total_k; - if ( $rest_p > 0 || $rest_h > 0 || $rest_k > 0 ) { # All other worms - print ""; - print -"$Message[2]"; - print "-"; - if ( $ShowWormsStats =~ /H/i ) { - print "" . Format_Number(($rest_h)) . ""; - } - if ( $ShowWormsStats =~ /B/i ) { - print "" . ( Format_Bytes($rest_k) ) . ""; - } - if ( $ShowWormsStats =~ /L/i ) { print " "; } - print "\n"; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19) . '

    ' .&$function(21) . '

    *' . $Message[158]; + } + + &BuildKeyList( $MaxNbOf{'WormsShown'}, $MinHit{'Worm'}, \%_worm_h, \%_worm_h ); + + foreach my $key (@keylist) + { + #$total_p += $_worm_p{$key}; + $total_h += $_worm_h{$key} || 0; + $total_k += $_worm_k{$key} || 0; + + $max_h = (($_worm_h{$key} > $max_h) ? $_worm_h{$key} : $max_h); + $max_k = (($_worm_k{$key} > $max_k) ? $_worm_k{$key} : $max_k); } - &tab_end("* $Message[158]"); + + foreach my $key (@keylist) + { + $html .= '' + . '' : '' ) . '>' + . ( $WormsHashLib{$key} ? $WormsHashLib{$key} : $key ) + . '' + . '' : '' ) . '>' + . ( $WormsHashTarget{$key} ? $WormsHashTarget{$key} : $key ) + . '' + . (( $ShowWormsStats =~ /H/i ) ? HTMLDataCellWithBar('u', $_worm_h{$key}, Format_Number($_worm_h{$key}), $max_h) : '') + . (( $ShowWormsStats =~ /B/i ) ? HTMLDataCellWithBar('u', $_worm_k{$key}, Format_Bytes($_worm_k{$key}), $max_k) : '') + . (( $ShowWormsStats =~ /L/i ) ? '' . (($_worm_l{$key}) ? Format_Date( $_worm_l{$key}, 1 ) : '-') : '') + . ''; + } + + if ( $rest_h > 0 || $rest_k > 0 ) + { # All other worms + $html .= '' + . '' . $Message[2] . '' + . '-' + . (( $ShowWormsStats =~ /H/i ) ? '' . Format_Number(($rest_h)) . '' : '') + . (( $ShowWormsStats =~ /B/i ) ? '' . ( Format_Bytes($rest_k) ) . '' : '') + . (( $ShowWormsStats =~ /L/i ) ? ' ' : '') + . ''; + } + + return &tab_head( $Message[163] . ' (' . $Message[77] . $MaxNbOf{'WormsShown'} . ')', '', 'worms', $tooltip) + . '' + . HTMLDataTableHeader(Format_Number(( scalar keys %_worm_h )) . ' ' . $Message[163], $ShowWormsStats) + . $html + . '
    ' . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the sessions chart and table +# Function: Return the sessions chart and table # Parameters: - # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainSessions{ if ($Debug) { debug( "ShowSessionsStats", 2 ); } - print "$Center 
    \n"; - my $title = "$Message[117]"; - &tab_head( $title, 19, 0, 'sessions' ); + + my $title = $Message[117]; + my $tooltip = ''; + my $html = ''; + my $Totals = 0; my $average_s = 0; - foreach (@SessionsRange) { + my $total_s = 0; + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19) . '

    ' . &$function(1); + } + + foreach (@SessionsRange) + { $average_s += ( $_session{$_} || 0 ) * $SessionsAverage{$_}; $Totals += $_session{$_} || 0; } - if ($Totals) { $average_s = int( $average_s / $Totals ); } - else { $average_s = '?'; } - print "$Message[10]: ".Format_Number($TotalVisits)." - $Message[96]: ".Format_Number($average_s)." s$Message[10]$Message[15]\n"; - $average_s = 0; - my $total_s = 0; - my $count = 0; - foreach my $key (@SessionsRange) { - my $p = 0; - if ($TotalVisits) { - $p = int( $_session{$key} / $TotalVisits * 1000 ) / 10; - } + + $average_s = ($Totals) ? int( $average_s / $Totals ) : '?'; + + foreach my $key (@SessionsRange) + { + my $p = ($TotalVisits) ? (int( $_session{$key} / $TotalVisits * 1000 ) * .1) : 0; + $total_s += $_session{$key} || 0; - print "$key"; - print "" - . ( $_session{$key} ? Format_Number($_session{$key}) : " " ) . ""; - print "" - . ( $_session{$key} ? "$p %" : " " ) . ""; - print "\n"; - $count++; + + $html .= '' + . HTMLDataCellWithBar('v', ($_session{$key} || 0), $key, $Totals) + . '' . ( $_session{$key} ? Format_Number($_session{$key}) : '' ) . '' + . '' . ( $_session{$key} ? $p . ' %' : '' ) . '' + . ''; } + my $rest_s = $TotalVisits - $total_s; - if ( $rest_s > 0 ) { # All others sessions - my $p = 0; - if ($TotalVisits) { - $p = int( $rest_s / $TotalVisits * 1000 ) / 10; - } - print "$Message[0]"; - print "".Format_Number($rest_s).""; - print "" . ( $rest_s ? "$p %" : " " ) . ""; - print "\n"; - } - &tab_end(); + + if ( $rest_s > 0 ) + { # All others sessions + my $p = ($TotalVisits) ? (int( $rest_s / $TotalVisits * 1000 ) * .1) : 0; + + #TODO add tooltip 20 + $html = '' + . '' . $Message[0] . '' + . '' . Format_Number($rest_s) . '' + . '' . ( $rest_s ? "$p %" : '' ) . '' + . ''; + } + + return &tab_head( $title, '', 'sessions', $tooltip) + . '
    ' . $Message[10] . ': ' . Format_Number($TotalVisits) . ' - ' . $Message[96] . ': ' . Format_Number($average_s) . ' s' . '
    ' + . '' + . $html + . '
    ' . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the pages chart and table +# Function: Return the pages chart and table # Parameters: $NewLinkParams, $NewLinkTarget # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainPages{ my $NewLinkParams = shift; my $NewLinkTarget = shift; - - if ($Debug) { - debug( -"ShowPagesStats (MaxNbOf{'PageShown'}=$MaxNbOf{'PageShown'} TotalDifferentPages=$TotalDifferentPages)", - 2 - ); - } - my $regext = qr/\.(\w{1,6})$/; - 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]"; + + if ($Debug) {debug("ShowPagesStats (MaxNbOf{'PageShown'}=$MaxNbOf{'PageShown'} TotalDifferentPages=$TotalDifferentPages)", 2);} + + my $regext = qr/\.(\w{1,6})$/; + my $title = $Message[19]; + my @links = (); + my $tooltip = my $tableHeader = my $tableData = ''; + my $total_p = my $total_e = my $total_x = my $total_k = 0; + my $max_p = my $max_k = my $max_e = my $max_x = 0; + + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'urldetail', $Message[80])); + + if ( $ShowPagesStats =~ /E/i ) + { + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'urlentry', $Message[104])); + } + + if ( $ShowPagesStats =~ /X/i ) + { + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'urlexit', $Message[116])); + } + + if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push(@links, '' . $Message[179] . ''); + } + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); } - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title .= "   -   $Message[179]"); - } - - &tab_head( "$title", 19, 0, 'urls' ); - print -"".Format_Number($TotalDifferentPages)." $Message[28]"; - if ( $ShowPagesStats =~ /P/i && $LogType ne 'F' ) { - print - "$Message[29]"; + $tableHeader .= '' . Format_Number($TotalDifferentPages) . ' ' . $Message[28] .'' + . (( $ShowPagesStats =~ /P/i && $LogType ne 'F' ) ? '' . $Message[29] .'' : '') + . (( $ShowPagesStats =~ /[PH]/i && $LogType eq 'F' ) ? '' . $Message[57] . '' : '') + . (( $ShowPagesStats =~ /B/i ) ? '' . $Message[75] . '' : '') + . (( $ShowPagesStats =~ /B/i ) ? '' . $Message[106] . '' : '') + . (( $ShowPagesStats =~ /E/i ) ? '' . $Message[104] . '' : '') + . (( $ShowPagesStats =~ /X/i ) ? '' . $Message[116] . '' : ''); + + # Call to plugins' function ShowPagesAddField + foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowPagesAddField'} } ) + { + my $function = "ShowPagesAddField_$pluginname"; + $tableHeader .= &$function('title'); } - if ( $ShowPagesStats =~ /[PH]/i && $LogType eq 'F' ) { - print - "$Message[57]"; + + $tableHeader .= ''; + + if ( $HTMLOutput{'urlentry'} ) { + $title .= ' - ' . $Message[104]; + &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'File'}, \%_url_e, \%_url_e ); } - if ( $ShowPagesStats =~ /B/i ) { - print - "$Message[106]"; + elsif ( $HTMLOutput{'urlexit'} ) { + $title .= ' - ' . $Message[116]; + &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'File'}, \%_url_x, \%_url_x ); } - if ( $ShowPagesStats =~ /E/i ) { - print - "$Message[104]"; + elsif ( $HTMLOutput{'urldetail'} ) { + $title .= ' - ' . $Message[80]; + &BuildKeyList( $MaxRowsInHTMLOutput, $MinHit{'File'}, \%_url_p, \%_url_p ); } - if ( $ShowPagesStats =~ /X/i ) { - print - "$Message[116]"; + else { + $title .= ' (' . $Message[77] . ' ' . $MaxNbOf{'PageShown'} . ')' + &BuildKeyList( $MaxNbOf{'PageShown'}, $MinHit{'File'}, \%_url_p, \%_url_p ); } - # Call to plugins' function ShowPagesAddField - foreach - my $pluginname ( keys %{ $PluginsLoaded{'ShowPagesAddField'} } ) + foreach my $key (@keylist) { - - # my $function="ShowPagesAddField_$pluginname('title')"; - # eval("$function"); - my $function = "ShowPagesAddField_$pluginname"; - &$function('title'); - } - print " \n"; - my $total_p = my $total_e = my $total_x = my $total_k = 0; - my $max_p = 1; - my $max_k = 1; - my $count = 0; - &BuildKeyList( $MaxNbOf{'PageShown'}, $MinHit{'File'}, \%_url_p, - \%_url_p ); - foreach my $key (@keylist) { - if ( $_url_p{$key} > $max_p ) { $max_p = $_url_p{$key}; } - if ( $_url_k{$key} / ( $_url_p{$key} || 1 ) > $max_k ) { - $max_k = $_url_k{$key} / ( $_url_p{$key} || 1 ); - } + $max_p = ( $_url_p{$key} > $max_p ) ? $_url_p{$key} : $max_p; + $max_k = ( $_url_k{$key} > $max_k ) ? $_url_k{$key} : $max_k; + $max_e = ( $_url_e{$key} > $max_e ) ? $_url_e{$key} : $max_e; + $max_x = ( $_url_x{$key} > $max_x ) ? $_url_x{$key} : $max_x; } - foreach my $key (@keylist) { - print ""; - &HTMLShowURLInfo($key); - print ""; - my $bredde_p = 0; - my $bredde_e = 0; - my $bredde_x = 0; - my $bredde_k = 0; - if ( $max_p > 0 ) { - $bredde_p = - int( $BarWidth * ( $_url_p{$key} || 0 ) / $max_p ) + 1; - } - if ( ( $bredde_p == 1 ) && $_url_p{$key} ) { $bredde_p = 2; } - if ( $max_p > 0 ) { - $bredde_e = - int( $BarWidth * ( $_url_e{$key} || 0 ) / $max_p ) + 1; - } - if ( ( $bredde_e == 1 ) && $_url_e{$key} ) { $bredde_e = 2; } - if ( $max_p > 0 ) { - $bredde_x = - int( $BarWidth * ( $_url_x{$key} || 0 ) / $max_p ) + 1; - } - if ( ( $bredde_x == 1 ) && $_url_x{$key} ) { $bredde_x = 2; } - if ( $max_k > 0 ) { - $bredde_k = - int( $BarWidth * - ( ( $_url_k{$key} || 0 ) / ( $_url_p{$key} || 1 ) ) / - $max_k ) + 1; - } - if ( ( $bredde_k == 1 ) && $_url_k{$key} ) { $bredde_k = 2; } - if ( $ShowPagesStats =~ /P/i && $LogType ne 'F' ) { - print "".Format_Number($_url_p{$key}).""; - } - if ( $ShowPagesStats =~ /[PH]/i && $LogType eq 'F' ) { - print "".Format_Number($_url_p{$key}).""; - } - if ( $ShowPagesStats =~ /B/i ) { - print "" - . ( - $_url_k{$key} - ? Format_Bytes( - $_url_k{$key} / ( $_url_p{$key} || 1 ) - ) - : " " - ) - . ""; - } - if ( $ShowPagesStats =~ /E/i ) { - print "" - . ( $_url_e{$key} ? Format_Number($_url_e{$key}) : " " ) . ""; - } - if ( $ShowPagesStats =~ /X/i ) { - print "" - . ( $_url_x{$key} ? Format_Number($_url_x{$key}) : " " ) . ""; - } - - # Call to plugins' function ShowPagesAddField - foreach my $pluginname ( - keys %{ $PluginsLoaded{'ShowPagesAddField'} } ) - { - # my $function="ShowPagesAddField_$pluginname('$key')"; - # eval("$function"); - my $function = "ShowPagesAddField_$pluginname"; - &$function($key); - } - print ""; - if ( $ShowPagesStats =~ /P/i && $LogType ne 'F' ) { - print -"
    "; - } - if ( $ShowPagesStats =~ /[PH]/i && $LogType eq 'F' ) { - print -"
    "; - } - if ( $ShowPagesStats =~ /B/i ) { - print -"
    "; - } - if ( $ShowPagesStats =~ /E/i ) { - print -"
    "; - } - if ( $ShowPagesStats =~ /X/i ) { - print -""; - } - print "\n"; + foreach my $key (@keylist) + { $total_p += $_url_p{$key} || 0; $total_e += $_url_e{$key} || 0; $total_x += $_url_x{$key} || 0; $total_k += $_url_k{$key} || 0; - $count++; + + $tableData .= '' . &HTMLShowURLInfo($key) . '' + . (( ($ShowPagesStats =~ /P/i && $LogType ne 'F') || ($ShowPagesStats =~ /[PH]/i && $LogType eq 'F') ) + ? HTMLDataCellWithBar('p', $_url_p{$key}, Format_Number($_url_p{$key}), $max_p) : '') + . (( $ShowPagesStats =~ /B/i ) ? HTMLDataCellWithBar('b', $_url_k{$key}, Format_Bytes($_url_k{$key}), $max_k) : '') + . (( $ShowPagesStats =~ /B/i ) ? HTMLDataCellWithBar('b', ($_url_k{$key} / $_url_p{$key}), Format_Bytes($_url_k{$key} / $_url_p{$key}), ($max_k / $max_p)) : '') + . (( $ShowPagesStats =~ /E/i ) ? HTMLDataCellWithBar('e', $_url_e{$key}, Format_Number($_url_e{$key}), $max_e) : '') + . (( $ShowPagesStats =~ /X/i ) ? HTMLDataCellWithBar('x', $_url_x{$key}, Format_Number($_url_x{$key}), $max_x) : ''); + + # Call to plugins' function ShowPagesAddField + foreach my $pluginname (keys %{ $PluginsLoaded{'ShowPagesAddField'} } ) + { + my $function = "ShowPagesAddField_$pluginname"; + $tableData .= &$function($key); + } + + $tableData .= ''; } + my $rest_p = $TotalPages - $total_p; my $rest_e = $TotalEntries - $total_e; my $rest_x = $TotalExits - $total_x; my $rest_k = $TotalBytesPages - $total_k; if ( $rest_p > 0 || $rest_k > 0 || $rest_e > 0 || $rest_x > 0 ) - { # All other urls - print -"$Message[2]"; - if ( $ShowPagesStats =~ /P/i && $LogType ne 'F' ) { - print "".Format_Number($rest_p).""; - } - if ( $ShowPagesStats =~ /[PH]/i && $LogType eq 'F' ) { - print "".Format_Number($rest_p).""; - } - if ( $ShowPagesStats =~ /B/i ) { - print "" - . ( - $rest_k - ? Format_Bytes( $rest_k / ( $rest_p || 1 ) ) - : " " - ) - . ""; - } - if ( $ShowPagesStats =~ /E/i ) { - print "" . ( $rest_e ? Format_Number($rest_e) : " " ) . ""; - } - if ( $ShowPagesStats =~ /X/i ) { - print "" . ( $rest_x ? Format_Number($rest_x) : " " ) . ""; - } + { # All other urls + $tableData .= '' . $Message[2] . '' + . (( ($ShowPagesStats =~ /P/i && $LogType ne 'F') || ($ShowPagesStats =~ /[PH]/i && $LogType eq 'F') ) + ? HTMLDataCellWithBar('p', $rest_p, Format_Number($rest_p), $max_p) : '') + . (( $ShowPagesStats =~ /B/i ) ? HTMLDataCellWithBar('b', $rest_k, Format_Bytes($rest_k), $max_k) : '') + . (( $ShowPagesStats =~ /B/i ) ? HTMLDataCellWithBar('b', $rest_k / ($rest_p || 1), Format_Bytes($rest_k / ($rest_p || 1)), $max_k / ($max_p || 1)) : '') + . (( $ShowPagesStats =~ /E/i ) ? HTMLDataCellWithBar('e', $rest_e, Format_Number($rest_e), $max_e) : '') + . (( $ShowPagesStats =~ /X/i ) ? HTMLDataCellWithBar('e', $rest_x, Format_Number($rest_x), $max_x) : ''); # Call to plugins' function ShowPagesAddField - foreach my $pluginname ( - keys %{ $PluginsLoaded{'ShowPagesAddField'} } ) + foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowPagesAddField'} } ) { - - # my $function="ShowPagesAddField_$pluginname('')"; - # eval("$function"); my $function = "ShowPagesAddField_$pluginname"; - &$function(''); + $tableData .= &$function(''); } - print " \n"; + $tableData .= ''; } - &tab_end(); + + return &tab_head($title, join( ' ', @links ), 'urls', $tooltip) + . '' . $tableHeader . $tableData . '
    ' + . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the OS chart and table +# Function: Return the OS chart and table # Parameters: $NewLinkParams, $NewLinkTarget # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainOS{ + if ($Debug) { debug( "ShowOSStats", 2 ); } + my $NewLinkParams = shift; my $NewLinkTarget = shift; - if ($Debug) { debug( "ShowOSStats", 2 ); } - print "$Center 
    \n"; - my $Totalh = 0; - my $Totalp = 0; - my %new_os_h = (); - my %new_os_p = (); - OSLOOP: foreach my $key ( keys %_os_h ) { + my $Totalh = my $Totalp = 0; + my $total_h = my $total_p = 0; + my @links = my %new_os_h = my %new_os_p = (); + my $tooltip = my $dataTableHeader = my $dataTableBody = my $graph = ''; + my $title = $Message[59] . ' (' . $Message[77] . ' ' . $MaxNbOf{'OsShown'} . ')'; + + OSLOOP: foreach my $key ( keys %_os_h ) + { $Totalh += $_os_h{$key}; $Totalp += $_os_p{$key}; - foreach my $family ( keys %OSFamily ) { - if ( $key =~ /^$family/i ) { + foreach my $family ( keys %OSFamily ) + { + if ( $key =~ /^$family/i ) + { $new_os_h{"${family}cumul"} += $_os_h{$key}; $new_os_p{"${family}cumul"} += $_os_p{$key}; next OSLOOP; @@ -16212,43 +14749,30 @@ sub HTMLMainOS{ $new_os_h{$key} += $_os_h{$key}; $new_os_p{$key} += $_os_p{$key}; } - my $title = -"$Message[59] ($Message[77] $MaxNbOf{'OsShown'})   -   $Message[80]/$Message[58]   -   $Message[0]"; - - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title .= "   -   $Message[179]"); - } - - &tab_head( "$title", 19, 0, 'os' ); - - &BuildKeyList( $MaxNbOf{'OsShown'}, $MinHit{'Os'}, \%new_os_h, - \%new_os_p ); - - # Graph the top five in a pie chart - if (scalar @keylist > 1){ + + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'osdetail', $Message[80] . '/' . $Message[58])); + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'unknownos', $Message[0])); + + if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push(@links, '' . $Message[179] . ''); + } + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } + + &BuildKeyList( $MaxNbOf{'OsShown'}, $MinHit{'Os'}, \%new_os_h, \%new_os_p ); + + if (scalar @keylist > 1) + { # Graph the top five in a pie chart foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) { - my @blocklabel = (); - my @valdata = (); + my @blocklabel = my @valdata = (); my @valcolor = ($color_p); my $cnt = 0; foreach my $key (@keylist) { @@ -16269,109 +14793,118 @@ sub HTMLMainOS{ $cnt++; if ($cnt > 4) { last; } } - print ""; + my $function = "ShowGraph_$pluginname"; - &$function( - "Top 5 Operating Systems", "oss", + $graph .= '
    ' + . &$function( + "Top 5 Operating Systems", "oss", 0, \@blocklabel, 0, \@valcolor, 0, 0, 0, \@valdata - ); - print ""; + ) + .'
    '; } } - print -" $Message[59]"; - print -"$Message[56]$Message[15]"; - print -"$Message[57]$Message[15]\n"; - my $total_h = 0; - my $total_p = 0; - my $count = 0; + $dataTableHeader .= '' + . '' . ucfirst($Message[28]) . '' + . '' . $Message[57] . '' + . ''; - foreach my $key (@keylist) { - my $p_h = ' '; - my $p_p = ' '; - if ($Totalh) { + $dataTableBody .= ''; + foreach my $key (@keylist) + { + my $p_h = my $p_p = ''; + if ($Totalh) + { $p_h = int( $new_os_h{$key} / $Totalh * 1000 ) / 10; - $p_h = "$p_h %"; } - if ($Totalp) { + if ($Totalp) + { $p_p = int( $new_os_p{$key} / $Totalp * 1000 ) / 10; - $p_p = "$p_p %"; } - if ( $key eq 'Unknown' ) { - print "$Message[0]" - . "".Format_Number($_os_p{$key})."$p_p".Format_Number($_os_h{$key})."$p_h\n"; + + $dataTableBody .= ''; + + if ( $key eq 'Unknown' ) + { + $dataTableBody .= '' . $Message[0] . ' ' + . HTMLDataCellWithBar('p', $_os_p{$key}, '' . $p_p . '% ' . Format_Number($_os_p{$key}), $Totalp) + . HTMLDataCellWithBar('h', $_os_h{$key}, '' . $p_h . '% ' . Format_Number($_os_h{$key}), $Totalh); } - else { + else + { my $keywithoutcumul = $key; $keywithoutcumul =~ s/cumul$//i; - my $libos = $OSHashLib{$keywithoutcumul} - || $keywithoutcumul; + my $libos = $OSHashLib{$keywithoutcumul} || $keywithoutcumul; my $nameicon = $keywithoutcumul; $nameicon =~ s/[^\w]//g; - if ( $OSFamily{$keywithoutcumul} ) { + + if ( $OSFamily{$keywithoutcumul} ) + { $libos = "" . $OSFamily{$keywithoutcumul} . ""; } - print "$libos".Format_Number($new_os_p{$key})."$p_p".Format_Number($new_os_h{$key})."$p_h\n"; + $dataTableBody .= '' . $libos . ' ' + . HTMLDataCellWithBar('p', $new_os_p{$key}, '' . $p_p . '% ' . Format_Number($new_os_p{$key}), $Totalp) + . HTMLDataCellWithBar('h', $new_os_h{$key}, '' . $p_h . '% ' . Format_Number($new_os_h{$key}), $Totalh); } + + $dataTableBody .= ''; + $total_h += $new_os_h{$key}; $total_p += $new_os_p{$key}; - $count++; } - if ($Debug) { + + if ($Debug) + { debug( "Total real / shown : $Totalh / $total_h", 2 ); } + my $rest_h = $Totalh - $total_h; my $rest_p = $Totalp - $total_p; - if ( $rest_h > 0 ) { + if ( $rest_h > 0 ) + { my $p_p; my $p_h; if ($Totalh) { $p_h = int( $rest_h / $Totalh * 1000 ) / 10; } if ($Totalp) { $p_p = int( $rest_p / $Totalp * 1000 ) / 10; } - print ""; - print " "; - print -"$Message[2]".Format_Number($rest_p).""; - print "$p_p %".Format_Number($rest_h)."$p_h %\n"; + $dataTableBody .= '' . $Message[2] .'' + . HTMLDataCellWithBar('p', $rest_p, '' . $p_p . '% ' . Format_Number($rest_p), $Totalp) + . HTMLDataCellWithBar('h', $rest_h, '' . $p_h . '% ' . Format_Number($rest_h), $Totalh); } - &tab_end(); + $dataTableBody .= ''; + + return &tab_head($title, join( ' ', @links ), 'os', $tooltip) + . $graph . '' . $dataTableHeader . $dataTableBody . '
    ' . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the Browsers chart and table +# Function: Return the Browsers chart and table # Parameters: $NewLinkParams, $NewLinkTarget # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainBrowsers{ + if ($Debug) { debug( "ShowBrowsersStats", 2 ); } + my $NewLinkParams = shift; my $NewLinkTarget = shift; - if ($Debug) { debug( "ShowBrowsersStats", 2 ); } - print "$Center 
    \n"; - my $Totalh = 0; - my $Totalp = 0; - my %new_browser_h = (); - my %new_browser_p = (); - BROWSERLOOP: foreach my $key ( keys %_browser_h ) { + my $Totalh = my $Totalp = my $total_h = my $total_p = 0; + my %new_browser_h = my %new_browser_p = my @links = (); + my $tooltip = my $dataTableHeader = my $dataTableBody = my $graph = ''; + my $title = $Message[21] . ' (' . $Message[77] . ' ' . $MaxNbOf{'BrowsersShown'} .')'; + + BROWSERLOOP: foreach my $key ( keys %_browser_h ) + { $Totalh += $_browser_h{$key}; $Totalp += $_browser_p{$key}; - foreach my $family ( keys %BrowsersFamily ) { - if ( $key =~ /^$family/i ) { + foreach my $family ( keys %BrowsersFamily ) + { + if ( $key =~ /^$family/i ) + { $new_browser_h{"${family}cumul"} += $_browser_h{$key}; $new_browser_p{"${family}cumul"} += $_browser_p{$key}; next BROWSERLOOP; @@ -16380,49 +14913,35 @@ sub HTMLMainBrowsers{ $new_browser_h{$key} += $_browser_h{$key}; $new_browser_p{$key} += $_browser_p{$key}; } - my $title = -"$Message[21] ($Message[77] $MaxNbOf{'BrowsersShown'})   -   $Message[80]/$Message[58]   -   $Message[0]"; - - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title .= "   -   $Message[179]"); - } - - &tab_head( "$title", 19, 0, 'browsers' ); - - &BuildKeyList( - $MaxNbOf{'BrowsersShown'}, $MinHit{'Browser'}, - \%new_browser_h, \%new_browser_p - ); + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'browserdetail', $Message[80] . '/' . $Message[58])); + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'unknownbrowser', $Message[0])); + + if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push(@links, '' . $Message[179] . ''); + } + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } + + &BuildKeyList($MaxNbOf{'BrowsersShown'}, $MinHit{'Browser'}, \%new_browser_h, \%new_browser_p); - # Graph the top five in a pie chart - if (scalar @keylist > 1){ + if (scalar @keylist > 1) + { # Graph the top five in a pie chart foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) { my @blocklabel = (); my @valdata = (); my @valcolor = ($color_p); my $cnt = 0; - foreach my $key (@keylist) { + foreach my $key (@keylist) + { push @valdata, int( $new_browser_h{$key} / $TotalHits * 1000 ) / 10; if ($key eq 'Unknown'){push @blocklabel, "$key"; } else{ @@ -16440,145 +14959,141 @@ sub HTMLMainBrowsers{ $cnt++; if ($cnt > 4) { last; } } - print ""; + my $function = "ShowGraph_$pluginname"; - &$function( - "Top 5 Browsers", "browsers", - 0, \@blocklabel, - 0, \@valcolor, - 0, 0, - 0, \@valdata - ); - print ""; + $graph .= '
    ' + . &$function( + "Top 5 Browsers", "browsers", + 0, \@blocklabel, + 0, \@valcolor, + 0, 0, + 0, \@valdata + ) + . '
    '; } } - print -" $Message[21]$Message[111]$Message[56]$Message[15]$Message[57]$Message[15]\n"; - my $total_h = 0; - my $total_p = 0; - my $count = 0; - foreach my $key (@keylist) { - my $p_h = ' '; - my $p_p = ' '; - if ($Totalh) { + + $dataTableHeader .= '' + . '' . ucfirst($Message[28]) . '' + . '' . $Message[57] . '' + . ''; + + $dataTableBody .= ''; + + foreach my $key (@keylist) + { + my $p_h = my $p_p = ''; + if ($Totalh) + { $p_h = int( $new_browser_h{$key} / $Totalh * 1000 ) / 10; - $p_h = "$p_h %"; } - if ($Totalp) { + if ($Totalp) + { $p_p = int( $new_browser_p{$key} / $Totalp * 1000 ) / 10; - $p_p = "$p_p %"; } - if ( $key eq 'Unknown' ) { - print "$Message[0]?" - . "".Format_Number($_browser_p{$key})."$p_p" - . "".Format_Number($_browser_h{$key})."$p_h\n"; + + $dataTableBody .= ''; + + if ( $key eq 'Unknown' ) + { + $dataTableBody .= '' . $Message[0] . ' ' + . HTMLDataCellWithBar('p', $_browser_p{$key}, '' . $p_p . '% ' . Format_Number($_browser_p{$key}), $Totalp) + . HTMLDataCellWithBar('h', $_browser_h{$key}, '' . $p_h . '% ' . Format_Number($_browser_h{$key}), $Totalh); } - else { + else + { my $keywithoutcumul = $key; $keywithoutcumul =~ s/cumul$//i; - my $libbrowser = $BrowsersHashIDLib{$keywithoutcumul} - || $keywithoutcumul; - my $nameicon = $BrowsersHashIcon{$keywithoutcumul} - || "notavailable"; - if ( $BrowsersFamily{$keywithoutcumul} ) { + my $libbrowser = $BrowsersHashIDLib{$keywithoutcumul} || $keywithoutcumul; + my $nameicon = $BrowsersHashIcon{$keywithoutcumul} || 'notavailable'; + if ( $BrowsersFamily{$keywithoutcumul} ) + { $libbrowser = "$libbrowser"; } - print "" - . ( $PageDir eq 'rtl' ? "" : "" ) - . "$libbrowser" - . ( $PageDir eq 'rtl' ? "" : "" ) - . "" - . ( - $BrowsersHereAreGrabbers{$key} - ? "$Message[112]" - : "$Message[113]" - ) - . "".Format_Number($new_browser_p{$key})."$p_p".Format_Number($new_browser_h{$key})."$p_h\n"; + + $dataTableBody .= '' + . (($BrowsersHereAreGrabbers{$key} ? '(' . $Message[111] . ') ' : '' )) + . $libbrowser . ' ' + . HTMLDataCellWithBar('p', $new_browser_p{$key}, '' . $p_p . '% ' . Format_Number($new_browser_p{$key}), $Totalp) + . HTMLDataCellWithBar('h', $new_browser_h{$key}, '' . $p_h . '% ' . Format_Number($new_browser_h{$key}), $Totalh); } + + $dataTableBody .= ''; + $total_h += $new_browser_h{$key}; $total_p += $new_browser_p{$key}; - $count++; } + if ($Debug) { debug( "Total real / shown : $Totalh / $total_h", 2 ); } + my $rest_h = $Totalh - $total_h; my $rest_p = $Totalp - $total_p; - if ( $rest_h > 0 ) { - my $p_p = 0.0; - my $p_h; + if ( $rest_h > 0 ) + { + my $p_p = my $p_h = 0; if ($Totalh) { $p_h = int( $rest_h / $Totalh * 1000 ) / 10; } if ($Totalp) { $p_p = int( $rest_p / $Totalp * 1000 ) / 10; } - print ""; - print " "; - print -"$Message[2] $rest_p"; - print "$p_p %$rest_h$p_h %\n"; + $dataTableBody .= '' . $Message[2] . '' + . '' . $p_p . '% ' . $rest_p . '' + . '' . $p_p . '% ' . $rest_h . ''; } - &tab_end(); + + return &tab_head($title, join( ' ', @links ), 'browsers', $tooltip) + . $graph . '' . $dataTableHeader . $dataTableBody . '
    ' . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the ScreenSize chart and table +# Function: Return the ScreenSize chart and table (html) # Parameters: - # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainScreenSize{ + + #TODO add devicePixelRatio + if ($Debug) { debug( "ShowScreenSizeStats", 2 ); } - print "$Center 
    \n"; - my $Totalh = 0; - foreach ( keys %_screensize_h ) { $Totalh += $_screensize_h{$_}; } - my $title = - "$Message[135] ($Message[77] $MaxNbOf{'ScreenSizesShown'})"; - &tab_head( "$title", 0, 0, 'screensizes' ); - print -"$Message[135]$Message[15]\n"; - my $total_h = 0; - my $count = 0; - &BuildKeyList( $MaxNbOf{'ScreenSizesShown'}, - $MinHit{'ScreenSize'}, \%_screensize_h, \%_screensize_h ); - foreach my $key (@keylist) { - my $p = ' '; - if ($Totalh) { - $p = int( $_screensize_h{$key} / $Totalh * 1000 ) / 10; - $p = "$p %"; - } + my $title = $Message[135] . ' (' . $Message[77] . ' ' . $MaxNbOf{'ScreenSizesShown'} . ')'; + my $Totalh = my $total_h = my $max_h = 0; + my $html = ''; + + foreach ( keys %_screensize_h ) + { + $Totalh += $_screensize_h{$_}; + $max_h = ($_screensize_h{$_} > $max_h) ? $_screensize_h{$_} : $max_h; + } + + &BuildKeyList( $MaxNbOf{'ScreenSizesShown'}, $MinHit{'ScreenSize'}, \%_screensize_h, \%_screensize_h ); + + foreach my $key (@keylist) + { + my $p = ($Totalh) ? (int( $_screensize_h{$key} / $Totalh * 1000 ) / 10) : ''; + $total_h += $_screensize_h{$key} || 0; - print ""; - if ( $key eq 'Unknown' ) { - print -"$Message[0]"; - print "$p"; - } - else { - my $screensize = $key; - print "$screensize"; - print "$p"; - } - print "\n"; - $count++; + + $html .= '' + . HTMLDataCellWithBar('h', $_screensize_h{$key}, (( $key eq 'Unknown' ) ? $Message[0] : $key), $max_h) + . '' . $p . ' %' . '' + . ''; } + my $rest_h = $Totalh - $total_h; - if ( $rest_h > 0 ) { # All others sessions - my $p = 0; - if ($Totalh) { $p = int( $rest_h / $Totalh * 1000 ) / 10; } - print -"$Message[2]"; - print "" . ( $rest_h ? "$p %" : " " ) . ""; - print "\n"; + if ( $rest_h > 0 ) + { # All others sessions + my $p = ($Totalh) ? int( $rest_h / $Totalh * 1000 ) / 10 : 0; + + $html .= '' + . HTMLDataCellWithBar('h', $rest_h, $Message[2], $max_h) + . '' . $p . ' %' . '' + . ''; } - &tab_end(); + + return &tab_head($title, '', 'screensizes') + . '' . $html . '
    ' . &tab_end(); } #------------------------------------------------------------------------------ @@ -16588,244 +15103,149 @@ sub HTMLMainScreenSize{ # Output: HTML # Return: - #------------------------------------------------------------------------------ +# 0: Direct +# 1: Unknown +# 2: SE +# 3: External link +# 4: Internal link +# 5: Newsgroup (deprecated) sub HTMLMainReferrers{ + if ($Debug) { debug( "ShowOriginStats", 2 ); } + my $NewLinkParams = shift; my $NewLinkTarget = shift; - if ($Debug) { debug( "ShowOriginStats", 2 ); } - print "$Center 
    \n"; - my $Totalp = 0; - foreach ( 0 .. 5 ) { - $Totalp += - ( $_ != 4 || $IncludeInternalLinksInOriginSection ) - ? $_from_p[$_] - : 0; - } - my $Totalh = 0; - foreach ( 0 .. 5 ) { - $Totalh += - ( $_ != 4 || $IncludeInternalLinksInOriginSection ) - ? $_from_h[$_] - : 0; + my $Totalp = my $Totalh = 0; + my $title = $Message[36]; + my @links = (); + my $tooltip = my $tableHeader = my $tableData = ''; + my @p_p = my @p_h = ( 0, 0, 0, 0, 0, 0 ); + + if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push(@links, '' . $Message[179] . ''); + } + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); } - my $title = "$Message[36]"; - - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title .= "   -   $Message[179]"); - } - - &tab_head( $title, 19, 0, 'referer' ); - my @p_p = ( 0, 0, 0, 0, 0, 0 ); - if ( $Totalp > 0 ) { - $p_p[0] = int( $_from_p[0] / $Totalp * 1000 ) / 10; - $p_p[1] = int( $_from_p[1] / $Totalp * 1000 ) / 10; - $p_p[2] = int( $_from_p[2] / $Totalp * 1000 ) / 10; - $p_p[3] = int( $_from_p[3] / $Totalp * 1000 ) / 10; - $p_p[4] = int( $_from_p[4] / $Totalp * 1000 ) / 10; - $p_p[5] = int( $_from_p[5] / $Totalp * 1000 ) / 10; - } - my @p_h = ( 0, 0, 0, 0, 0, 0 ); - if ( $Totalh > 0 ) { - $p_h[0] = int( $_from_h[0] / $Totalh * 1000 ) / 10; - $p_h[1] = int( $_from_h[1] / $Totalh * 1000 ) / 10; - $p_h[2] = int( $_from_h[2] / $Totalh * 1000 ) / 10; - $p_h[3] = int( $_from_h[3] / $Totalh * 1000 ) / 10; - $p_h[4] = int( $_from_h[4] / $Totalh * 1000 ) / 10; - $p_h[5] = int( $_from_h[5] / $Totalh * 1000 ) / 10; - } - print - "$Message[37]"; - if ( $ShowOriginStats =~ /P/i ) { - print -"$Message[56]$Message[15]"; + foreach ( 0 .. 5 ) + { + $Totalp += ( $_ != 4 || $IncludeInternalLinksInOriginSection ) ? $_from_p[$_] : 0; + $Totalh += ( $_ != 4 || $IncludeInternalLinksInOriginSection ) ? $_from_h[$_] : 0; } - if ( $ShowOriginStats =~ /H/i ) { - print -"$Message[57]$Message[15]"; + + foreach ( 0 .. 5 ) + { + $p_p[$_] = ( $Totalp > 0 ) ? int( $_from_p[$_] / $Totalp * 1000 ) / 10 : 0; + $p_h[$_] = ( $Totalh > 0 ) ? int( $_from_h[$_] / $Totalh * 1000 ) / 10 : 0; } - print "\n"; #------- Referrals by direct address/bookmark/link in email/etc... - print "$Message[38]"; - if ( $ShowOriginStats =~ /P/i ) { - print "" - . ( $_from_p[0] ? Format_Number($_from_p[0]) : " " ) - . "" - . ( $_from_p[0] ? "$p_p[0] %" : " " ) . ""; - } - if ( $ShowOriginStats =~ /H/i ) { - print "" - . ( $_from_h[0] ? Format_Number($_from_h[0]) : " " ) - . "" - . ( $_from_h[0] ? "$p_h[0] %" : " " ) . ""; - } - print "\n"; + $tableData .= '' . $Message[38] .'' + . (( $ShowOriginStats =~ /P/i && $_from_p[0]) ? HTMLDataCellWithBar('p', $_from_p[0], '' . $p_p[0] . '% ' . Format_Number($_from_p[0]), $Totalp) : '') + . (( $ShowOriginStats =~ /H/i && $_from_h[0] ) ? HTMLDataCellWithBar('h', $_from_h[0], '' . $p_h[0] . '% ' . Format_Number($_from_h[0]), $Totalh) : '') + . ''; #------- Referrals by search engines - print "$Message[40] - $Message[80]
    \n"; - if ( scalar keys %_se_referrals_h ) { - print "\n"; - my $total_p = 0; - my $total_h = 0; - my $count = 0; - &BuildKeyList( - $MaxNbOf{'RefererShown'}, - $MinHit{'Refer'}, - \%_se_referrals_h, - ( - ( scalar keys %_se_referrals_p ) - ? \%_se_referrals_p - : \%_se_referrals_h - ) - ); - foreach my $key (@keylist) { - my $newreferer = $SearchEnginesHashLib{$key} - || CleanXSS($key); - print ""; - print ""; - print ""; - print "\n"; + $tableData .= '' #tooltip 13 + . '' + . (( $ShowOriginStats =~ /P/i && $_from_p[2]) ? HTMLDataCellWithBar('p', $_from_p[2], '' . $p_p[2] . '% ' . Format_Number($_from_p[2]), $Totalp) : '') + . (( $ShowOriginStats =~ /H/i && $_from_p[2]) ? HTMLDataCellWithBar('h', $_from_h[2], '' . $p_h[2] . '% ' . Format_Number($_from_h[2]), $Totalh) : '') + . ''; + + if ( scalar keys %_se_referrals_h ) + { + my $total_p = my $total_h = 0; + &BuildKeyList($MaxNbOf{'RefererShown'}, $MinHit{'Refer'}, \%_se_referrals_h, (( scalar keys %_se_referrals_p ) ? \%_se_referrals_p : \%_se_referrals_h)); + + foreach my $key (@keylist) + { + my $newreferer = $SearchEnginesHashLib{$key} || CleanXSS($key); + my $p_p = ($Totalp) ? int( $_se_referrals_p{$key} / $Totalp * 1000 ) / 10 : 0; + my $p_h = ($Totalh) ? int( $_se_referrals_h{$key} / $Totalh * 1000 ) / 10 : 0; $total_p += $_se_referrals_p{$key}; $total_h += $_se_referrals_h{$key}; - $count++; + + $tableData .= '' + . (( $ShowOriginStats =~ /P/i && $_se_referrals_p{$key}) ? HTMLDataCellWithBar('p', $_se_referrals_p{$key}, '' . $p_p . '% ' . Format_Number($_se_referrals_p{$key}), $Totalp, '--neutral-color') : '') + . (( $ShowOriginStats =~ /H/i && $_se_referrals_h{$key}) ? HTMLDataCellWithBar('h', $_se_referrals_h{$key}, '' . $p_h . '% ' . Format_Number($_se_referrals_h{$key}), $Totalh, '--neutral-color') : ''); } + if ($Debug) { - debug( -"Total real / shown : $TotalSearchEnginesPages / $total_p - $TotalSearchEnginesHits / $total_h", - 2 - ); + debug("Total real / shown : $TotalSearchEnginesPages / $total_p - $TotalSearchEnginesHits / $total_h", 2); } + my $rest_p = $TotalSearchEnginesPages - $total_p; my $rest_h = $TotalSearchEnginesHits - $total_h; - if ( $rest_p > 0 || $rest_h > 0 ) { - print -""; - print ""; - print ""; - print "\n"; + + if ( $rest_p > 0 || $rest_h > 0 ) + { + $tableData .= '' + . (( $ShowOriginStats =~ /P/i) ? HTMLDataCellWithBar('p', $rest_p, '% ' . Format_Number($rest_p), $Totalp) : '') + . (( $ShowOriginStats =~ /H/i) ? HTMLDataCellWithBar('h', $rest_h, '% ' . Format_Number($rest_h), $Totalh) : '') + . ''; } - print "
    - $newreferer" - . ( - Format_Number($_se_referrals_p{$key} ? $_se_referrals_p{$key} : '0' )) - . " / ".Format_Number($_se_referrals_h{$key})."
    ' . $Message[40] . ' - ' + . HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'refererse', $Message[80]) + . '
    ' . $newreferer . '
    - $Message[2]".Format_Number($rest_p)." / ".Format_Number($rest_h)."
    - ' . $Message[2] . '
    "; - } - print "\n"; - if ( $ShowOriginStats =~ /P/i ) { - print "" - . ( $_from_p[2] ? Format_Number($_from_p[2]) : " " ) - . "" - . ( $_from_p[2] ? "$p_p[2] %" : " " ) . ""; } - if ( $ShowOriginStats =~ /H/i ) { - print "" - . ( $_from_h[2] ? Format_Number($_from_h[2]) : " " ) - . "" - . ( $_from_h[2] ? "$p_h[2] %" : " " ) . ""; - } - print "\n"; #------- Referrals by external HTML link - print "$Message[41] - $Message[80]
    \n"; - if ( scalar keys %_pagesrefs_h ) { - print "\n"; - my $total_p = 0; - my $total_h = 0; - my $count = 0; - &BuildKeyList( - $MaxNbOf{'RefererShown'}, - $MinHit{'Refer'}, - \%_pagesrefs_h, - ( - ( scalar keys %_pagesrefs_p ) - ? \%_pagesrefs_p - : \%_pagesrefs_h - ) - ); - foreach my $key (@keylist) { - print ""; - print ""; - print ""; - print "\n"; + $tableData .= ''; # tooltip 14 + $tableData .= '' + . (( $ShowOriginStats =~ /P/i && $_from_p[3]) ? HTMLDataCellWithBar('p', $_from_p[3], '' . $p_p[3] . '% ' . Format_Number($_from_p[3]), $Totalp) : '') + . (( $ShowOriginStats =~ /H/i && $_from_p[3]) ? HTMLDataCellWithBar('h', $_from_h[3], '' . $p_h[3] . '% ' . Format_Number($_from_h[3]), $Totalh) : '') + . ''; + + if ( scalar keys %_pagesrefs_h ) + { + my $total_p = my $total_h = 0; + + &BuildKeyList($MaxNbOf{'RefererShown'}, $MinHit{'Refer'}, \%_pagesrefs_h, ( ( scalar keys %_pagesrefs_p ) ? \%_pagesrefs_p : \%_pagesrefs_h)); + + foreach my $key (@keylist) + { + my $p_p = ($Totalp) ? int( $_pagesrefs_p{$key} / $Totalp * 1000 ) / 10 : 0; + my $p_h = ($Totalh) ? int( $_pagesrefs_h{$key} / $Totalh * 1000 ) / 10 : 0; $total_p += $_pagesrefs_p{$key}; $total_h += $_pagesrefs_h{$key}; - $count++; - } - if ($Debug) { - debug( -"Total real / shown : $TotalRefererPages / $total_p - $TotalRefererHits / $total_h", - 2 - ); + + $tableData .= '' + . (( $ShowOriginStats =~ /P/i && $_pagesrefs_p{$key}) ? HTMLDataCellWithBar('p', $_pagesrefs_p{$key}, '' . $p_p . '% ' . Format_Number($_pagesrefs_p{$key}), $Totalp, '--neutral-color') : '') + . (( $ShowOriginStats =~ /H/i && $_pagesrefs_h{$key}) ? HTMLDataCellWithBar('h', $_pagesrefs_h{$key}, '' . $p_h . '% ' . Format_Number($_pagesrefs_h{$key}), $Totalh, '--neutral-color') : '') + . ''; } + + if ($Debug) { debug("Total real / shown : $TotalRefererPages / $total_p - $TotalRefererHits / $total_h", 2);} + my $rest_p = $TotalRefererPages - $total_p; my $rest_h = $TotalRefererHits - $total_h; - if ( $rest_p > 0 || $rest_h > 0 ) { - print -""; - print ""; - print ""; - print "\n"; + + if ( $rest_p > 0 || $rest_h > 0 ) + { + my $p_p = ($Totalp) ? int( $rest_p / $Totalp * 1000 ) / 10 : 0; + my $p_h = ($Totalh) ? int( $rest_h / $Totalh * 1000 ) / 10 : 0; + $tableData .= '' + . (( $ShowOriginStats =~ /P/i) ? HTMLDataCellWithBar('p', $rest_p, '' . $p_p . '% ' . Format_Number($rest_p), $Totalp) : '') + . (( $ShowOriginStats =~ /H/i) ? HTMLDataCellWithBar('h', $rest_h, '' . $p_h . '% ' . Format_Number($rest_h), $Totalh) : '') + . ''; } - print "
    - "; - &HTMLShowURLInfo($key); - print "" - . Format_Number(( $_pagesrefs_p{$key} ? $_pagesrefs_p{$key} : '0' )) - . "".Format_Number($_pagesrefs_h{$key})."
    ' . $Message[41] . ' - ' + . HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'refererpages', $Message[80]) + . '
    ' . &HTMLShowURLInfo($key) . '
    - $Message[2]".Format_Number($rest_p)."".Format_Number($rest_h)."
    ' . $Message[2] . '
    "; - } - print "\n"; - if ( $ShowOriginStats =~ /P/i ) { - print "" - . ( $_from_p[3] ? Format_Number($_from_p[3]) : " " ) - . "" - . ( $_from_p[3] ? "$p_p[3] %" : " " ) . ""; } - if ( $ShowOriginStats =~ /H/i ) { - print "" - . ( $_from_h[3] ? Format_Number($_from_h[3]) : " " ) - . "" - . ( $_from_h[3] ? "$p_h[3] %" : " " ) . ""; - } - print "\n"; #------- Referrals by internal HTML link - if ($IncludeInternalLinksInOriginSection) { - print "$Message[42]"; - if ( $ShowOriginStats =~ /P/i ) { - print "" - . ( $_from_p[4] ? Format_Number($_from_p[4]) : " " ) - . "" - . ( $_from_p[4] ? "$p_p[4] %" : " " ) . ""; - } - if ( $ShowOriginStats =~ /H/i ) { - print "" - . ( $_from_h[4] ? Format_Number($_from_h[4]) : " " ) - . "" - . ( $_from_h[4] ? "$p_h[4] %" : " " ) . ""; - } - print "\n"; + if ($IncludeInternalLinksInOriginSection) + { + $tableData .= '' . $Message[42] . '' + . (( $ShowOriginStats =~ /P/i && $_from_p[4]) ? HTMLDataCellWithBar('p', $_from_p[4], '' . $p_p[4] . '% ' . Format_Number($_from_p[4]), $Totalp) : '') + . (( $ShowOriginStats =~ /H/i && $_from_p[4]) ? HTMLDataCellWithBar('h', $_from_h[4], '' . $p_h[4] . '% ' . Format_Number($_from_h[4]), $Totalh) : '') + . ''; } #------- Referrals by news group @@ -16835,193 +15255,144 @@ sub HTMLMainReferrers{ #print "\n"; #------- Unknown origin - print "$Message[39]"; - if ( $ShowOriginStats =~ /P/i ) { - print "" - . ( $_from_p[1] ? Format_Number($_from_p[1]) : " " ) - . "" - . ( $_from_p[1] ? "$p_p[1] %" : " " ) . ""; - } - if ( $ShowOriginStats =~ /H/i ) { - print "" - . ( $_from_h[1] ? Format_Number($_from_h[1]) : " " ) - . "" - . ( $_from_h[1] ? "$p_h[1] %" : " " ) . ""; - } - print "\n"; - &tab_end(); - - # 0: Direct - # 1: Unknown - # 2: SE - # 3: External link - # 4: Internal link - # 5: Newsgroup (deprecated) + $tableData .= '' . $Message[39] . '' + . (( $ShowOriginStats =~ /P/i && $_from_p[1]) ? HTMLDataCellWithBar('p', $_from_p[1], '' . $p_p[1] . '% ' . Format_Number($_from_p[1]), $Totalp) : '') + . (( $ShowOriginStats =~ /H/i && $_from_p[1]) ? HTMLDataCellWithBar('h', $_from_h[1], '' . $p_h[1] . '% ' . Format_Number($_from_h[1]), $Totalh) : '') + . ''; + + $tableHeader .= '' . $Message[37] . '' + . (( $ShowOriginStats =~ /P/i ) ? '' . ucfirst($Message[28]) . '' : '') + . (( $ShowOriginStats =~ /H/i ) ? '' . $Message[57] . '' : '') + . ''; + + return &tab_head($title, join( ' ', @links ), 'referer', $tooltip) + . '' . $tableHeader . $tableData . '
    ' + . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the Key Phrases and Keywords chart and table +# Function: Return the Key Phrases chart and table # Parameters: $NewLinkParams, $NewLinkTarget # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ -sub HTMLMainKeys{ +sub HTMLMainKeyphrases{ + if ($Debug) { debug( "ShowKeyphrasesStats", 2 ); } + my $NewLinkParams = shift; my $NewLinkTarget = shift; - if ($ShowKeyphrasesStats) { - print "$Center "; + my $title = $Message[120] . ' (' . $Message[77] . ' ' . $MaxNbOf{'KeyphrasesShown'} . ')'; + my $tableData = my $tooltip = ''; # Tooltip(15) + my @links = (); + my $p = my $total_s = 0; + + my $tableHeader = '' . $TotalDifferentKeyphrases . ' ' . $Message[103] . '' . $Message[14] . ''; + + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'keyphrases', $Message[80])); + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); } - if ($ShowKeywordsStats) { - print "$Center "; + + &BuildKeyList( $MaxNbOf{'KeyphrasesShown'}, $MinHit{'Keyphrase'}, \%_keyphrases, \%_keyphrases ); + + foreach my $key (@keylist) + { + # Convert coded keywords (utf8,...) to be correctly reported in HTML page. + my $mot = ( $PluginsLoaded{'DecodeKey'}{'decodeutfkeys'} ) ? CleanXSS(DecodeKey_decodeutfkeys($key, $PageCode || 'iso-8859-1')) : CleanXSS(DecodeEncodedString($key)); + + $p = ($TotalKeyphrases) ? int( $_keyphrases{$key} / $TotalKeyphrases * 1000 ) / 10 : 0; + + $tableData .= '' . XMLEncode($mot) . '' + . HTMLDataCellWithBar('s', $_keyphrases{$key}, '' . $p . '% ' . $_keyphrases{$key}, $TotalKeyphrases) + . ''; + + $total_s += $_keyphrases{$key}; } - if ( $ShowKeyphrasesStats || $ShowKeywordsStats ) { print "
    \n"; } - if ( $ShowKeyphrasesStats && $ShowKeywordsStats ) { - print - ""; + + if ($Debug) { + debug( "Total real / shown : $TotalKeyphrases / $total_s", 2 ); } - if ($ShowKeyphrasesStats) { - - # By Keyphrases - if ( $ShowKeyphrasesStats && $ShowKeywordsStats ) { - print "\n"; - my $total_s = 0; - my $count = 0; - &BuildKeyList( $MaxNbOf{'KeyphrasesShown'}, - $MinHit{'Keyphrase'}, \%_keyphrases, \%_keyphrases ); - foreach my $key (@keylist) { - my $mot; - - # Convert coded keywords (utf8,...) to be correctly reported in HTML page. - if ( $PluginsLoaded{'DecodeKey'}{'decodeutfkeys'} ) { - $mot = CleanXSS( - DecodeKey_decodeutfkeys( - $key, $PageCode || 'iso-8859-1' - ) - ); - } - else { $mot = CleanXSS( DecodeEncodedString($key) ); } - my $p; - if ($TotalKeyphrases) { - $p = - int( $_keyphrases{$key} / $TotalKeyphrases * 1000 ) / 10; - } - print "\n"; - $total_s += $_keyphrases{$key}; - $count++; - } - if ($Debug) { - debug( "Total real / shown : $TotalKeyphrases / $total_s", 2 ); - } - my $rest_s = $TotalKeyphrases - $total_s; - if ( $rest_s > 0 ) { - my $p; - if ($TotalKeyphrases) { - $p = int( $rest_s / $TotalKeyphrases * 1000 ) / 10; - } - print -""; - print "\n"; - } - &tab_end(); - if ( $ShowKeyphrasesStats && $ShowKeywordsStats ) { - print "\n"; - } + + my $rest_s = $TotalKeyphrases - $total_s; + if ( $rest_s > 0 ) + { + $p = ($TotalKeyphrases) ? int( $rest_s / $TotalKeyphrases * 1000 ) / 10 : 0; + + $tableData .= '' + . HTMLDataCellWithBar('s', $rest_s, '' . $p . '% ' . $rest_s, $TotalKeyphrases) + . ''; } - if ( $ShowKeyphrasesStats && $ShowKeywordsStats ) { - print ""; + + return &tab_head($title, join( ' ', @links ), 'keyphrases', $tooltip) + . '
    \n"; - } - if ($Debug) { debug( "ShowKeyphrasesStats", 2 ); } - &tab_head( -"$Message[120] ($Message[77] $MaxNbOf{'KeyphrasesShown'})
    $Message[80]", - 19, - ( $ShowKeyphrasesStats && $ShowKeywordsStats ) ? 95 : 70, - 'keyphrases' - ); - print "
    $TotalDifferentKeyphrases $Message[103]$Message[14]$Message[15]
    " - . XMLEncode($mot) - . "$_keyphrases{$key}$p %
    $Message[124]$rest_s$p %
    ' . $Message[124] . '
     
    ' . $tableHeader . $tableData + . '
    ' . &tab_end(); +} + +#------------------------------------------------------------------------------ +# Function: Return the Keywords chart and table +# Parameters: $NewLinkParams, $NewLinkTarget +# Input: - +# Output: - +# Return: string +#------------------------------------------------------------------------------ +sub HTMLMainKeywords{ + if ($Debug) { debug( "ShowKeywordsStats", 2 ); } + + my $NewLinkParams = shift; + my $NewLinkTarget = shift; + + my $title = $Message[121] . ' (' . $Message[77] . ' ' . $MaxNbOf{'KeywordsShown'} . ')'; + my $tableData = my $tooltip = ''; # Tooltip(15) + my @links = (); + my $p = my $total_s = 0; + + my $tableHeader = '' . $TotalDifferentKeywords . ' ' . $Message[13] . '' . $Message[14] . ''; + + push(@links, HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'keywords', $Message[80])); + + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); } - if ($ShowKeywordsStats) { - # By Keywords - if ( $ShowKeyphrasesStats && $ShowKeywordsStats ) { - print "\n"; - } - if ($Debug) { debug( "ShowKeywordsStats", 2 ); } - &tab_head( -"$Message[121] ($Message[77] $MaxNbOf{'KeywordsShown'})
    $Message[80]", - 19, - ( $ShowKeyphrasesStats && $ShowKeywordsStats ) ? 95 : 70, - 'keywords' - ); - print "$TotalDifferentKeywords $Message[13]$Message[14]$Message[15]\n"; - my $total_s = 0; - my $count = 0; - &BuildKeyList( $MaxNbOf{'KeywordsShown'}, - $MinHit{'Keyword'}, \%_keywords, \%_keywords ); - foreach my $key (@keylist) { - my $mot; - - # Convert coded keywords (utf8,...) to be correctly reported in HTML page. - if ( $PluginsLoaded{'DecodeKey'}{'decodeutfkeys'} ) { - $mot = CleanXSS( - DecodeKey_decodeutfkeys( - $key, $PageCode || 'iso-8859-1' - ) - ); - } - else { $mot = CleanXSS( DecodeEncodedString($key) ); } - my $p; - if ($TotalKeywords) { - $p = int( $_keywords{$key} / $TotalKeywords * 1000 ) / 10; - } - print "" - . XMLEncode($mot) - . "$_keywords{$key}$p %\n"; - $total_s += $_keywords{$key}; - $count++; - } - if ($Debug) { - debug( "Total real / shown : $TotalKeywords / $total_s", 2 ); - } - my $rest_s = $TotalKeywords - $total_s; - if ( $rest_s > 0 ) { - my $p; - if ($TotalKeywords) { - $p = int( $rest_s / $TotalKeywords * 1000 ) / 10; - } - print -"$Message[30]$rest_s"; - print "$p %\n"; - } - &tab_end(); - if ( $ShowKeyphrasesStats && $ShowKeywordsStats ) { - print "\n"; - } + &BuildKeyList( $MaxNbOf{'KeywordsShown'}, $MinHit{'Keyword'}, \%_keywords, \%_keywords ); + + foreach my $key (@keylist) + { + # Convert coded keywords (utf8,...) to be correctly reported in HTML page. + my $mot = ( $PluginsLoaded{'DecodeKey'}{'decodeutfkeys'} ) ? CleanXSS(DecodeKey_decodeutfkeys($key, $PageCode || 'iso-8859-1')) : CleanXSS(DecodeEncodedString($key)); + + $p = ($TotalKeywords) ? int( $_keywords{$key} / $TotalKeywords * 1000 ) / 10 : 0; + + $tableData .= '' . XMLEncode($mot) . '' + . HTMLDataCellWithBar('s', $_keywords{$key}, '' . $p . '% ' . $_keywords{$key}, $TotalKeywords) + . ''; + + $total_s += $_keywords{$key}; } - if ( $ShowKeyphrasesStats && $ShowKeywordsStats ) { - print "\n"; + + if ($Debug) { + debug( "Total real / shown : $TotalKeywords / $total_s", 2 ); + } + + my $rest_s = $TotalKeywords - $total_s; + if ( $rest_s > 0 ) + { + $p = ($TotalKeywords) ? int( $rest_s / $TotalKeywords * 1000 ) / 10 : 0; + $tableData .= '' . $Message[30] . '' + . HTMLDataCellWithBar('s', $rest_s, '' . $p . '% ' . $rest_s, $TotalKeywords) + . ''; } + + return &tab_head($title, join( ' ', @links ), 'keywords', $tooltip) + . '' . $tableHeader . $tableData + . '
    ' . &tab_end(); } #------------------------------------------------------------------------------ @@ -17033,14 +15404,25 @@ sub HTMLMainKeys{ #------------------------------------------------------------------------------ sub HTMLMainMisc{ if ($Debug) { debug( "ShowMiscStats", 2 ); } - print "$Center 
    \n"; - my $title = "$Message[139]"; - &tab_head( "$title", 19, 0, 'misc' ); - print - "$Message[139]"; - print " "; - print " "; - print "\n"; + # print " "; + + my $title = $Message[139]; + + my $tooltip = ''; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } + + print &tab_head($title, '', 'misc', $tooltip); + + print '' + . '' + . '' + . '' + . ''; + my %label = ( 'AddToFavourites' => $Message[137], 'JavascriptDisabled' => $Message[168], @@ -17087,92 +15469,93 @@ sub HTMLMainMisc{ print ""; print "\n"; } - &tab_end(); + + print '
    ' . $Message[139] . '  
    " . ( $total ? "$p %" : " " ) . "
    ' . &tab_end(); } #------------------------------------------------------------------------------ -# Function: Prints the Status codes chart and table +# Function: Return the Status codes chart and table # Parameters: $NewLinkParams, $NewLinkTarget # Input: - -# Output: HTML -# Return: - +# Output: - +# Return: string #------------------------------------------------------------------------------ sub HTMLMainHTTPStatus{ + if ($Debug) { debug( "ShowHTTPErrorsStats", 2 ); } + my $NewLinkParams = shift; my $NewLinkTarget = shift; - if ($Debug) { debug( "ShowHTTPErrorsStats", 2 ); } - print "$Center 
    \n"; - my $title = "$Message[32]"; - - if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { - # extend the title to include the added link - $title .= "   -   $Message[179]"); - } - - &tab_head( "$title", 19, 0, 'errors' ); + my $title = $Message[32]; + my @links = (); + my $tooltip = my $graph = my $tableHeader = my $tableData = ''; + my $total_h = 0; + + if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) + { # extend the title to include the added link + push(@links, '' . $Message[179] . ''); + } + + $tooltip .= $Message[154]; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= '
    ' . &$function(19); + } + &BuildKeyList( $MaxRowsInHTMLOutput, 1, \%_errors_h, \%_errors_h ); - - # Graph the top five in a pie chart - if (scalar @keylist > 1){ + + if (scalar @keylist > 1) + { # Graph the top five in a pie chart foreach my $pluginname ( keys %{ $PluginsLoaded{'ShowGraph'} } ) { my @blocklabel = (); my @valdata = (); my @valcolor = ($color_p); my $cnt = 0; - foreach my $key (@keylist) { + foreach my $key (@keylist) + { push @valdata, int( $_errors_h{$key} / $TotalHitsErrors * 1000 ) / 10; push @blocklabel, "$key"; $cnt++; if ($cnt > 4) { last; } } - print ""; + my $function = "ShowGraph_$pluginname"; - &$function( - "$title", "httpstatus", - 0, \@blocklabel, - 0, \@valcolor, - 0, 0, - 0, \@valdata - ); - print ""; + $graph .= '
    ' + . &$function( + $title, 'httpstatus', + 0, \@blocklabel, + 0, \@valcolor, + 0, 0, + 0, \@valdata + ) + . '
    '; } } - print -"$Message[32]*$Message[57]$Message[15]$Message[75]\n"; - my $total_h = 0; - my $count = 0; - foreach my $key (@keylist) { - my $p = int( $_errors_h{$key} / $TotalHitsErrors * 1000 ) / 10; - print ""; - if ( $TrapInfosForHTTPErrorCodes{$key} ) { - print "$key"; - } - else { print "$key"; } - print "" - . ( - $httpcodelib{$key} ? $httpcodelib{$key} : 'Unknown error' ) - . "".Format_Number($_errors_h{$key})."$p %" - . Format_Bytes( $_errors_k{$key} ) . ""; - print "\n"; + $tableHeader = '' . $Message[57] . '' . $Message[75] . ''; + + foreach my $key (@keylist) + { + my $p_h = int( $_errors_h{$key} / $TotalHitsErrors * 1000 ) / 10; + $tableData .= '' #Tooltip( $key, $key ) + . '' . ( $httpcodelib{$key} ? $httpcodelib{$key} : 'Unknown error' ) + . ' ' . (( $TrapInfosForHTTPErrorCodes{$key} ) ? '@ ' . HTMLLinkToStandalonePage($NewLinkParams, $NewLinkTarget, 'errors', $key) . '' : $key) + . '' + . HTMLDataCellWithBar('h', $_errors_h{$key}, '' . $p_h . '% ' . Format_Number($_errors_h{$key}), $TotalHitsErrors) + . '' . Format_Bytes( $_errors_k{$key} ) . '' + . ''; + $total_h += $_errors_h{$key}; - $count++; } - &tab_end("* $Message[154]"); + + return &tab_head($title, join( ' ', @links ), 'errors', $tooltip) + . $graph . '' . $tableHeader . $tableData . '
    ' + . &tab_end(); } #------------------------------------------------------------------------------ @@ -17187,11 +15570,19 @@ sub HTMLMainSMTPStatus{ my $NewLinkTarget = shift; if ($Debug) { debug( "ShowSMTPErrorsStats", 2 ); } - print "$Center 
    \n"; - my $title = "$Message[147]"; - &tab_head( "$title", 19, 0, 'errors' ); - print -"$Message[147]$Message[57]$Message[15]$Message[75]\n"; + # print " "; + my $title = $Message[147]; + + my $tooltip = ''; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } + + print &tab_head($title, '', 'errors', $tooltip ) + . '' + . "\n"; my $total_h = 0; my $count = 0; &BuildKeyList( $MaxRowsInHTMLOutput, 1, \%_errors_h, \%_errors_h ); @@ -17199,7 +15590,7 @@ sub HTMLMainSMTPStatus{ foreach my $key (@keylist) { my $p = int( $_errors_h{$key} / $TotalHitsErrors * 1000 ) / 10; print ""; - print ""; + print ""; print "
    $Message[147]$Message[57]$Message[15]$Message[75]
    $key$key" . ( $smtpcodelib{$key} ? $smtpcodelib{$key} : 'Unknown error' ) @@ -17209,7 +15600,8 @@ sub HTMLMainSMTPStatus{ $total_h += $_errors_h{$key}; $count++; } - &tab_end(); + + print '
    ' . &tab_end(); } #------------------------------------------------------------------------------ @@ -17224,7 +15616,7 @@ sub HTMLMainCluster{ my $NewLinkTarget = shift; if ($Debug) { debug( "ShowClusterStats", 2 ); } - print "$Center 
    \n"; + print " "; my $title = "$Message[155]"; if ( $AddLinkToExternalCGIWrapper && ($ENV{'GATEWAY_INTERFACE'} || !$StaticLinks) ) { @@ -17235,8 +15627,15 @@ sub HTMLMainCluster{ . "&siteConfig=$SiteConfig" ) . "\"$NewLinkTarget>$Message[179]"); } - - &tab_head( "$title", 19, 0, 'clusters' ); + + my $tooltip = ''; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } + + print &tab_head($title, '', 'clusters', $tooltip); &BuildKeyList( $MaxRowsInHTMLOutput, 1, \%_cluster_p, \%_cluster_p ); @@ -17272,15 +15671,15 @@ sub HTMLMainCluster{ &HTMLShowClusterInfo('__title__'); if ( $ShowClusterStats =~ /P/i ) { print -"$Message[56]$Message[15]"; +"" . ucfirst($Message[28]) . "$Message[15]"; } if ( $ShowClusterStats =~ /H/i ) { print -"$Message[57]$Message[15]"; +"$Message[57]$Message[15]"; } if ( $ShowClusterStats =~ /B/i ) { print -"$Message[75]$Message[15]"; +"$Message[75]$Message[15]"; } print "\n"; my $total_p = my $total_h = my $total_k = 0; @@ -17316,7 +15715,8 @@ sub HTMLMainCluster{ print "\n"; $count++; } - &tab_end(); + + print '' . &tab_end(); } #------------------------------------------------------------------------------ @@ -17332,9 +15732,19 @@ sub HTMLMainExtra{ my $extranum = shift; if ($Debug) { debug( "ExtraName$extranum", 2 ); } - print "$Center 
    "; + # print " "; + my $title = $ExtraName[$extranum]; - &tab_head( "$title", 19, 0, "extra$extranum" ); + + my $tooltip = ''; + foreach my $pluginname ( keys %{ $PluginsLoaded{'getTooltip'} } ) + { + my $function = "getTooltip_$pluginname"; + $tooltip .= &$function(19); + } + + print &tab_head($title, 'extra' . $extranum, '', $tooltip); + print ""; print "" . $ExtraFirstColumnTitle[$extranum]; print "  -   $Message[56]"; + "" . ucfirst($Message[28]) . ""; } if ( $ExtraStatTypes[$extranum] =~ m/H/i ) { print - "$Message[57]"; + "$Message[57]"; } if ( $ExtraStatTypes[$extranum] =~ m/B/i ) { print - "$Message[75]"; + "$Message[75]"; } if ( $ExtraStatTypes[$extranum] =~ m/L/i ) { print "$Message[9]"; @@ -17492,7 +15902,8 @@ sub HTMLMainExtra{ } print "\n"; } - &tab_end(); + + print '' . &tab_end(); } #------------------------------------------------------------------------------ @@ -18055,7 +16466,7 @@ sub HTMLMainExtra{ } -# Print html header (Need HTMLOutput,Expires,Lang,StyleSheet,HTMLHeadSectionExpires defined by Read_Config, PageCode defined by Read_Language_Data) +# Print html header (Need HTMLOutput,Expires,Lang,StyleSheet,StylesheetMode,HTMLHeadSectionExpires defined by Read_Config, PageCode defined by Read_Language_Data) if ( !$HeaderHTMLSent ) { &html_head; } # AWStats output is replaced by a plugin output @@ -18066,7 +16477,7 @@ sub HTMLMainExtra{ my $function = "BuildFullHTMLOutput_$PluginMode"; &$function(); if ( $? || $@ ) { error("$@"); } - &html_end(0); + print &html_end(0); exit 0; } @@ -18220,7 +16631,7 @@ sub HTMLMainExtra{ if ($EnableLockForUpdate) { &Lock_Update(0); } print "Migration for file '$MigrateStats' successful."; print $ENV{'GATEWAY_INTERFACE'} ? "
    \n" : "\n"; - &html_end(1); + print &html_end(1); exit 0; } @@ -18249,7 +16660,7 @@ sub HTMLMainExtra{ print "to see your reports.
    \n"; print "\n"; print "\n"; - &html_end(0); + print &html_end(0); exit 0; } @@ -21352,52 +19763,18 @@ sub HTMLMainExtra{ # HTMLHeadSection if ( $FrameName ne 'index' && $FrameName ne 'mainleft' ) { - print "
    \n\n"; + # print "\n\n"; my $newhead = $HTMLHeadSection; $newhead =~ s/\\n/\n/g; print "$newhead\n"; print "\n"; } - # Call to plugins' function AddHTMLBodyHeader - foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLBodyHeader'} } ) { - my $function = "AddHTMLBodyHeader_$pluginname"; - &$function(); - } - - my $WIDTHMENU1 = ( $FrameName eq 'mainleft' ? $FRAMEWIDTH : 150 ); - - # TOP BAN - #--------------------------------------------------------------------- - if ( $ShowMenu || $FrameName eq 'mainleft' ) { - HTMLTopBanner($WIDTHMENU1); - } - - # Call to plugins' function AddHTMLMenuHeader - foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLMenuHeader'} } ) { - my $function = "AddHTMLMenuHeader_$pluginname"; - &$function(); - } - - # MENU (ON LEFT IF FRAME OR TOP) - #--------------------------------------------------------------------- - if ( $ShowMenu || $FrameName eq 'mainleft' ) { - HTMLMenu($NewLinkParams, $NewLinkTarget); - } - - # Call to plugins' function AddHTMLMenuFooter - foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLMenuFooter'} } ) { - my $function = "AddHTMLMenuFooter_$pluginname"; - &$function(); - } - - # Exit if left frame - if ( $FrameName eq 'mainleft' ) { - &html_end(0); - exit 0; - } - - + # # Call to plugins' function AddHTMLBodyHeader + # foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLBodyHeader'} } ) { + # my $function = "AddHTMLBodyHeader_$pluginname"; + # &$function(); + # } # TotalVisits TotalUnique TotalPages TotalHits TotalBytes TotalHostsKnown TotalHostsUnknown $TotalUnique = $TotalVisits = $TotalPages = $TotalHits = $TotalBytes = 0; @@ -21566,15 +19943,45 @@ sub HTMLMainExtra{ ); } + # TOP BAN + #--------------------------------------------------------------------- + if ( $ShowMenu || $FrameName eq 'mainleft' ) { + HTMLTopBanner(); + } + + # Call to plugins' function AddHTMLMenuHeader + foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLMenuHeader'} } ) { + my $function = "AddHTMLMenuHeader_$pluginname"; + &$function(); + } + + # MENU (ON LEFT IF FRAME OR TOP) + #--------------------------------------------------------------------- + # if ( $ShowMenu || $FrameName eq 'mainleft' ) { + # HTMLMenu($NewLinkParams, $NewLinkTarget); + # } + + # Call to plugins' function AddHTMLMenuFooter + foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLMenuFooter'} } ) { + my $function = "AddHTMLMenuFooter_$pluginname"; + &$function(); + } + + # Exit if left frame + if ( $FrameName eq 'mainleft' ) { + print &html_end(0); + exit 0; + } + # Call to plugins' function AddHTMLContentHeader foreach my $pluginname ( keys %{ $PluginsLoaded{'AddHTMLContentHeader'} } ) { # to add unique visitors & number of visits, by J Ruano @ CAPSiDE if ( $ShowDomainsStats =~ /U/i ) { - print "$Message[11]"; + print "$Message[11]"; } if ( $ShowDomainsStats =~ /V/i ) { - print "$Message[10]"; + print "$Message[10]"; } my $function = "AddHTMLContentHeader_$pluginname"; @@ -21586,33 +19993,28 @@ sub HTMLMainExtra{ if ( scalar keys %HTMLOutput == 1 ) { if ( $HTMLOutput{'alldomains'} ) { - &HTMLShowDomains(); + print &HTMLMainCountries($NewLinkParams, $NewLinkTarget) . html_end(1); } - if ( $HTMLOutput{'allhosts'} || $HTMLOutput{'lasthosts'} ) { - &HTMLShowHosts(); - } - if ( $HTMLOutput{'unknownip'} ) { - &HTMLShowHostsUnknown(); + if ( $HTMLOutput{'allhosts'} || $HTMLOutput{'lasthosts'} || $HTMLOutput{'unknownip'}) { + print &HTMLMainHosts($NewLinkParams, $NewLinkTarget) . html_end(1); } if ( $HTMLOutput{'allemails'} || $HTMLOutput{'lastemails'} ) { &HTMLShowEmailSendersChart( $NewLinkParams, $NewLinkTarget ); - &html_end(1); + print &html_end(1); } if ( $HTMLOutput{'allemailr'} || $HTMLOutput{'lastemailr'} ) { &HTMLShowEmailReceiversChart( $NewLinkParams, $NewLinkTarget ); - &html_end(1); + print &html_end(1); } if ( $HTMLOutput{'alllogins'} || $HTMLOutput{'lastlogins'} ) { &HTMLShowLogins(); } if ( $HTMLOutput{'allrobots'} || $HTMLOutput{'lastrobots'} ) { - &HTMLShowRobots(); + print &HTMLMainRobots() . html_end(1); } - if ( $HTMLOutput{'urldetail'} - || $HTMLOutput{'urlentry'} - || $HTMLOutput{'urlexit'} ) + if ( $HTMLOutput{'urldetail'} || $HTMLOutput{'urlentry'} || $HTMLOutput{'urlexit'} ) { - &HTMLShowURLDetail(); + print &HTMLMainPages($NewLinkParams, $NewLinkTarget) . html_end(1); } if ( $HTMLOutput{'unknownos'} ) { &HTMLShowOSUnknown($NewLinkTarget); @@ -21639,7 +20041,7 @@ sub HTMLMainExtra{ &HTMLShowKeywords($NewLinkTarget); } if ( $HTMLOutput{'downloads'} ) { - &HTMLShowDownloads(); + print &HTMLMainDownloads($NewLinkParams, $NewLinkTarget) . &html_end(1); } foreach my $code ( keys %TrapInfosForHTTPErrorCodes ) { if ( $HTMLOutput{"errors$code"} ) { @@ -21653,8 +20055,8 @@ sub HTMLMainExtra{ if ( $HTMLOutput{'info'} ) { # TODO Not yet available - print "$Center 
    "; - &html_end(1); + print " "; + print &html_end(1); } # Print any plugins that have individual pages @@ -21663,10 +20065,10 @@ sub HTMLMainExtra{ foreach my $key ( keys %HTMLOutput ) { $htmloutput = $key; } if ( $htmloutput =~ /^plugin_(\w+)$/ ) { my $pluginname = $1; - print "$Center 
    "; + print " "; my $function = "AddHTMLGraph_$pluginname"; &$function(); - &html_end(1); + print &html_end(1); } } @@ -21714,154 +20116,180 @@ sub HTMLMainExtra{ # SUMMARY #--------------------------------------------------------------------- - if ($ShowSummary) { - &HTMLMainSummary(); - } + # if ($ShowSummary) { + # &HTMLMainSummary(); + # } + + print '
    '; + print '
    '; # BY MONTH #--------------------------------------------------------------------- if ($ShowMonthStats) { - &HTMLMainMonthly(); + print &HTMLMainMonthly(); + } + + # BY RATIOS + #--------------------------------------------------------------------- + if ($ShowRatiosStats && $LogType eq 'W') { + print &HTMLMainRatios($firstdaytocountaverage, $lastdaytocountaverage, $firstdaytoshowtime, $lastdaytoshowtime); } - print "\n \n\n"; + print '
    '; # BY DAY OF MONTH #--------------------------------------------------------------------- if ($ShowDaysOfMonthStats) { - &HTMLMainDaily($firstdaytocountaverage, $lastdaytocountaverage, - $firstdaytoshowtime, $lastdaytoshowtime); + print &HTMLMainDaily($firstdaytocountaverage, $lastdaytocountaverage, $firstdaytoshowtime, $lastdaytoshowtime); } + print '
    '; + # BY DAY OF WEEK #------------------------- if ($ShowDaysOfWeekStats) { - &HTMLMainDaysofWeek($firstdaytocountaverage, $lastdaytocountaverage, $NewLinkParams, $NewLinkTarget); + print &HTMLMainDaysofWeek($firstdaytocountaverage, $lastdaytocountaverage, $NewLinkParams, $NewLinkTarget); } # BY HOUR #---------------------------- if ($ShowHoursStats) { - &HTMLMainHours($NewLinkParams, $NewLinkTarget); + print &HTMLMainHours($NewLinkParams, $NewLinkTarget); } - print "\n \n\n"; + print '
    '; + print '
    '; + print '
    '; - # BY COUNTRY/DOMAIN - #--------------------------- - if ($ShowDomainsStats) { - &HTMLMainCountries($NewLinkParams, $NewLinkTarget); + # BY PAGE + #------------------------- + if ($ShowPagesStats) { + print &HTMLMainPages($NewLinkParams, $NewLinkTarget); } - # BY HOST/VISITOR - #-------------------------- - if ($ShowHostsStats) { - &HTMLMainHosts($NewLinkParams, $NewLinkTarget); + # BY FILE TYPE + #------------------------- + if ($ShowFileTypesStats) { + print &HTMLMainFileType($NewLinkParams, $NewLinkTarget); } - # BY SENDER EMAIL - #---------------------------- - if ($ShowEMailSenders) { - &HTMLShowEmailSendersChart( $NewLinkParams, $NewLinkTarget ); + # BY FILE SIZE + #------------------------- + if ($ShowFileSizesStats) { + &HTMLMainFileSize(); } - # BY RECEIVER EMAIL - #---------------------------- - if ($ShowEMailReceivers) { - &HTMLShowEmailReceiversChart( $NewLinkParams, $NewLinkTarget ); + # BY REQUEST TIME + #------------------------- + if ($ShowRequestTimesStats) { + &HTMLMainRequestTime(); + } + + # BY DOWNLOADS + #------------------------- + if ($ShowDownloadsStats) { + print &HTMLMainDownloads($NewLinkParams, $NewLinkTarget); } - # BY LOGIN - #---------------------------- - if ($ShowAuthenticatedUsers) { - &HTMLMainLogins($NewLinkParams, $NewLinkTarget); + print '
    '; + print '
    '; + print '
    '; + + # BY HOST/VISITOR + #-------------------------- + if ($ShowHostsStats) { + print &HTMLMainHosts($NewLinkParams, $NewLinkTarget); } + print '
    '; + + # BY COUNTRY/DOMAIN + #--------------------------- + if ($ShowDomainsStats) { + print &HTMLMainCountries($NewLinkParams, $NewLinkTarget); + } + + print '
    '; + # BY ROBOTS #---------------------------- if ($ShowRobotsStats) { - &HTMLMainRobots($NewLinkParams, $NewLinkTarget); + print &HTMLMainRobots($NewLinkParams, $NewLinkTarget); } # BY WORMS #---------------------------- if ($ShowWormsStats) { - &HTMLMainWorms(); + print &HTMLMainWorms(); } - print "\n \n\n"; + print '
    '; - # BY SESSION + # BY SENDER EMAIL #---------------------------- - if ($ShowSessionsStats) { - &HTMLMainSessions(); + if ($ShowEMailSenders) { + &HTMLShowEmailSendersChart( $NewLinkParams, $NewLinkTarget ); } - # BY FILE TYPE - #------------------------- - if ($ShowFileTypesStats) { - &HTMLMainFileType($NewLinkParams, $NewLinkTarget); + # BY RECEIVER EMAIL + #---------------------------- + if ($ShowEMailReceivers) { + &HTMLShowEmailReceiversChart( $NewLinkParams, $NewLinkTarget ); } - # BY FILE SIZE - #------------------------- - if ($ShowFileSizesStats) { - &HTMLMainFileSize(); + # BY LOGIN + #---------------------------- + if ($ShowAuthenticatedUsers) { + &HTMLMainLogins($NewLinkParams, $NewLinkTarget); } - - # BY REQUEST TIME - #------------------------- - if ($ShowRequestTimesStats) { - &HTMLMainRequestTime(); - } - # BY DOWNLOADS - #------------------------- - if ($ShowDownloadsStats) { - &HTMLMainDownloads($NewLinkParams, $NewLinkTarget); + # BY SESSION + #---------------------------- + if ($ShowSessionsStats) { + print &HTMLMainSessions(); } - - # BY PAGE - #------------------------- - if ($ShowPagesStats) { - &HTMLMainPages($NewLinkParams, $NewLinkTarget); + + # BY SCREEN SIZE + #---------------------------- + if ($ShowScreenSizeStats) { + print &HTMLMainScreenSize(); } # BY OS #---------------------------- if ($ShowOSStats) { - &HTMLMainOS($NewLinkParams, $NewLinkTarget); + print &HTMLMainOS($NewLinkParams, $NewLinkTarget); } # BY BROWSER #---------------------------- if ($ShowBrowsersStats) { - &HTMLMainBrowsers($NewLinkParams, $NewLinkTarget); + print &HTMLMainBrowsers($NewLinkParams, $NewLinkTarget); } - # BY SCREEN SIZE + print '
    '; + print '
    '; + + # BY SEARCH KEYPHRASES #---------------------------- - if ($ShowScreenSizeStats) { - &HTMLMainScreenSize(); + if ($ShowKeyphrasesStats){ + print &HTMLMainKeyphrases($NewLinkParams, $NewLinkTarget); } - print "\n \n\n"; + # BY SEARCH KEYWORDS + #---------------------------- + if ($ShowKeywordsStats){ + print &HTMLMainKeywords($NewLinkParams, $NewLinkTarget); + } # BY REFERENCE #--------------------------- if ($ShowOriginStats) { - &HTMLMainReferrers($NewLinkParams, $NewLinkTarget); + print &HTMLMainReferrers($NewLinkParams, $NewLinkTarget); } - print "\n \n\n"; - - # BY SEARCH KEYWORDS AND/OR KEYPHRASES - #------------------------------------- - if ($ShowKeyphrasesStats || $ShowKeywordsStats){ - &HTMLMainKeys($NewLinkParams, $NewLinkTarget); - } - - print "\n \n\n"; + print '
    '; + print '
    '; # BY MISC #---------------------------- @@ -21872,7 +20300,7 @@ sub HTMLMainExtra{ # BY HTTP STATUS #---------------------------- if ($ShowHTTPErrorsStats) { - &HTMLMainHTTPStatus($NewLinkParams, $NewLinkTarget); + print &HTMLMainHTTPStatus($NewLinkParams, $NewLinkTarget); } # BY SMTP STATUS @@ -21887,14 +20315,18 @@ sub HTMLMainExtra{ &HTMLMainCluster($NewLinkParams, $NewLinkTarget); } + print '
    '; + # BY EXTRA SECTIONS #---------------------------- foreach my $extranum ( 1 .. @ExtraName - 1 ) { + print '
    '; &HTMLMainExtra($NewLinkParams, $NewLinkTarget, $extranum); + print '
    '; } # close the HTML page - &html_end(1); + print &html_end(1); } } else { diff --git a/wwwroot/cgi-bin/lang/awstats-en.txt b/wwwroot/cgi-bin/lang/awstats-en.txt index c1a3cfbef..1c97634ad 100644 --- a/wwwroot/cgi-bin/lang/awstats-en.txt +++ b/wwwroot/cgi-bin/lang/awstats-en.txt @@ -23,7 +23,7 @@ message18=Visitors message19=Pages-URL message20=Hours message21=Browsers -message22= +message22=Ratios message23=Referrers message24=Never updated (See 'Build/Update' on awstats_setup.html page) message25=Visitors domains/countries @@ -57,7 +57,7 @@ message52=visits/visitor message53=Robots/Spiders visitors message54=Free realtime logfile analyzer for advanced web statistics message55=of -message56=Pages +message56=- message57=Hits message58=Versions message59=Operating Systems @@ -84,7 +84,7 @@ message79=Filter message80=Full list message81=Hosts message82=Known -message83=Robots +message83= message84=Sun message85=Mon message86=Tue @@ -165,7 +165,7 @@ message160=Viewed traffic message161=Not viewed traffic message162=Monthly history message163=Worms -message164=different worms +message164= message165=Mails successfully sent message166=Mails failed/refused message167=Sensitive targets @@ -178,7 +178,7 @@ message173=Opera versions message174=Safari versions message175=Chrome versions message176=Konqueror versions -message177=, +message177= message178=Downloads message179=Export CSV message180=TB @@ -189,4 +189,6 @@ message184=s message185=Request average frequency [/s] message186=Request size message187=Hour -message188=Request time \ No newline at end of file +message188=Request time +message189=New major release available for AWStats +message190=New minor release available for AWStats \ No newline at end of file diff --git a/wwwroot/cgi-bin/lang/awstats-fr.txt b/wwwroot/cgi-bin/lang/awstats-fr.txt index 33d721f43..4819a094f 100644 --- a/wwwroot/cgi-bin/lang/awstats-fr.txt +++ b/wwwroot/cgi-bin/lang/awstats-fr.txt @@ -12,9 +12,9 @@ message7=Statistiques de message8=Première visite message9=Dernière visite message10=Visites -message11=Visiteurs différents +message11=Visiteurs uniques message12=Visite -message13=mots clé différents +message13=mots clé message14=Recherche message15=Pourcentage message16=Trafic @@ -23,41 +23,41 @@ message18=Visiteurs message19=Pages-URL message20=Heures message21=Navigateurs -message22= +message22=Ratios message23=Origine/Referer message24=Jamais mis à jour (Voir 'Build/Update', page awstats_setup.html) -message25=Domaines/pays visiteurs +message25=Domaines / Pays visiteurs message26=des hôtes message27=des pages -message28=pages différentes +message28=pages message29=Pages vues message30=Autres mots message31=Pages non trouvées message32=Codes Status HTTP message33=Versions de Netscape message34=Versions de MS Internet Explorer -message35=Dernière mise à jour +message35=Mis à jour le message36=Connexions au site par message37=Origine de la connexion message38=Adresse directe / Bookmark / Lien dans email... message39=Origine inconnue -message40=Lien depuis un moteur de recherche Internet -message41=Lien depuis une page externe (autres sites, hors moteurs) -message42=Lien depuis une page interne (autre page du site) +message40=Moteur de recherche +message41=Page externe (autres sites, hors moteurs) +message42=Page interne (autre page du site) message43=Phrases clés de recherche message44=Mots clés de recherche -message45=Adresses IP non résolues +message45=IPs non résolues message46=OS non reconnus (champ useragent brut) message47=URLs du site demandées non trouvées (Code HTTP 404) message48=Adresse IP message49=Hits en échec message50=Navigateurs non reconnus (champ useragent brut) -message51=robots différents -message52=visites/visiteur +message51=robots +message52=visites / visiteur message53=Visiteurs Robots/Spiders message54=Analyseur de log libre pour statistiques Web avancées message55=sur -message56=Pages +message56=- message57=Hits message58=Versions message59=Systèmes exploitation @@ -75,8 +75,8 @@ message70=Nov message71=Déc message72=Navigation message73=Types de fichiers -message74=Mise à jour immédiate -message75=Bande passante +message74=Mettre à jour +message75=Data message76=Retour page principale message77=Top message78=dd mmm yyyy - HH:MM @@ -84,7 +84,7 @@ message79=Filtre message80=Liste complète message81=Hôtes message82=Connus -message83=Robots +message83=Compression message84=Dim message85=Lun message86=Mar @@ -100,14 +100,14 @@ message95=Min message96=Moyenne message97=Max message98=Compression web -message99=Bande-passante économisée -message100=Compression sur -message101=Résultat compression +message99=Trafic
    économisé +message100=sur +message101=Résultat message102=Total -message103=phrases clé différentes +message103=phrases clé message104=Entrée message105=Code -message106=Taille moyenne +message106=Poids moyen message107=Lien depuis un NewsGroup message108=Ko message109=Mo @@ -120,11 +120,11 @@ message115=OK message116=Sortie message117=Durée des visites message118=Fermer -message119=Octets +message119=o message120=Phrases clés message121=Mots clés -message122=moteurs de recherche différents -message123=sites différents +message122=moteurs de recherche +message123=sites message124=Autres phrases message125=Autres logins (et/ou utilisateurs anonymes) message126=Moteurs de recherche @@ -136,7 +136,7 @@ message131=EMail Emetteur message132=EMail Destinataire message133=Période d'analyse message134=Extra/Marketing -message135=Résolution écran +message135=Définition écran message136=Attaques Worm/Virus message137=Hits avec succès sur favicon.ico message138=Jours du mois @@ -160,12 +160,12 @@ message155=Cluster message156=Les robots présentés ici sont à l'origine de hits ou de traffic "non vus" par les visiteurs donc non représentés dans les autres tableaux. message157=Les nombres après le + indiquent les hits avec succès sur les fichiers "robots.txt". message158=Les vers présentés ici sont à l'origine de hits ou de traffic "non vus" par les visiteurs donc non représentés dans les autres tableaux. -message159=Le trafic 'non vu' est le trafic généré par les robots, vers ou réponses HTTP avec code retour spécial. -message160=Trafic 'vu' -message161=Trafic 'non vu' +message159=Le trafic 'non vu' est généré par les robots, vers ou réponses HTTP avec code retour spécial. +message160=vu +message161=non vu message162=Historique mensuel -message163=Vers -message164=vers differents +message163=vers +message164= message165=Mails transférés message166=Mails en échec/refusés message167=Cibles sensibles @@ -179,4 +179,16 @@ message174=Versions Safari message175=Versions Chrome message176=Versions Konqueror message177= -message178=Téléchargements \ No newline at end of file +message178=Téléchargements +message179=Export CSV +message180=TB +message181=Frequence[/s] +message182=Nombre de requêtes +message183=Periode +message184=s +message185=Fréquence moyenne de requête [/s] +message186=Taille de la requête +message187=Heure +message188=Request time +message189=Nouvelle version majeure de AWStats disponible +message190=Nouvelle version mineure de AWStats disponible \ No newline at end of file diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-al.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-al.txt index 69971a093..ace45b81a 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-al.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-al.txt @@ -1,69 +1,61 @@ -
    -Vizita është përkufizuar si vizitor risi (Shfletimin apo Shiqimin e faqes) të cilët nuk e kan vizituar faqen që nga #VisitTimeOut# min. -
    -
    -Numri i klientëve strehues (IP adresa) të cilët erdhën ta vizitojnë faqen (dhe që shfletuan se paku një faqe).
    -Këto t'dhëna tregojnë numrin e personave të ndryshëm fizikë të cilët arritën faqen në çdo ditë. -
    -
    -Hera e faqeve që është shiquar (Shuma e të gjitha vizitave).
    -Kjo pjes e t'dhënave ndryshon nga "Hyrjet" në atë mënyr i numron vetëm faqet HTML kundër atyre për figur dhe të tjera. -
    -
    -Hera e faqes, figurës, vargut që është shiquar ose shkarkuar nga dikush.
    -Këto t'dhëna janë ofruar vetëm si referencë, pasi që numri i shiqimeve "Faqe" është menduar për qëllime tregtie. -
    -
    -Kjo informatë trtegon sasinë e t'dhënave shkarkuar nga të gjitha faqet, figurat dhe vargjet mbrenda një Faqësie.
    -Njesitë janë në KB, MB ose GB (KiloBajt, MegaBajta or GigaBajta) -
    -
    -#PROG# e njeh çdo lidhje në faqe search nga #SearchEnginesArray# Makinat Kërkuese në Internet më të popullarizuara si dhe Tregues (si Yahoo, Altavista, Lycos, Google, Voila, etj...). -
    -
    -Lista e të gjitha faqeve jashta faqës që nyjëzuan (dhe hyrje) te faqja e juaj (Vetëm #MaxNbOfRefererShown# faqe më të shpeshta). -Nyjet që janë përdor nga rezultatet e makinave kërkuese janë përjashtu këtu sepse ato përfshi në rreshtat e tabelave. -
    -
    -Kjo tabelë tregon kryefrazat dhe kryefjalitë më të shpeshta që janë përdorur ta gjejnë faqen tënde nga Makinat Kërkuese dhe tregues në Internet. -(kryefjalë nga #SearchEnginesArray# Makinat Kërkuese dhe Treguest më të popullarizuar janë njohur nga #PROG#, si Yahoo, Altavista, Lycos, Google, Voila, etj...).
    -Vështri se shuma e kryefalive mund të jet më i madh se sa shume për kryefraza (numri real i kërkesave) sepse ndoshta dy fjali janë përdor në të njejtin Kërkues, kërkuese është numruar dy herë për fjali (një herë për çdo fjalë). -
    -
    -Robotat (rrallë emruar si Marimanga) janë vizita automatike kompjuterike përdorur nga shumë Makina Kërkuese që e Shiqon faqen tënga për tregues dhe radhitje, grumbullon statistika në Faqet e Internetit dhe/ose shiqon nëse faqja e juajështë ende në linje.
    -#PROG# Ka mundësi që t'i njohë #RobotArray# robota. -
    -
    -Të gjitha vizitat janë bazuar nga koha reale e Shërbyesit. -
    -
    -Këtu, t'dhënat e raportuara janë: valutat mesatare (llogaritur nga t'dhëant ndërmjet vizites së parë dhe të fundit) -
    -
    -Këtu, t'dhënat e raportuara janë: Shuma grumbulluese (llogaritur nga t'dhëant ndërmjet vizites së parë dhe të fundit) -
    -
    -Disa zgjatje të vizitave janë 'panjohur' sepse gjithmonë ato nuk mund të llogariten. Kjo është arsya kryesore për këtë:
    -- vizita nuk ishte përfundur kur 'freskimi' ndodhi.
    -- vizita filloi në orën e fundit (pas 23:00) te fundi i ditës së muajit (Një arsye teknike parandalon #PROG# për llogaritjen e një zgjatje të një mbledhje të tillë) -
    - -
    Nuk ka përshkrim për këtë gabim.
    -
    Kërkesa është kuptuar nga shërbyesi por do të kryesohet më vonë.
    -
    Shërbyesi ka kryesuar mirpo atje nuk ka dokument për ta dërguar.
    -
    Përmbajtje gjysore.
    -
    Dokumenti i kërkuar ishte larguar dhe tani një adres tjetër është përgjigj.
    -
    Nuk ka përshkrim për këtë gabim.
    -
    Gabim sintaksor, shërbyesi nuk e ka kuptuar kërkesen.
    -
    Provoi që ta arrij një URL ku një hyrje/parullë është nevojitur.
    Numri i madh në këtë gjë d.m.th. se (si psh. Grepi) është duke provuar që ta then, ose për të hyr në faqen tënde të siguruar (si shembull, duke shpresuar se duke provu parulla të ndryshme mund të hynë në hapsiren e siguruar).
    -
    Provoi që ta arrij një URL pa trajtur për arritje, edhe me parullë (për shembull, një URL mbrenda Treguesit jo e përkufizuar si "shfletuese".).
    -
    Provoi që ta arrij një URL joekzistuese. Ky gabim shpesh dmth një nyje pavlerë diku në faqen tënde ekziston ose vizitori e ka gabuar një URL të caktuar.
    -
    Shërbyesi shfrytëzoi shumë kohë ti përgjigjet kërkesës. Ky gabim shpesh përfshin skriptat (CGI, PHP) e ngadalshëm që shërbyesi është detyru që ta zhduk Faqe shërbyesin jashtëzakonisht të dyndur.
    -
    Gabim i mbrendshëm. Ky gabim shpesh shkaktohet nga një program CGI që përfundoi parregull (psh trajtim i keq).
    -
    Kërkes e panjohur.
    -
    Kodi i kthyer nga një shërbyes HTTP që punon si portë prokurie kur realisht, shërbyesi shenjuar nuk përgjigjet sukseshëm te kërkesat e klientëve.
    -
    Gabim mbrenda shërbyesit.
    -
    Parta tejkaloi kohën.
    -
    Botimi i HTTP Nuk është i Përkrahur
    +tt1=Vizita është përkufizuar si vizitor risi (Shfletimin apo Shiqimin e faqes) të cilët nuk e kan vizituar faqen që nga #VisitTimeOut# min. + +tt2=Numri i klientëve strehues (IP adresa) të cilët erdhën ta vizitojnë faqen (dhe që shfletuan se paku një faqe).
    Këto t'dhëna tregojnë numrin e personave të ndryshëm fizikë të cilët arritën faqen në çdo ditë. + +tt3=Hera e faqeve që është shiquar (Shuma e të gjitha vizitave).
    Kjo pjes e t'dhënave ndryshon nga "Hyrjet" në atë mënyr i numron vetëm faqet HTML kundër atyre për figur dhe të tjera. + +tt4=Hera e faqes, figurës, vargut që është shiquar ose shkarkuar nga dikush.
    Këto t'dhëna janë ofruar vetëm si referencë, pasi që numri i shiqimeve "Faqe" është menduar për qëllime tregtie. + +tt5=Kjo informatë trtegon sasinë e t'dhënave shkarkuar nga të gjitha faqet, figurat dhe vargjet mbrenda një Faqësie.
    Njesitë janë në KB, MB ose GB (KiloBajt, MegaBajta or GigaBajta) + +tt13=#PROG# e njeh çdo lidhje në faqe search nga #SearchEnginesArray# Makinat Kërkuese në Internet më të popullarizuara si dhe Tregues (si Yahoo, Altavista, Lycos, Google, Voila, etj...). + +tt14=Lista e të gjitha faqeve jashta faqës që nyjëzuan (dhe hyrje) te faqja e juaj (Vetëm #MaxNbOfRefererShown# faqe më të shpeshta).Nyjet që janë përdor nga rezultatet e makinave kërkuese janë përjashtu këtu sepse ato përfshi në rreshtat e tabelave. + +tt15=Kjo tabelë tregon kryefrazat dhe kryefjalitë më të shpeshta që janë përdorur ta gjejnë faqen tënde nga Makinat Kërkuese dhe tregues në Internet. (kryefjalë nga #SearchEnginesArray# Makinat Kërkuese dhe Treguest më të popullarizuar janë njohur nga #PROG#, si Yahoo, Altavista, Lycos, Google, Voila, etj...).
    Vështri se shuma e kryefalive mund të jet më i madh se sa shume për kryefraza (numri real i kërkesave) sepse ndoshta dy fjali janë përdor në të njejtin Kërkues, kërkuese është numruar dy herë për fjali (një herë për çdo fjalë). + +tt16=Robotat (rrallë emruar si Marimanga) janë vizita automatike kompjuterike përdorur nga shumë Makina Kërkuese që e Shiqon faqen tënga për tregues dhe radhitje, grumbullon statistika në Faqet e Internetit dhe/ose shiqon nëse faqja e juajështë ende në linje.
    #PROG# Ka mundësi që t'i njohë #RobotArray# robota. + +tt17=Të gjitha vizitat janë bazuar nga koha reale e Shërbyesit. + +tt18=Këtu, t'dhënat e raportuara janë: valutat mesatare (llogaritur nga t'dhëant ndërmjet vizites së parë dhe të fundit) + +tt19=Këtu, t'dhënat e raportuara janë: Shuma grumbulluese (llogaritur nga t'dhëant ndërmjet vizites së parë dhe të fundit) + +tt20=Disa zgjatje të vizitave janë 'panjohur' sepse gjithmonë ato nuk mund të llogariten. Kjo është arsya kryesore për këtë:
    - vizita nuk ishte përfundur kur 'freskimi' ndodhi.
    - vizita filloi në orën e fundit (pas 23:00) te fundi i ditës së muajit (Një arsye teknike parandalon #PROG# për llogaritjen e një zgjatje të një mbledhje të tillë) + +tt201= Nuk ka përshkrim për këtë gabim. + +tt202= Kërkesa është kuptuar nga shërbyesi por do të kryesohet më vonë. + +tt204= Shërbyesi ka kryesuar mirpo atje nuk ka dokument për ta dërguar. + +tt206= Përmbajtje gjysore. + +tt301= Dokumenti i kërkuar ishte larguar dhe tani një adres tjetër është përgjigj. + +tt302= Nuk ka përshkrim për këtë gabim. + +tt400= Gabim sintaksor, shërbyesi nuk e ka kuptuar kërkesen. + +tt401= Provoi që ta arrij një URL ku një hyrje/parullë është nevojitur.
    Numri i madh në këtë gjë d.m.th. se (si psh. Grepi) është duke provuar që ta then, ose për të hyr në faqen tënde të siguruar (si shembull, duke shpresuar se duke provu parulla të ndryshme mund të hynë në hapsiren e siguruar). + +tt403= Provoi që ta arrij një URL pa trajtur për arritje, edhe me parullë (për shembull, një URL mbrenda Treguesit jo e përkufizuar si "shfletuese".). + +tt404= Provoi që ta arrij një URL joekzistuese. Ky gabim shpesh dmth një nyje pavlerë diku në faqen tënde ekziston ose vizitori e ka gabuar një URL të caktuar. + +tt408= Shërbyesi shfrytëzoi shumë kohë ti përgjigjet kërkesës. Ky gabim shpesh përfshin skriptat (CGI, PHP) e ngadalshëm që shërbyesi është detyru që ta zhduk Faqe shërbyesin jashtëzakonisht të dyndur. + +tt500= Gabim i mbrendshëm. Ky gabim shpesh shkaktohet nga një program CGI që përfundoi parregull (psh trajtim i keq). + +tt501= Kërkes e panjohur. + +tt502= Kodi i kthyer nga një shërbyes HTTP që punon si portë prokurie kur realisht, shërbyesi shenjuar nuk përgjigjet sukseshëm te kërkesat e klientëve. + +tt503= Gabim mbrenda shërbyesit. + +tt504= Parta tejkaloi kohën. + +tt505= Botimi i HTTP Nuk është i Përkrahur diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ba.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ba.txt index db20cc5ac..6dd15b34e 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ba.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ba.txt @@ -1,54 +1,53 @@ -
    -Novi posjet se definie kao svaki novi dolazei posjetitelj (koji pregleda stranicu) koji se nije konektovao na va sajt u toku posljednjih #VisitTimeOut# minuta. -
    -
    -Broj korisnikih raunara (IP adresa) koji su posjeivali sajt (i vidjeli najmanje jednu stranicu).
    -Ovaj podatak govori o broju fiziki razliitih osoba koji su posjetili sajt tokom jednog dana. -
    -
    -Koliko puta je jedna stranica sajta bila pregledana (Suma za sve posjetitelje tokom svih posjeta).
    -Ovaj podatak se razlikuje od "pogodaka" po tome to broji samo HTML stranice za razliku od slika i drugih datoteka. -
    -
    -Koliko puta je jedna stranica, slika, datoteka sajta bila pregledana ili downloadovana od strane nekoga.
    -Ovaj podatak slui samo kao referenca, poto je broj "stranica" znatno korisniji za razne marketinke potrebe. -
    -
    -Ova informacija govori o koliini downloadiranih podataka za sve stranice, slike i datoteke u okviru vaeg sajta.
    -Jedinice su Kb, Mb ili Gb (kilobajti, megabajti ili gigabajti). Ovaj podatak je koristan kako biste pratili ostvareni transfer sa vae stranice. -
    -
    -#PROG# prepoznaje svaki pristup vaem sajtu nakon pretrage pomou #SearchEnginesArray# najpopularnijih Internet pretraivaa i direktorija (kao to su Yahoo, Altavista, Lycos, Google, Voila, itd...). -
    -
    -Lista svih vanjskih stranica na kojima se nalazi link koji je korisnik upotrijebio da bi doao na vau stranicu (Samo #MaxNbOfRefererShown# najeih linkova je prikazano). -Linkovi koji su rezultat pretraivaa su iskljueni jer smo ih ve prikazali u prethodnom redu ove tabele. -
    -
    -Ova tabela prikazuje listu kljunih rijei koje se najee koriste za pronalaenje vaeg sajta pomou Internet pretraivaa ili direktorija. -(#PROG# prepoznaje kljune rijei #SearchEnginesArray# najeih pretraivaa i direktorija, meu kojima su i Yahoo, Altavista, Lycos, Google, Voila, itd...). -
    -
    -Roboti (koji se ponekad nazivaju Spideri) su raunarski programi koje koriste mnogi pretraivai kako bi analizirali vau stranicu i time (1) indeksirali i rangirali vau stranicu, (2) prikupili statistike o Web stranicama i/ili (3) provjerili da li je va sajt jo uvijek online.
    -#PROG# moe prepoznati do #RobotArray# robota. -
    - -
    Nema opisa za ovu greku.
    -
    Server je razumio zahtjev, ali e ga obraditi kasnije.
    -
    Server je obradio zahtjev ali nema ta da poalje korisniku.
    -
    Djelomian sadraj (korisnik je prekinuo otvaranje stranice).
    -
    Traeni dokument je premjeten na novo mjesto i nova adresa je data korisniku (redirekcija).
    -
    Traeni dokument je premjeten na novo mjesto i nova adresa je data korisniku (redirekcija).
    -
    Sintaksna greka, server nije razumio zahtjev.
    -
    Korisnik je pokuao otvoriti URL za koji je potrebno dati login/ifru.
    Veliki broj pod ovom stavkom moe znaiti da neko (npr. hacker) pokuava provaliti u va sajt (npr. isprobavajui razne kombinacije logina/ifre za ulazak).
    -
    Korisnik je pokuao otvoriti URL koji je podeen da mu se ne moe pristupiti, ak ni sa loginom/ifrom (npr. URL unutar direktorija koji nije definisan kao pristupaan.).
    -
    Korisnik je pokuao pristupiti nepostojeem URLu. Ova greka obino znai da negdje na vaem sajtu postoji neispravan link ili da je korisnik neispravno ukucao odreeni URL.
    -
    Serveru je trebalo previe vremena da odgovori na zahtjev. Kod ove greke se obino radi ili o sporoj CGI skripti koju je server morao prekinuti, o sporoj konekciji korisnika ili o ekstremnom zaguenju saobraaja na web serveru.
    -
    Interna greka. Ovu greku uzrokuje CGI program koji sadri neku greku te je prekinuo rad abnormalno.
    -
    Zahtjevana je nepoznata akcija.
    -
    Ovaj kod vraa HTTP server koji radi kao proxy ili gateway, i to ako stvarni server ne odgovori uspjeno na zahtjev klijenta.
    -
    Interna greka na serveru.
    -
    Ovaj kod vraa HTTP server koji radi kao gateway, i to ako prilikom kontaktiranja stvarnog servera istekne predvieno vrijeme (gateway timeout).
    -
    Klijent zahtjeva verziju HTTPa koja nije podrana.
    +tt1=Novi posjet se definie kao svaki novi dolazei posjetitelj (koji pregleda stranicu) koji se nije konektovao na va sajt u toku posljednjih #VisitTimeOut# minuta. + +tt2=Broj korisnikih raunara (IP adresa) koji su posjeivali sajt (i vidjeli najmanje jednu stranicu).
    Ovaj podatak govori o broju fiziki razliitih osoba koji su posjetili sajt tokom jednog dana. + +tt3=Koliko puta je jedna stranica sajta bila pregledana (Suma za sve posjetitelje tokom svih posjeta).
    Ovaj podatak se razlikuje od "pogodaka" po tome to broji samo HTML stranice za razliku od slika i drugih datoteka. + +tt4=Koliko puta je jedna stranica, slika, datoteka sajta bila pregledana ili downloadovana od strane nekoga.
    Ovaj podatak slui samo kao referenca, poto je broj "stranica" znatno korisniji za razne marketinke potrebe. + +tt5=Ova informacija govori o koliini downloadiranih podataka za sve stranice, slike i datoteke u okviru vaeg sajta.
    Jedinice su Kb, Mb ili Gb (kilobajti, megabajti ili gigabajti). Ovaj podatak je koristan kako biste pratili ostvareni transfer sa vae stranice. + +tt13=#PROG# prepoznaje svaki pristup vaem sajtu nakon pretrage pomou #SearchEnginesArray# najpopularnijih Internet pretraivaa i direktorija (kao to su Yahoo, Altavista, Lycos, Google, Voila, itd...). + +tt14=Lista svih vanjskih stranica na kojima se nalazi link koji je korisnik upotrijebio da bi doao na vau stranicu (Samo #MaxNbOfRefererShown# najeih linkova je prikazano). Linkovi koji su rezultat pretraivaa su iskljueni jer smo ih ve prikazali u prethodnom redu ove tabele. + +tt15=Ova tabela prikazuje listu kljunih rijei koje se najee koriste za pronalaenje vaeg sajta pomou Internet pretraivaa ili direktorija. (#PROG# prepoznaje kljune rijei #SearchEnginesArray# najeih pretraivaa i direktorija, meu kojima su i Yahoo, Altavista, Lycos, Google, Voila, itd...). + +tt16=Roboti (koji se ponekad nazivaju Spideri) su raunarski programi koje koriste mnogi pretraivai kako bi analizirali vau stranicu i time (1) indeksirali i rangirali vau stranicu, (2) prikupili statistike o Web stranicama i/ili (3) provjerili da li je va sajt jo uvijek online.
    #PROG# moe prepoznati do #RobotArray# robota. + +tt201= Nema opisa za ovu greku. + +tt202= Server je razumio zahtjev, ali e ga obraditi kasnije. + +tt204= Server je obradio zahtjev ali nema ta da poalje korisniku. + +tt206= Djelomian sadraj (korisnik je prekinuo otvaranje stranice). + +tt301= Traeni dokument je premjeten na novo mjesto i nova adresa je data korisniku (redirekcija). + +tt302= Traeni dokument je premjeten na novo mjesto i nova adresa je data korisniku (redirekcija). + +tt400= Sintaksna greka, server nije razumio zahtjev. + +tt401= Korisnik je pokuao otvoriti URL za koji je potrebno dati login/ifru.
    Veliki broj pod ovom stavkom moe znaiti da neko (npr. hacker) pokuava provaliti u va sajt (npr. isprobavajui razne kombinacije logina/ifre za ulazak). + +tt403= Korisnik je pokuao otvoriti URL koji je podeen da mu se ne moe pristupiti, ak ni sa loginom/ifrom (npr. URL unutar direktorija koji nije definisan kao pristupaan.). + +tt404= Korisnik je pokuao pristupiti nepostojeem URLu. Ova greka obino znai da negdje na vaem sajtu postoji neispravan link ili da je korisnik neispravno ukucao odreeni URL. + +tt408= Serveru je trebalo previe vremena da odgovori na zahtjev. Kod ove greke se obino radi ili o sporoj CGI skripti koju je server morao prekinuti, o sporoj konekciji korisnika ili o ekstremnom zaguenju saobraaja na web serveru. + +tt500= Interna greka. Ovu greku uzrokuje CGI program koji sadri neku greku te je prekinuo rad abnormalno. + +tt501= Zahtjevana je nepoznata akcija. + +tt502= Ovaj kod vraa HTTP server koji radi kao proxy ili gateway, i to ako stvarni server ne odgovori uspjeno na zahtjev klijenta. + +tt503= Interna greka na serveru. + +tt504= Ovaj kod vraa HTTP server koji radi kao gateway, i to ako prilikom kontaktiranja stvarnog servera istekne predvieno vrijeme (gateway timeout). + +tt505= Klijent zahtjeva verziju HTTPa koja nije podrana. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-bg.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-bg.txt index 45171aea7..695a18b85 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-bg.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-bg.txt @@ -1,69 +1,61 @@ -
    -Ново посещение се отчита при всеки нов входящ посетител (разглеждащ страница), който не е посещавал през последните #VisitTimeOut# min. -
    -
    -Броят на клиентските хостове (IP адреси), които са посетили сайта (и са разгледали поне една страница).
    -Тези данни показват броя на различните физически лица, посетили сайта във всеки един ден. -
    -
    -Колко пъти тази страница от сайта е разгледана (Общо за всички посетители за всички посещения).
    -Тези данни се различават от "хитове" по това, че отброяват само HTML страници (без картинките и другите видове файлове). -
    -
    -Колко пъти страница, картинка или друг файл от сайта е разгледан или свален от посетител.
    -Тези данни са само справочни, тъй като броя на разгледаните "страници" често са обект на маркетингова политика. -
    -
    -Тази информация се отнася до количеството данни свалени с всички страници, картинки и файлове във вашият сайт.
    -Мерните единици са в KB, MB или GB (Килобайти, Мегабайти или Гигабайти) -
    -
    -#PROG# разпознава всеки достъп до вашия сайт след претърсване от #SearchEnginesArray# популярните търсачки (като Yahoo, Altavista, Lycos, Google, Voila, и т.н....). -
    -
    -Списък на всички външни страници използвани за връзка (и вход) към вашият сайт (Само #MaxNbOfRefererShown#-те най-често използвани външни страници са показани). -Връзките, използвани като резултат от търсачките са изключени, т.к. вече са показани в предишния ред от тази таблица. -
    -
    -Таблицата показва списък с най-често използваните ключови фрази или думи използвани за намиране на вашият сайт с помощта на интернет търсачки. -(Ключовите думи от #SearchEnginesArray# най-популярните търсачки са разпознати от #PROG#, като Yahoo, Altavista, Lycos, Google, Voila, и т.н...).
    -Заб.: общият брой на търсенията по ключови думи може да превишава броя на търсенията по ключови фрази (истинският брой на търсенията), защото ако се използват 2 кл. думи при едно и също търсене се отброяват 2 търсения по думи (по веднъж за всяка дума). -
    -
    -Роботите (известни и като Паяци) са автоматизирани компютърни посетители използвани от търсачките да сканират сайта ви за индексиране и класифициране: те събират информация за Уеб сайтовете и/или проверяват дали сайтът ви е онлайн.
    -#PROG# може да разпознае до #RobotArray# робота. -
    -
    -Всички времеви статистики са базирани на часовото време на сървъра. -
    -
    -Докладваните данни са: приблизителни стойности (изчислени от всички данни между началното и последното посещение) -
    -
    -Докладваните данни са: нарастващи суми (изчислени от всички данни между началното и последното посещение) -
    -
    -Някои стойности на Продължителност на посещенията са 'неизвестни' защото невинаги могат да бъдат изчислени. Основната причина за това е:
    -- Посещението още не е приключило, когато е предизвикано 'обновяване'.
    -- Посещението е започнало в последният час (след 23:00) от последният ден на месеца (по технически причини #PROG# е възпрепятстван да изчисли продължителността на такива сесии). -
    - -
    Няма описание на тази грешка.
    -
    Заявката ще бъде обработена по-късно от сървъра.
    -
    Сървърът обработи заявката, но тя не съдържа нищо.
    -
    Частично съдържание
    -
    В отговора на заявката можете да видите новият адрес на поисканият документ.
    -
    Няма описание на тази грешка.
    -
    Синтактична грешка, сървърът не разбира вашата заявка.
    -
    Опитвате се да достигнете URL защитен с име/парола.
    Многократни такива съобщения могат да означават опит за неоторизиран и/или злонамерен достъп до вашият сайт.
    -
    Опитвате се да достигнете URL недостъпен и за оторизирани потребители (например, URL адрес в директория, която не е дефинирана за "преглед".).
    -
    Опитвате се да достигнете несъществуващ URL. Това показва съществуването на невалидна връзка в сайта или погрешно написан от посетителя URL адрес.
    -
    Сървърът е отделил твърде много време за да отговори на заявката. Тази грешка обикновено означава или бавен CGI скрипт, който сървърът се е принудил да прекрати или извънредно претоварен със заявки сървър.
    -
    Вътрешна грешка. Тази грешка обикновено е причинена от CGI програма която е прекратила действието си абнормално(coredump например).
    -
    Исканото действие е непознато.
    -
    Код за грешка, върнат от HTTP сървър, работещ като прокси или gateway, когато сървърът-цел не е отговорил успешна на клиентската заявка.
    -
    Вътрешна грешка на сървъра.
    -
    Портално(Gateway) прекъсване.
    -
    HTTP версията не се поддържа.
    +tt1=Ново посещение се отчита при всеки нов входящ посетител (разглеждащ страница), който не е посещавал през последните #VisitTimeOut# min. + +tt2=Броят на клиентските хостове (IP адреси), които са посетили сайта (и са разгледали поне една страница).
    Тези данни показват броя на различните физически лица, посетили сайта във всеки един ден. + +tt3=Колко пъти тази страница от сайта е разгледана (Общо за всички посетители за всички посещения).
    Тези данни се различават от "хитове" по това, че отброяват само HTML страници (без картинките и другите видове файлове). + +tt4=Колко пъти страница, картинка или друг файл от сайта е разгледан или свален от посетител.
    Тези данни са само справочни, тъй като броя на разгледаните "страници" често са обект на маркетингова политика. + +tt5=Тази информация се отнася до количеството данни свалени с всички страници, картинки и файлове във вашият сайт.
    Мерните единици са в KB, MB или GB (Килобайти, Мегабайти или Гигабайти) + +tt13=#PROG# разпознава всеки достъп до вашия сайт след претърсване от #SearchEnginesArray# популярните търсачки (като Yahoo, Altavista, Lycos, Google, Voila, и т.н....). + +tt14=Списък на всички външни страници използвани за връзка (и вход) към вашият сайт (Само #MaxNbOfRefererShown#-те най-често използвани външни страници са показани). Връзките, използвани като резултат от търсачките са изключени, т.к. вече са показани в предишния ред от тази таблица. + +tt15=Таблицата показва списък с най-често използваните ключови фрази или думи използвани за намиране на вашият сайт с помощта на интернет търсачки. (Ключовите думи от #SearchEnginesArray# най-популярните търсачки са разпознати от #PROG#, като Yahoo, Altavista, Lycos, Google, Voila, и т.н...).
    Заб.: общият брой на търсенията по ключови думи може да превишава броя на търсенията по ключови фрази (истинският брой на търсенията), защото ако се използват 2 кл. думи при едно и също търсене се отброяват 2 търсения по думи (по веднъж за всяка дума). + +tt16=Роботите (известни и като Паяци) са автоматизирани компютърни посетители използвани от търсачките да сканират сайта ви за индексиране и класифициране: те събират информация за Уеб сайтовете и/или проверяват дали сайтът ви е онлайн.
    #PROG# може да разпознае до #RobotArray# робота. + +tt17=Всички времеви статистики са базирани на часовото време на сървъра. + +tt18=Докладваните данни са: приблизителни стойности (изчислени от всички данни между началното и последното посещение) + +tt19=Докладваните данни са: нарастващи суми (изчислени от всички данни между началното и последното посещение) + +tt20=Някои стойности на Продължителност на посещенията са 'неизвестни' защото невинаги могат да бъдат изчислени. Основната причина за това е:
    - Посещението още не е приключило, когато е предизвикано 'обновяване'.
    - Посещението е започнало в последният час (след 23:00) от последният ден на месеца (по технически причини #PROG# е възпрепятстван да изчисли продължителността на такива сесии). + +tt201= Няма описание на тази грешка. + +tt202= Заявката ще бъде обработена по-късно от сървъра. + +tt204= Сървърът обработи заявката, но тя не съдържа нищо. + +tt206= Частично съдържание + +tt301= В отговора на заявката можете да видите новият адрес на поисканият документ. + +tt302= Няма описание на тази грешка. + +tt400= Синтактична грешка, сървърът не разбира вашата заявка. + +tt401= Опитвате се да достигнете URL защитен с име/парола.
    Многократни такива съобщения могат да означават опит за неоторизиран и/или злонамерен достъп до вашият сайт. + +tt403= Опитвате се да достигнете URL недостъпен и за оторизирани потребители (например, URL адрес в директория, която не е дефинирана за "преглед".). + +tt404= Опитвате се да достигнете несъществуващ URL. Това показва съществуването на невалидна връзка в сайта или погрешно написан от посетителя URL адрес. + +tt408= Сървърът е отделил твърде много време за да отговори на заявката. Тази грешка обикновено означава или бавен CGI скрипт, който сървърът се е принудил да прекрати или извънредно претоварен със заявки сървър. + +tt500= Вътрешна грешка. Тази грешка обикновено е причинена от CGI програма която е прекратила действието си абнормално(coredump например). + +tt501= Исканото действие е непознато. + +tt502= Код за грешка, върнат от HTTP сървър, работещ като прокси или gateway, когато сървърът-цел не е отговорил успешна на клиентската заявка. + +tt503= Вътрешна грешка на сървъра. + +tt504= Портално(Gateway) прекъсване. + +tt505= HTTP версията не се поддържа. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-br.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-br.txt index b4af595ec..671ed9c7b 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-br.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-br.txt @@ -1,141 +1,66 @@ -
    -Uma nova visita é definida como cada novo visitante entrando -(vendo ou navegando por uma página) que não estava conectado a -seu site pelos últimos #VisitTimeOut# minutos. -
    -
    -Número de hosts clientes (endereços IP) que vieram -visitar o site (e que viram pelo menos uma página).
    -Estes dados se referem ao número de pessoas físicas -diferentes que chegaram no site. -
    -
    -Número de vezes que uma página do site é -vista (Soma de todos os visitantes e todas visitas).
    -Estes dados diferem dos "hits" pois somente conta a exibição de -páginas HTML, enquanto os "hits" contam também imagens e outros -arquivos. -
    -
    -Número de vezes uma página, imagem, ou arquivo do site -é visto ou recebido por alguém.
    -Estes dados são fornecidos apenas como referência, já que -o número de "páginas" visto é freqüentemente -preferido para fins de marketing. -
    -
    -Esta parte de informação refere-se à quantidade de dados -recebidos de todas páginas, imagens e arquivos de -seu site.
    -Unidades estão em KB, MB ou GB (KiloBytes, MegaBytes ou GigaBytes) -
    -
    -#PROG# reconhece cada accesso ao seu site após uma busca a -partir das #SearchEnginesArray# mais populares Ferramentas de Busca da -Internet e Diretórios (como Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    -Lista de todas páginas externas que foram utilizadas como origem -de acesso (e entrada) ao seu (Somente as #MaxNbOfRefererShown# -páginas externas mais freqüentemente utilizadas são -exibidas). -Links utilizados pelos resultados de ferramentas de busca não -são incluídos aqui pois já foram incluídos na -linha anterior desta tabela. -
    -
    -Esta tabela mostra a lista das mais freqüentes palavras-chave ou frases -usadas para encontrar seu site a partir de Ferramentas de Busca da Internet e -Diretórios. -(Palavras-chave das #SearchEnginesArray# mais populares Ferramentas de -Busca e Diretórios são reconhecidas pelo #PROG#, como Yahoo, Altavista, Lycos, Google, Voila, etc...).
    -Note que o número total de buscas por palavras-chave pode ser maior que -o número total de buscas por frases (número real de buscas) -porque quando 2 palavras-chave são usadas em uma mesma busca, a busca -é contada em dobro para palavras-chave (uma para cada palavra). -
    -
    -Robots (também chamados de Spiders) são computadores -visitantes automáticos utilizados por várias ferramentas de -busca que podem rastrear seu web site para indexá-lo e -classificá-lo, coletar estatisticas em Web sites da Internet e/ou -verificar se seu site ainda está disponível.
    -#PROG# é capaz de reconhecer até #RobotArray# robots. -
    -
    -Todas as estatíticas de tempo relatadas são baseadas no -horário do servidor. -
    -
    -Aqui os dados reportados são: valores médios (calculados -a partir de todos os dados entre a primeira e última visitas no -intervalo analisado) -
    -
    -Aqui os dados reportados são: somas cumulativas (calculadas a -partir de todos os dados entre a primeira e última visitas no intervalo -analisado) -
    -
    -Some Duraçãoes de visitas são 'desconhecidas' -porque não podem ser sempre calculadas. Esta é a principal -razão para isso:
    -- A Visita não tinha sido encerrada quando a - 'atualização' ocorreu.
    -- Visitas iniciadas na última hora (depois de 23:00) do último - dia do mês (Uma razão técnica previne #PROG# de calcular -as durações destas sessões) -
    -
    -Worms (vermes) são visitas automáticas de computadores que na -realidade são servidores externos, infectados por um vírus, que -tenta realizar hits específicos em seu site para infectá-lo. Na -maioria dos casos, estes "vermes" exploram defeitos ("bugs") de servidores. Se -o seu sistema não é o alvo sensível do -worm, você pode simplesmente ignorar estes hits.
    -Existem poucos 'vermes de servidor' no mundo, mas eles costumam ser muito -ativos às vezes. -#PROG# é capaz de reconhecer #WormsArray# assinaturas conhecidas -de vermes (nimda,code red,...). -
    - -
    Erro sem descrição.
    -
    Requisição foi entendida pelo -servidor, mas será processada depois.
    -
    O servidor processou a -requisição, mas não há documento a ser enviado.
    -
    Conteúdo parcial.
    -
    O documento requisitado foi movido e -está agora em outro endereço fornecido como resposta.
    -
    Erro sem descrição.
    -
    erro de sintaxe, o servidor não -entendeu a requisição.
    -
    Tentou alcançar uma URL em que um -par usuário/senha foi requisitado.
    Um grande número -neste item pode significar que alguém (como um hacker) está -tentando quebrar, ou entrar em seu site (esperando entrar em uma área -segura tentando diferentes pares de usuários/senhas, por exemplo).
    -
    Tentou alcançar uma URL não -configurada como acessível, mesmo com um par userio/senha (por -exemplo, uma URL com um diretório não definido como -"navegável".).
    -
    Tentou alcançar uma URL -inexistente. Este erro freqüentemente significa que há um link -inválido em algum ponto de seu site ou que um visitante errou a -digitaço de uma URL.
    -
    O servidor levou muito tempo para -responder a requisição. Este erro freqüentemente indica ou -um script CGI lento que o servidor teve que interromper ou um servidor Web -extremamente congestionado.
    -
    Erro interno. Este erro é -freqüentemente causado por um programa CGI que terminou de forma anormal -(por exemplo um coredump).
    -
    Ação requisitada desconhecida.
    -
    Código retornado pelo servidor HTTP -que trabalha como proxy ou gateway quando um servidor real algo não -respondeu com sucesso à requisição do cliente.
    -
    Erro interno do servidor.
    -
    Tempo esgotado no Gateway.
    -
    Versão de HTTP Não Suportada.
    +tt1=Uma nova visita é definida como cada novo visitante entrando (vendo ou navegando por uma página) que não estava conectado a seu site pelos últimos #VisitTimeOut# minutos. + +tt2=Número de hosts clientes (endereços IP) que vieram visitar o site (e que viram pelo menos uma página).
    Estes dados se referem ao número de pessoas físicas diferentes que chegaram no site. + +tt3=Número de vezes que uma página do site é vista (Soma de todos os visitantes e todas visitas).
    Estes dados diferem dos "hits" pois somente conta a exibição de páginas HTML, enquanto os "hits" contam também imagens e outros arquivos. + +tt4=Número de vezes uma página, imagem, ou arquivo do site é visto ou recebido por alguém.
    Estes dados são fornecidos apenas como referência, já que o número de "páginas" visto é freqüentemente preferido para fins de marketing. + +tt5=Esta parte de informação refere-se à quantidade de dados recebidos de todas páginas, imagens e arquivos de +seu site.
    Unidades estão em KB, MB ou GB (KiloBytes, MegaBytes ou GigaBytes) + +tt13=#PROG# reconhece cada accesso ao seu site após uma busca a partir das #SearchEnginesArray# mais populares Ferramentas de Busca da Internet e Diretórios (como Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt14=Lista de todas páginas externas que foram utilizadas como origem de acesso (e entrada) ao seu (Somente as #MaxNbOfRefererShown# páginas externas mais freqüentemente utilizadas são exibidas). Links utilizados pelos resultados de ferramentas de busca não são incluídos aqui pois já foram incluídos na linha anterior desta tabela. + +tt15=Esta tabela mostra a lista das mais freqüentes palavras-chave ou frases usadas para encontrar seu site a partir de Ferramentas de Busca da Internet e +Diretórios. (Palavras-chave das #SearchEnginesArray# mais populares Ferramentas de Busca e Diretórios são reconhecidas pelo #PROG#, como Yahoo, Altavista, Lycos, Google, Voila, etc...).
    Note que o número total de buscas por palavras-chave pode ser maior que o número total de buscas por frases (número real de buscas) porque quando 2 palavras-chave são usadas em uma mesma busca, a busca é contada em dobro para palavras-chave (uma para cada palavra). + +tt16=Robots (também chamados de Spiders) são computadores visitantes automáticos utilizados por várias ferramentas de busca que podem rastrear seu web site para indexá-lo e classificá-lo, coletar estatisticas em Web sites da Internet e/ou verificar se seu site ainda está disponível.
    #PROG# é capaz de reconhecer até #RobotArray# robots. + +tt17=Todas as estatíticas de tempo relatadas são baseadas no horário do servidor. + +tt18=Aqui os dados reportados são: valores médios (calculados a partir de todos os dados entre a primeira e última visitas no intervalo analisado) + +tt19=Aqui os dados reportados são: somas cumulativas (calculadas a partir de todos os dados entre a primeira e última visitas no intervalo analisado) + +tt20=Some Duraçãoes de visitas são 'desconhecidas' porque não podem ser sempre calculadas. Esta é a principal razão para isso:
    - A Visita não tinha sido encerrada quando a 'atualização' ocorreu.
    - Visitas iniciadas na última hora (depois de 23:00) do último dia do mês (Uma razão técnica previne #PROG# de calcular as durações destas sessões) + +tt21=Worms (vermes) são visitas automáticas de computadores que na realidade são servidores externos, infectados por um vírus, que tenta realizar hits específicos em seu site para infectá-lo. Na maioria dos casos, estes "vermes" exploram defeitos ("bugs") de servidores. Se o seu sistema não é o alvo sensível do worm, você pode simplesmente ignorar estes hits.
    Existem poucos 'vermes de servidor' no mundo, mas eles costumam ser muito +ativos às vezes. #PROG# é capaz de reconhecer #WormsArray# assinaturas conhecidas de vermes (nimda,code red,...). + +tt201=Erro sem descrição. + +tt202=Requisição foi entendida pelo servidor, mas será processada depois. + +tt204=O servidor processou a requisição, mas não há documento a ser enviado. + +tt206=Conteúdo parcial. + +tt301=O documento requisitado foi movido e está agora em outro endereço fornecido como resposta. + +tt302=Erro sem descrição. + +tt400=erro de sintaxe, o servidor não entendeu a requisição. + +tt401=Tentou alcançar uma URL em que um par usuário/senha foi requisitado.
    Um grande número neste item pode significar que alguém (como um hacker) está tentando quebrar, ou entrar em seu site (esperando entrar em uma área segura tentando diferentes pares de usuários/senhas, por exemplo). + +tt403=Tentou alcançar uma URL não configurada como acessível, mesmo com um par userio/senha (por exemplo, uma URL com um diretório não definido como "navegável".). + +tt404=Tentou alcançar uma URL inexistente. Este erro freqüentemente significa que há um link inválido em algum ponto de seu site ou que um visitante errou a digitaço de uma URL. + +tt408=O servidor levou muito tempo para responder a requisição. Este erro freqüentemente indica ou um script CGI lento que o servidor teve que interromper ou um servidor Web extremamente congestionado. + +tt500=Erro interno. Este erro é freqüentemente causado por um programa CGI que terminou de forma anormal (por exemplo um coredump). + +tt501=Ação requisitada desconhecida. + +tt502=Código retornado pelo servidor HTTP que trabalha como proxy ou gateway quando um servidor real algo não respondeu com sucesso à requisição do cliente. + +tt503=Erro interno do servidor. + +tt504=Tempo esgotado no Gateway. + +tt505=Versão de HTTP Não Suportada. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ca.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ca.txt index 0c6c9734f..f1eed0eeb 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ca.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ca.txt @@ -1,68 +1,61 @@ -
    -Es considera una nova visita per cada nou visitant que consulta una pgina i que hagi accedit al lloc en els ltims #VisitTimeOut# mins.. -
    -
    -Nombre de clients (adreces IP) que entren a un lloc (i que com a mnim visiten una pgina).
    -Aquesta xifra reflecteix el nombre de persones fsiques diferents que han accedit al lloc en un dia. -
    -
    -Nombre de vegades que una pgina del lloc ha estat visualitzada (La suma de tots els visitants inclouen visites mltiples).
    -Aquest comptador es distingeix de "hits" perqu noms conta les pgines HTML, i no pas els grfics o altres arxius o fitxers. -
    -
    -El nombre de vegades que una pgina, imatge, arxiu o fitxer d'un lloc s visualitzat o descarregat per visitant.
    -Aquest comptador serveix de referncia, per el comptador de "pgines" representa una dada mercadotcnica generalment ms til, i per tant, ms recomanada. -
    -
    -El nombre de kilo bytes descagarregats pels visitants del lloc.
    -Es refereix al volum de dades descarregades per totes les pgines, imatges i arxius o fitxers mesurats en bytes. -
    -
    -El programa #PROG# s capa de reconixer una visita a un lloc desprs de cadascuna de les cerques des de qualsevol dels #SearchEnginesArray# motors de cerca i directoris Internet ms populars (Yahoo, Altavista, Lycos, Google, Terra, etc...). -
    -
    -Llista de pgines de llocs externs utilitzades para accedir o enllaar-se amb el seu lloc (Noms les #MaxNbOfRefererShown# pgines ms utilitzades es troben numerades). -Els enllaos emprats pels motors de cerca o directoris sn exclosos perqu ja han estat comptabilitzats a l'anterior apartat. -
    -
    -Aquesta taula mostra la llista de les paraules clau ms utilitzades en els motors de cerca i directoris Internet per trobar el seu lloc. -(El programa #PROG# reconeix paraules claus util.litzades en els #SearchEnginesArray# motors de cerca ms populars, com Yahoo, Altavista, Lycos, Google, Voila, Terra etc...). -
    -
    -Els Robots son visitants automtics que escanejan o viatgen pel seu lloc per a indexar-lo, o jerarquitzar-lo, per tal de recollir estadstiques de llocs Web, o per verificar si el seu lloc es troba connectat a la Xarxa.
    -El programa #PROG# reconeix fins a #RobotArray# robots. -
    -
    -Els temps relacionats amb les estadstiques estan basats en temps de servidor. -
    -
    -Aqu, les dates reportades son: valors medis (calculat desde totes les dates entre les primeres y les ultimes visites en la franja analitzada) -
    -
    -Aqu, les dates reportades son: sumes acumulatives (calculat desde totes les dates entre les primeres y les ultimes visites en la franja analitzada) -
    -
    -Algunes Duracions de les visites son 'desconegudes' perqu no poden ser calculades sempre. La ra principal d'ax es:
    -- La visita no va acab quan es va fer 'l'actualizaci'.
    -- La visita va comenar en la hora anterior (desprs de les 23:00) del passat dia de un mes (la ra tcnica de prevenir a #PROG# de la duraci calculada de tales sessions) -
    - -
    Error sense descripci.
    -
    La petici ha estat computada per el servidor la processar ms tard.
    -
    El servidor ha processat la petici per no existeixen documents per enviar.
    -
    Contingut parcial.
    -
    El document sollicitat ha estat reubicat i es troba en una URL proporcionada en la mateixa resposta.
    -
    Error sense descripci.
    -
    Error de sintaxis, el servidor no ha ents la seva petici.
    -
    Nombre d'intents per accedir a una URL que exigeix una combinaci usuari/contrasenya que ha estat invlida..
    Un nombre d'intents molt elevat pot suggerir la possibilitat que un hacker (o pirata) ha intentat entrar a una zona restringida del lloc (p.e., intentant mltiples combinacions de usuari/contrasenya).
    -
    Nombre d'intents per accedir a una URL configurada per a no ser accessible ni amb una combinaci usuari/contrasenya (p.e., una URL prviament definida com a "no navegable").
    -
    Nombre d'intents per accedir a una URL inexistent. Sovint, aquests es refereixen a un enlla (link) no vlid o a un error mecanogrfic quan el visitant tecleja una URL errnia.
    -
    El servidor ha trigat massa temps a respondre a una petici. Sovint, s degut a un programa CGI molt lent, el qual ha estat abandonat pel servidor, o b per un servidor molt saturat.
    -
    Error intern. Aquest error generalment s provocat per una terminaci anormal o prematura d'un programa CGI (p.e., un CGI corromput o malms).
    -
    Petici desconeguda pel servidor.
    -
    Codi retornat per un servidor de protocol HTTP que funciona com a proxy o pont (gateway) quan el servidor objectiu no funciona o no interpreta correctament la petici del client (o visitant).
    -
    Error intern del servidor.
    -
    Passarella fora de lnia.
    -
    Versi de protocol HTTP no suportada.
    \ No newline at end of file +tt1=Es considera una nova visita per cada nou visitant que consulta una pgina i que hagi accedit al lloc en els ltims #VisitTimeOut# mins.. + +tt2=Nombre de clients (adreces IP) que entren a un lloc (i que com a mnim visiten una pgina).
    Aquesta xifra reflecteix el nombre de persones fsiques diferents que han accedit al lloc en un dia. + +tt3=Nombre de vegades que una pgina del lloc ha estat visualitzada (La suma de tots els visitants inclouen visites mltiples).
    Aquest comptador es distingeix de "hits" perqu noms conta les pgines HTML, i no pas els grfics o altres arxius o fitxers. + +tt4=El nombre de vegades que una pgina, imatge, arxiu o fitxer d'un lloc s visualitzat o descarregat per visitant.
    Aquest comptador serveix de referncia, per el comptador de "pgines" representa una dada mercadotcnica generalment ms til, i per tant, ms recomanada. + +tt5=El nombre de kilo bytes descagarregats pels visitants del lloc.
    Es refereix al volum de dades descarregades per totes les pgines, imatges i arxius o fitxers mesurats en bytes. + +tt13=El programa #PROG# s capa de reconixer una visita a un lloc desprs de cadascuna de les cerques des de qualsevol dels #SearchEnginesArray# motors de cerca i directoris Internet ms populars (Yahoo, Altavista, Lycos, Google, Terra, etc...). + +tt14=Llista de pgines de llocs externs utilitzades para accedir o enllaar-se amb el seu lloc (Noms les #MaxNbOfRefererShown# pgines ms utilitzades es troben numerades). Els enllaos emprats pels motors de cerca o directoris sn exclosos perqu ja han estat comptabilitzats a l'anterior apartat. + +tt15=Aquesta taula mostra la llista de les paraules clau ms utilitzades en els motors de cerca i directoris Internet per trobar el seu lloc. (El programa #PROG# reconeix paraules claus util.litzades en els #SearchEnginesArray# motors de cerca ms populars, com Yahoo, Altavista, Lycos, Google, Voila, Terra etc...). + +tt16=Els Robots son visitants automtics que escanejan o viatgen pel seu lloc per a indexar-lo, o jerarquitzar-lo, per tal de recollir estadstiques de llocs Web, o per verificar si el seu lloc es troba connectat a la Xarxa.
    El programa #PROG# reconeix fins a #RobotArray# robots. + +tt17=Els temps relacionats amb les estadstiques estan basats en temps de servidor. + +tt18=Aqu, les dates reportades son: valors medis (calculat desde totes les dates entre les primeres y les ultimes visites en la franja analitzada) + +tt19=Aqu, les dates reportades son: sumes acumulatives (calculat desde totes les dates entre les primeres y les ultimes visites en la franja analitzada) + +tt20=Algunes Duracions de les visites son 'desconegudes' perqu no poden ser calculades sempre. La ra principal d'ax es:
    - La visita no va acab quan es va fer 'l'actualizaci'.
    - La visita va comenar en la hora anterior (desprs de les 23:00) del passat dia de un mes (la ra tcnica de prevenir a #PROG# de la duraci calculada de tales sessions) + +tt201= Error sense descripci. + +tt202= La petici ha estat computada per el servidor la processar ms tard. + +tt204= El servidor ha processat la petici per no existeixen documents per enviar. + +tt206= Contingut parcial. + +tt301= El document sollicitat ha estat reubicat i es troba en una URL proporcionada en la mateixa resposta. + +tt302= Error sense descripci. + +tt400= Error de sintaxis, el servidor no ha ents la seva petici. + +tt401= Nombre d'intents per accedir a una URL que exigeix una combinaci usuari/contrasenya que ha estat invlida..
    Un nombre d'intents molt elevat pot suggerir la possibilitat que un hacker (o pirata) ha intentat entrar a una zona restringida del lloc (p.e., intentant mltiples combinacions de usuari/contrasenya). + +tt403= Nombre d'intents per accedir a una URL configurada per a no ser accessible ni amb una combinaci usuari/contrasenya (p.e., una URL prviament definida com a "no navegable"). + +tt404= Nombre d'intents per accedir a una URL inexistent. Sovint, aquests es refereixen a un enlla (link) no vlid o a un error mecanogrfic quan el visitant tecleja una URL errnia. + +tt408= El servidor ha trigat massa temps a respondre a una petici. Sovint, s degut a un programa CGI molt lent, el qual ha estat abandonat pel servidor, o b per un servidor molt saturat. + +tt500= Error intern. Aquest error generalment s provocat per una terminaci anormal o prematura d'un programa CGI (p.e., un CGI corromput o malms). + +tt501= Petici desconeguda pel servidor. + +tt502= Codi retornat per un servidor de protocol HTTP que funciona com a proxy o pont (gateway) quan el servidor objectiu no funciona o no interpreta correctament la petici del client (o visitant). + +tt503= Error intern del servidor. + +tt504= Passarella fora de lnia. + +tt505= Versi de protocol HTTP no suportada. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-cn.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-cn.txt index ad75c9bce..50eb7d882 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-cn.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-cn.txt @@ -1,49 +1,52 @@ -
    -ֶΪιվ˴Σַͬվʱ#VisitTimeOut#ӲŻټ¼һΡ -
    -
    -ֶΪιվԴӲͬļIPվĸվ -
    -
    -ֶΪвιвιҳʵֻܴ¼ҳ(.htmlͼƬCSSļ)ķʴ -
    -
    -ֶΪȡܴҳļͼƬļӰļȡ
    -Щݽοҳ Page Viewҵ -
    -
    -ֶΪļݵҳļͼƬļӰļȡ -
    -
    -ֶΪ¼ʹߴЩѰվվ#PROG# Զʹõ#SearchEnginesArray#棬(Yahoo! Google...) -
    -
    -ʾվҳվҳб -ϵͳгϳǰ#MaxNbOfRefererShown#ҳַ -
    -
    -ʾʹѰվнϳʹõĹؼվϵͳ¼ʹõ#SearchEnginesArray#Ѱվؼʡ -
    -
    -ѰվĻ(Robots)ԶѰվڵݡ
    -#PROG#¼ϳʹõ#RobotArray#Ѱվļ¼ -
    - -
    ûй
    -
    ҳ˽ʹߵ
    -
    ҳĴʹߵ󣬵ȴûļͳ
    -
    ҳݶȡȫ
    -
    ѰҳѾƵطѾѰ
    -
    ҳԭҲѾڱĵطҵ
    -
    ﷨ҳ˽ʹߵ
    -
    ҳַ
    -
    δҳַ
    -
    ڵҳַ
    -
    ҳ̫ʱ䴦
    -
    ڲһ CGI
    -
    ˽
    -
    طҳûгɹظͻ
    -
    ڲ
    -
    ͨѶʱ
    -
    HTTP İ汾û֧
    +tt1=ֶΪιվ˴Σַͬվʱ#VisitTimeOut#ӲŻټ¼һΡ + +tt2=ֶΪιվԴӲͬļIPվĸվ + +tt3=ֶΪвιвιҳʵֻܴ¼ҳ(.htmlͼƬCSSļ)ķʴ + +tt4=ֶΪȡܴҳļͼƬļӰļȡ
    Щݽοҳ Page Viewҵ + +tt5=ֶΪļݵҳļͼƬļӰļȡ + +tt13=ֶΪ¼ʹߴЩѰվվ#PROG# Զʹõ#SearchEnginesArray#棬(Yahoo! Google...) + +tt14=ʾվҳվҳб ϵͳгϳǰ#MaxNbOfRefererShown#ҳַ + +tt15=ʾʹѰվнϳʹõĹؼվϵͳ¼ʹõ#SearchEnginesArray#Ѱվؼʡ + +tt16=ѰվĻ(Robots)ԶѰվڵݡ
    #PROG#¼ϳʹõ#RobotArray#Ѱվļ¼ + +tt201= ûй + +tt202= ҳ˽ʹߵ + +tt204= ҳĴʹߵ󣬵ȴûļͳ + +tt206= ҳݶȡȫ + +tt301= ѰҳѾƵطѾѰ + +tt302= ҳԭҲѾڱĵطҵ + +tt400= ﷨ҳ˽ʹߵ + +tt401= ҳַ + +tt403= δҳַ + +tt404= ڵҳַ + +tt408= ҳ̫ʱ䴦 + +tt500= ڲһ CGI + +tt501= ˽ + +tt502= طҳûгɹظͻ + +tt503= ڲ + +tt504= ͨѶʱ + +tt505= HTTP İ汾û֧ diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-cz.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-cz.txt index 1bf378fa1..c23508421 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-cz.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-cz.txt @@ -1,75 +1,63 @@ -
    -Za novou návštěvu se považuje každý přístup návštěvníka, který nebyl připojen na serveru v průběhu předchozích #VisitTimeOut# minut. -
    -
    -Počet počítačů (IP adres), které se připojily na server (a stáhly alespoň jednu stránku).
    -To zhruba odpovídá počtu různých osob, které navštívily stránky. -
    -
    -Celkový počet zhlédnutí jednotlivých stránek (součet za všechny návštěvy všech návštěvníků).
    -Toto číslo se liší od „hitů“ tím, že sem jsou započítávány pouze stažení HTML stránek, a nikoli obrázků a jiných souborů. -
    -
    -Celkový počet zhlédnutí nebo stažení jednotlivých stránek, obrázků, či souborů.
    -Tento údaj je udáván spíše pro zajímavost, neboť počet zhlédnutých „stránek“ má obecně větší vypovídací hodnotu pro marketingové účely. -
    -
    -Celkový objem dat přenesených při návštěvách vašich stránek.
    -Tento údaj zahrnuje jak zobrazené stránky, tak stažené obrázky a soubory. -
    -
    -#PROG# umí rozpoznat přístupy na server z #SearchEnginesArray# nejznámějších internetových vyhledávačů a adresářů (např. Yahoo, Altavista, Lycos, Google, Voila). -
    -
    -Seznam externích stránek obsahujících odkazy na vaše stránky, přes které přišli někteří návštěvníci. (Zobrazuje se pouze #MaxNbOfRefererShown# nejčastěji použitých). -Odkazy z internetových vyhledávačů jsou uvedeny v samostatné tabulce, a proto zde nejsou zahrnuty. -
    -
    -Tato tabulka obsahuje nejčastější výrazy a slovní spojení použité ve vyhledávačích a internetových adresářích pro vyhledání těchto stránek. -(#PROG# podporuje #SearchEnginesArray# nejpopulárnějších vyhledávačů a adresářů, jako Yahoo, Altavista, Lycos, Google, Voila a další.)
    -Všimněte si, že celkový počet vyhledání všech výrazů může být vyšší než součet vyhledání slovních spojení, neboť každé víceslovné vyhledávání je započítáno právě jednou do slovních spojení, ale vícenásobně do výrazů (jednou pro každé obsažené slovo). -
    -
    -Roboty jsou automatizovaní počítačoví návštěvníci používaní pro skenování a indexování obsahu World Wide Webu a pro kontrolu, zda jsou jednotlivé stránky stále dostupné.
    -#PROG# dokáže rozpoznat #RobotArray# robotů. -
    -
    -Všechny časové statistiky vycházejí z času na serveru. -
    -
    -Zde zobrazené údaje jsou průměrné hodnoty (počítané ze všech návštěv ve sledovaném období). -
    -
    -Zde zobrazené údaje jsou celkové součty (počítané ze všech návštěv ve sledovaném období). -
    -
    -Některé délky návštěv jsou uvedeny jako „neznámé“, neboť je nelze vždy přesně určit. Hlavními důvody k tomu jsou:
    -• Návštěva nebyla dokončena v okamžiku, kdy probíhala aktualizace statistik. (Délka bude doplněna při následné aktualizaci.)
    -• Návštěva začala v poslední hodině (po 23:00) posledního dne v měsíci. (Z technických důvodů #PROG# nedokáže určit délku takovýchto návštěv.) -
    -
    -Červy jsou počítačové programy napadající počítače na síti, které pak dále využívají pro své další šíření. Ve většině případů se červy snaží využít chyb -v neaktualizovaných komerčních aplikacích. Pokud váš systém není mezi zranitelnými cíly červu, můžete takovou zátěž jednoduše ignorovat.
    -Existuje jen velice málo internetových červů; přesto ale bývají ve své době velice rozšíření. -#PROG# umí rozlišit stopy #WormsArray# známých červů (Nimda, Code Red aj.). -
    - -
    Požadavek byl splněn a nový objekt byl vytvořen.
    -
    Požadavek byl přijat, ale bude zpracován později.
    -
    Server úspěšně zpracoval požadavek, nicméně nebylo třeba vrátit žádný obsah.
    -
    Server na přání klienta vrátil pouze část obsahu.
    -
    Požadovaný dokument byl trvale přemístěn na jiné URI.
    -
    Požadovaný dokument byl dočasně přemístěn na jiné URI.
    -
    Požadavek je syntakticky chybný.
    -
    Neúspěšná autentikace pro URL vyžadující jméno a heslo.
    Vysoký počet těchto chyb značí, že se někdo opakovaně pokoušel uhodnout správné jméno a heslo.
    -
    Požadavek na URL, které nelze zobrazit (např. v URL v rámci adresáře, jehož obsah není určen k prohlížení).
    -
    Požadavek na neexistující URL. Tato chyba zpravidla značí, že se někde vyskytuje neplatný odkaz, anebo uživatel špatně napsal požadované URL.
    -
    Klient neodeslal svůj požadavek serveru ve stanoveném čase (chyba klienta, přetíženého serveru, anebo pomalého CGI skriptu).
    -
    Vnitřní chyba serveru (často způsobena chybným zpracováním skriptu).
    -
    Server nepodporuje funkce potřebné k vyřízení požadavku.
    -
    Chyba vracená serverem HTTP, který funguje jako brána nebo proxy, když cílový server vrací chybovou odpověď na klientův požadavek.
    -
    Služba je momentálně nedostupná z důvodu přetížení, či probíhající údržby serveru.
    -
    Chyba vracená serverem HTTP, který funguje jako brána nebo proxy, když cílový server neodpoví ve stanoveném časovém limitu.
    -
    Nepodporovaná verze protokolu HTTP.
    +tt1=Za novou návštěvu se považuje každý přístup návštěvníka, který nebyl připojen na serveru v průběhu předchozích #VisitTimeOut# minut. + +tt2=Počet počítačů (IP adres), které se připojily na server (a stáhly alespoň jednu stránku).
    To zhruba odpovídá počtu různých osob, které navštívily stránky. + +tt3=Celkový počet zhlédnutí jednotlivých stránek (součet za všechny návštěvy všech návštěvníků).
    Toto číslo se liší od „hitů“ tím, že sem jsou započítávány pouze stažení HTML stránek, a nikoli obrázků a jiných souborů. + +tt4=Celkový počet zhlédnutí nebo stažení jednotlivých stránek, obrázků, či souborů.
    Tento údaj je udáván spíše pro zajímavost, neboť počet zhlédnutých „stránek“ má obecně větší vypovídací hodnotu pro marketingové účely. + +tt5=Celkový objem dat přenesených při návštěvách vašich stránek.
    Tento údaj zahrnuje jak zobrazené stránky, tak stažené obrázky a soubory. + +tt13=#PROG# umí rozpoznat přístupy na server z #SearchEnginesArray# nejznámějších internetových vyhledávačů a adresářů (např. Yahoo, Altavista, Lycos, Google, Voila). + +tt14=Seznam externích stránek obsahujících odkazy na vaše stránky, přes které přišli někteří návštěvníci. (Zobrazuje se pouze #MaxNbOfRefererShown# nejčastěji použitých).Odkazy z internetových vyhledávačů jsou uvedeny v samostatné tabulce, a proto zde nejsou zahrnuty. + +tt15=Tato tabulka obsahuje nejčastější výrazy a slovní spojení použité ve vyhledávačích a internetových adresářích pro vyhledání těchto stránek. (#PROG# podporuje #SearchEnginesArray# nejpopulárnějších vyhledávačů a adresářů, jako Yahoo, Altavista, Lycos, Google, Voila a další.)
    Všimněte si, že celkový počet vyhledání všech výrazů může být vyšší než součet vyhledání slovních spojení, neboť každé víceslovné vyhledávání je započítáno právě jednou do slovních spojení, ale vícenásobně do výrazů (jednou pro každé obsažené slovo). + +tt16=Roboty jsou automatizovaní počítačoví návštěvníci používaní pro skenování a indexování obsahu World Wide Webu a pro kontrolu, zda jsou jednotlivé stránky stále dostupné.
    #PROG# dokáže rozpoznat #RobotArray# robotů. + +tt17=Všechny časové statistiky vycházejí z času na serveru. + +tt18=Zde zobrazené údaje jsou průměrné hodnoty (počítané ze všech návštěv ve sledovaném období). + +tt19=Zde zobrazené údaje jsou celkové součty (počítané ze všech návštěv ve sledovaném období). + +tt20=Některé délky návštěv jsou uvedeny jako „neznámé“, neboť je nelze vždy přesně určit. Hlavními důvody k tomu jsou:
    • Návštěva nebyla dokončena v okamžiku, kdy probíhala aktualizace statistik. (Délka bude doplněna při následné aktualizaci.)
    • Návštěva začala v poslední hodině (po 23:00) posledního dne v měsíci. (Z technických důvodů #PROG# nedokáže určit délku takovýchto návštěv.) + +tt21=Červy jsou počítačové programy napadající počítače na síti, které pak dále využívají pro své další šíření. Ve většině případů se červy snaží využít chyb v neaktualizovaných komerčních aplikacích. Pokud váš systém není mezi zranitelnými cíly červu, můžete takovou zátěž jednoduše ignorovat.
    Existuje jen velice málo internetových červů; přesto ale bývají ve své době velice rozšíření. #PROG# umí rozlišit stopy #WormsArray# známých červů (Nimda, Code Red aj.). + +tt201=Požadavek byl splněn a nový objekt byl vytvořen. + +tt202=Požadavek byl přijat, ale bude zpracován později. + +tt204=Server úspěšně zpracoval požadavek, nicméně nebylo třeba vrátit žádný obsah. + +tt206=Server na přání klienta vrátil pouze část obsahu. + +tt301=Požadovaný dokument byl trvale přemístěn na jiné URI. + +tt302=Požadovaný dokument byl dočasně přemístěn na jiné URI. + +tt400=Požadavek je syntakticky chybný. + +tt401=Neúspěšná autentikace pro URL vyžadující jméno a heslo.
    Vysoký počet těchto chyb značí, že se někdo opakovaně pokoušel uhodnout správné jméno a heslo. + +tt403=Požadavek na URL, které nelze zobrazit (např. v URL v rámci adresáře, jehož obsah není určen k prohlížení). + +tt404=Požadavek na neexistující URL. Tato chyba zpravidla značí, že se někde vyskytuje neplatný odkaz, anebo uživatel špatně napsal požadované URL. + +tt408=Klient neodeslal svůj požadavek serveru ve stanoveném čase (chyba klienta, přetíženého serveru, anebo pomalého CGI skriptu). + +tt500=Vnitřní chyba serveru (často způsobena chybným zpracováním skriptu). + +tt501=Server nepodporuje funkce potřebné k vyřízení požadavku. + +tt502=Chyba vracená serverem HTTP, který funguje jako brána nebo proxy, když cílový server vrací chybovou odpověď na klientův požadavek. + +tt503=Služba je momentálně nedostupná z důvodu přetížení, či probíhající údržby serveru. + +tt504=Chyba vracená serverem HTTP, který funguje jako brána nebo proxy, když cílový server neodpoví ve stanoveném časovém limitu. + +tt505=Nepodporovaná verze protokolu HTTP. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-de.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-de.txt index 8b363eb17..0f566b9ac 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-de.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-de.txt @@ -1,62 +1,58 @@ -
    -Ein neuer Besucher wird definiert als jeder neue Besucher, der eine Seite abgerufen hat und der auf Ihre Web Site in den letzten #VisitTimeOut# min. nicht zugegriffen hat. -
    -
    -Anzahl der Rechner (IP-Adressen), die Ihre Web Site besuchten und mindestens eine Seite aufgerufen haben.
    -Diese Anzahl entspricht der Zahl an unterschiedlichen physikalischen Personen, die Ihre Web Site an irgendeinem Tag besuchten. -
    -
    -Anzahl der insgesamt angezeigten Seiten Ihrer Web Site (Summe aller Zugriffe von allen Besuchern).
    -Diese Zahl unterscheidet sich von den "Zugriffen", da nur HTML Seiten und keine Grafiken oder andere Dateien gezählt werden. -
    -
    -Anzahl der insgesamt angezeigten oder heruntergeladenen Seiten, Grafiken, Dateien Ihrer Web Site.
    -Diese Zahl wird nur als Referenz angegeben, da meistens die Anzahl der angezeigten "Seiten" für Marketingzwecke bevorzugt wird. -
    -
    -Dieser Wert entspricht der Menge an Daten, die aufgrund aller Seiten, Grafiken und Dateien Ihrer Web Site übertragen worden sind.
    -Einheiten sind in Kb, Mb oder Gb (KiloBytes, MegaBytes oder GigaBytes) -
    -
    -#PROG# erkennt jeden Zugriff auf Ihre Web Site aufgrund einer Suche von einer der #SearchEnginesArray# beliebtesten Internet-Suchmaschinen und -Verzeichnisse (wie z.B. Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    -Eine Liste aller externen Seiten, von denen ein Verweis auf Ihre Web Site erfolgte (nur die #MaxNbOfRefererShown# am häufigsten aufgetretenen externen Seiten werden angezeigt). -Verweise aufgrund eines Suchergebnisses einer Suchmaschine werden hier nicht aufgeführt, da diese bereits in der vorherigen Tabellenzeile angegeben worden sind. -
    -
    -Diese Tabelle zeigt die Liste der am häufigsten verwendeten Schlüsselwörter, um Ihre Web Site mit einer Internet-Suchmaschine bzw. -Verzeichnis zu finden. -(#PROG# erkennt die Schlüsselwörter der #SearchEnginesArray# beliebtesten Internet-Suchmaschinen und -Verzeichnisse, wie z.B. Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    -Robots (manchmal auch als Spider bezeichnet) sind automatische Computerbesucher, die von vielen Suchmaschinen eingesetzt werden, um Ihre Web Seite aufzunehmen und auszuwerten.
    -#PROG# ist in der Lage, bis zu #RobotArray# Robots zu erkennen. -
    -
    -Alle zeitbezogenen Statistiken basieren auf der Serverzeit. -
    -
    -Die angezeigten Werte sind Durchschnittswerte (berechnet aus allen Werten zwischen dem ersten und letzten Besuch). -
    -
    -Die angezeigten Werte sind Summenwerte (berechnet aus allen Werten zwischen dem ersten und letzten Besuch). -
    - -
    Für diesen Fehler liegt keine Beschreibung vor.
    -
    Die Anfrage wurde vom Server akzeptiert, aber sie wird erst später verarbeitet.
    -
    Der Server hat die Anfrage verarbeitet, aber es wurde kein Ergebnis übertragen.
    -
    Unvollständiger Inhalt.
    -
    Das angeforderte Dokument wurde verschoben und ist nun unter der angegebenen Adresse erreichbar.
    -
    Die angeforderten Daten wurden vorübergehend zu einem anderen URI verschoben.
    -
    Syntaxfehler, der Server kann die Anfrage nicht verarbeiten.
    -
    Es wurde versucht, auf eine URL zuzugreifen, für die eine Authentifizierung notwendig war.
    Eine hohe Anzahl kann darauf hindeuten, daß jemand (z.B. ein Hacker) vesucht, sich unerlaubten Zugang zu Ihrer Web Site zu verschaffen, indem er z.B. verschiedene Login/Passwort Kombinationen durchprobiert.
    -
    Es wurde versucht, auf eine unerreichbare URL zuzugreifen, für die selbst eine Authentifizierung nicht ausreicht
    (z.B. eine URL innerhalb eines für Browserzugriffe gesperrten Verzeichnisses).
    -
    Es wurde versucht, auf eine ungültige URL zuzugreifen. Dieser Fehler bedeutet meistens, daß es einen
    ungültigen Link irgendwo in Ihrer Web Site gibt oder daß ein Besucher einen Schreibfehler bei einer URL gemacht hat.
    -
    Der Server benötigte zu viel Zeit, um auf eine Anfrage zu reagieren. Dieser Fehler bezieht sich meistens auf ein
    langsam arbeitendes CGI-Skript, welches durch den Server vorzeitig abgebrochen werden mußte, oder einen überlasteten Web Server.
    -
    Interner Fehler. Dieser Fehler wird meist durch ein CGI-Skript verursacht, das z.B. durch einen Programmfehler unerwarteterweise beendet worden ist.
    -
    Unbekannte Art der Anfrage.
    -
    Dieser Fehler wird von einem HTTP-Server gemeldet, der als ein Proxy oder Gateway fungiert, wenn der eigentliche Zielserver auf
    die Anfrage nicht erfolgreich geantwortet hat.
    -
    Interner Serverfehler.
    -
    Gateway Zeitüberschreitung.
    -
    HTTP-Version wird nicht unterstützt.
    \ No newline at end of file +tt1=Ein neuer Besucher wird definiert als jeder neue Besucher, der eine Seite abgerufen hat und der auf Ihre Web Site in den letzten #VisitTimeOut# min. nicht zugegriffen hat. + +tt2=Anzahl der Rechner (IP-Adressen), die Ihre Web Site besuchten und mindestens eine Seite aufgerufen haben.
    Diese Anzahl entspricht der Zahl an unterschiedlichen physikalischen Personen, die Ihre Web Site an irgendeinem Tag besuchten. + +tt3=Anzahl der insgesamt angezeigten Seiten Ihrer Web Site (Summe aller Zugriffe von allen Besuchern).
    Diese Zahl unterscheidet sich von den "Zugriffen", da nur HTML Seiten und keine Grafiken oder andere Dateien gezählt werden. + +tt4=Anzahl der insgesamt angezeigten oder heruntergeladenen Seiten, Grafiken, Dateien Ihrer Web Site.
    Diese Zahl wird nur als Referenz angegeben, da meistens die Anzahl der angezeigten "Seiten" für Marketingzwecke bevorzugt wird. + +tt5=Dieser Wert entspricht der Menge an Daten, die aufgrund aller Seiten, Grafiken und Dateien Ihrer Web Site übertragen worden sind.
    Einheiten sind in Kb, Mb oder Gb (KiloBytes, MegaBytes oder GigaBytes) + +tt13=#PROG# erkennt jeden Zugriff auf Ihre Web Site aufgrund einer Suche von einer der #SearchEnginesArray# beliebtesten Internet-Suchmaschinen und -Verzeichnisse (wie z.B. Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt14=Eine Liste aller externen Seiten, von denen ein Verweis auf Ihre Web Site erfolgte (nur die #MaxNbOfRefererShown# am häufigsten aufgetretenen externen Seiten werden angezeigt). Verweise aufgrund eines Suchergebnisses einer Suchmaschine werden hier nicht aufgeführt, da diese bereits in der vorherigen Tabellenzeile angegeben worden sind. + +tt15=Diese Tabelle zeigt die Liste der am häufigsten verwendeten Schlüsselwörter, um Ihre Web Site mit einer Internet-Suchmaschine bzw. -Verzeichnis zu finden. (#PROG# erkennt die Schlüsselwörter der #SearchEnginesArray# beliebtesten Internet-Suchmaschinen und -Verzeichnisse, wie z.B. Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt16=Robots (manchmal auch als Spider bezeichnet) sind automatische Computerbesucher, die von vielen Suchmaschinen eingesetzt werden, um Ihre Web Seite aufzunehmen und auszuwerten.
    #PROG# ist in der Lage, bis zu #RobotArray# Robots zu erkennen. + +tt17=Alle zeitbezogenen Statistiken basieren auf der Serverzeit. + +tt18=Die angezeigten Werte sind Durchschnittswerte (berechnet aus allen Werten zwischen dem ersten und letzten Besuch). + +tt19=Die angezeigten Werte sind Summenwerte (berechnet aus allen Werten zwischen dem ersten und letzten Besuch). + +tt201=Für diesen Fehler liegt keine Beschreibung vor. + +tt202=Die Anfrage wurde vom Server akzeptiert, aber sie wird erst später verarbeitet. + +tt204=Der Server hat die Anfrage verarbeitet, aber es wurde kein Ergebnis übertragen. + +tt206=Unvollständiger Inhalt. + +tt301=Das angeforderte Dokument wurde verschoben und ist nun unter der angegebenen Adresse erreichbar. + +tt302=Die angeforderten Daten wurden vorübergehend zu einem anderen URI verschoben. + +tt400=Syntaxfehler, der Server kann die Anfrage nicht verarbeiten. + +tt401=Es wurde versucht, auf eine URL zuzugreifen, für die eine Authentifizierung notwendig war.
    Eine hohe Anzahl kann darauf hindeuten, daß jemand (z.B. ein Hacker) vesucht, sich unerlaubten Zugang zu Ihrer Web Site zu verschaffen, indem er z.B. verschiedene Login/Passwort Kombinationen durchprobiert. + +tt403=Es wurde versucht, auf eine unerreichbare URL zuzugreifen, für die selbst eine Authentifizierung nicht ausreicht
    (z.B. eine URL innerhalb eines für Browserzugriffe gesperrten Verzeichnisses). + +tt404=Es wurde versucht, auf eine ungültige URL zuzugreifen. Dieser Fehler bedeutet meistens, daß es einen
    ungültigen Link irgendwo in Ihrer Web Site gibt oder daß ein Besucher einen Schreibfehler bei einer URL gemacht hat. + +tt408=Der Server benötigte zu viel Zeit, um auf eine Anfrage zu reagieren. Dieser Fehler bezieht sich meistens auf ein
    langsam arbeitendes CGI-Skript, welches durch den Server vorzeitig abgebrochen werden mußte, oder einen überlasteten Web Server. + +tt500=Interner Fehler. Dieser Fehler wird meist durch ein CGI-Skript verursacht, das z.B. durch einen Programmfehler unerwarteterweise beendet worden ist. + +tt501=Unbekannte Art der Anfrage. + +tt502=Dieser Fehler wird von einem HTTP-Server gemeldet, der als ein Proxy oder Gateway fungiert, wenn der eigentliche Zielserver auf
    die Anfrage nicht erfolgreich geantwortet hat. + +tt503=Interner Serverfehler. + +tt504=Gateway Zeitüberschreitung. + +tt505=HTTP-Version wird nicht unterstützt. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-dk.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-dk.txt index a389b89c1..ec886a3f8 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-dk.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-dk.txt @@ -1,75 +1,64 @@ -
    -Et nyt besøg defineres som hver ny indkommende besøger, der ser eller browser en side, og ikke har været inde på hjemmesiden i #VisitTimeOut# minutter. -
    -
    -Antal besøgende (IP-adresser), som har besøgt hjemmesiden (og som har fået vist mindst en side).
    -Dette refererer til antallet af forskellige, fysiske personer, der har fået vist siden. -
    -
    -Antal gange en side på hjemmesiden har været vist. (Summen af alle sider for alle besøgende).
    -Sider adskiller sig fra hits, idet det kun er html-sider, men ikke billeder eller andre filer, der tæller. -
    -
    -Antal gange en side, fil eller et billede på hjemmesiden er blevet vist eller hentet af nogen.
    -Hits er kun med som reference, idet det oftest er Sider eller Besøg (eller Unikke besøg), man reelt ønsker statistik for. -
    -
    -Dette er mængden af data hentet (sider, billeder og filer) fra hjemmesiden.
    -Enhederne er KB, MB eller GB (KiloBytes, MegaBytes eller GigaBytes) -
    -
    -#PROG# kan se, hvis en besøgende har fundet hjemmesiden gennem en søgning fra en af de #SearchEnginesArray# mest brugte Internet søgemaskiner eller kataloger (så som Google, Yahoo, Altavista, Lycos, Voila etc.). -
    -
    -En liste med alle eksterne sider, der linker til (og er blevet brugt til at komme ind på) din hjemmeside (kun de #MaxNbOfRefererShown# mest anvendte eksterne sider vises).
    -Links fra søgemaskiner er ikke medregnet, da de er medtaget for sig selv i en separat tabel. -
    -
    -Denne tabel viser de mest benyttede søgesætninger og søgeord, som anvendes for at finde din hjemmeside gennem søgemaskiner og kataloger. -(søgeord fra de #SearchEnginesArray# mest populære søgemaskiner og kataloger genkendes af #PROG#, så som Google, Yahoo, Altavista, Lycos, Voila etc.).
    -Bemærk at det samlede antal søgninger ud fra søgeord kan være større end det samlede antal søgninger ud fra søgesætninger (det reelle antal søgninger), da to søgeord brugt i samme søgning tæller to gange (en gang for hvert ord). -
    -
    -Robotter (også kaldet Spiders) er automatiske computerbesøgende, som anvendes af mange søgemaskiner. De scanner hjemmesider for at indeksere og rangordne dem, samle statistik om hjemmesider og/eller se om din hjemmeside eksisterer endnu.
    -#PROG# genkender op til #RobotArray# søgerobotter. -
    -
    -Al tidsrelateret statistik baseres på servertiden (OBS: ved IIS-servere er klokkeslætsangivelser normalt altid baseret på UTC-tid). -
    -
    -Her vises gennemsnit (beregnet ud fra alle data mellem første og sidste besøg i det analyserede udsnit). -
    -
    -Her vises sammenlagte summer (beregnet ud fra alle data mellem første og sidste besøg i det analyserede udsnit). -
    -
    -Besøgenes længde er undertiden 'ukendt', fordi de ikke altid kan beregnes. Følgende er hovedårsagerne til dette:
    -- Besøget var ikke afsluttet, da 'opdateringen' fandt sted.
    -- Besøget startede den sidste time (efter kl. 23:00) på den sidste dag i måneden (En teknisk årsag forhindrer #PROG# i at beregne varigheden af sådanne besøg). -
    -
    -Orme er automatiske computerbesøgende, der i virkeligheden består af eksterne servere, der er inficeret med en virus, som forsøger at lave et specifikt hit på din server for at inficere den også. -I de fleste tilfælde udnytter sådanne orme huller i kommercielle eller ikke-opdaterede servere. Hvis dit system ikke er defineret som et sårbart system i forhold til ormen, kan du normalt bare ignorere disse hits.
    -Der er kun meget få 'server orme' i verden, men de er meget aktive til tider. -#PROG# er i stand til at genkende #WormsArray# kendte orme-signaturer (Nimda, Code Red osv.). -
    - -
    Ingen beskrivelse af denne fejl.
    -
    Serveren forstod forespørgslen, som udføres senere.
    -
    Serveren har udført forespørgslen, men der er ikke noget dokument at sende.
    -
    Partielt indhold.
    -
    Sider er flyttet og den nye URL er givet i svaret.
    -
    Ingen beskrivelse af denne fejl.
    -
    Syntaksfejl, serveren forstod ikke forespørgslen.
    -
    Der er blevet forespurgt en URL hvor brugernavn/kode var krævet.
    Et højt antal her kan betyde, at nogen (måske en hacker) forsøger at komme ind på dit site (f.eks. ved at prøve forskellige kombinationer af brugernavne/koder).
    -
    Der er blevet forespurgt en URL der er opsat ikke tilgængelig, selv med et korrekt brugernavn/kode (for eksempel en URL i et bibliotek, der er defineret som ikke 'browsable'.).
    -
    Der er blevet forespurgt en ikke eksisterende URL. Denne fejl skyldes ofte, at der er en forkert link på hjemmesiden, eller at en besøgende har tastet en forkert URL.
    -
    Serveren har taget for lang tid om at besvare forespørgslen. Dette skyldes ofte et langsomt cgi-script, eller at serveren er overbelastet.
    -
    Intern fejl. Dette skyldes ofte, at et cgi-script er afsluttet unormalt (med coredump f.eks.).
    -
    Ukendt forespørgsel.
    -
    Kode returneret af en HTTP server, der fungerer som proxy eller gateway, når den rigtige destinationsserver ikke svarer rigtigt på en klientforespørgsel.
    -
    Intern serverfejl.
    -
    Gateway timeout
    -
    HTTP-version understøttes ikke.
    +tt1=Et nyt besøg defineres som hver ny indkommende besøger, der ser eller browser en side, og ikke har været inde på hjemmesiden i #VisitTimeOut# minutter. + +tt2=Antal besøgende (IP-adresser), som har besøgt hjemmesiden (og som har fået vist mindst en side).
    Dette refererer til antallet af forskellige, fysiske personer, der har fået vist siden. + +tt3=Antal gange en side på hjemmesiden har været vist. (Summen af alle sider for alle besøgende).
    Sider adskiller sig fra hits, idet det kun er html-sider, men ikke billeder eller andre filer, der tæller. + +tt4=Antal gange en side, fil eller et billede på hjemmesiden er blevet vist eller hentet af nogen.
    Hits er kun med som reference, idet det oftest er Sider eller Besøg (eller Unikke besøg), man reelt ønsker statistik for. + +tt5=Dette er mængden af data hentet (sider, billeder og filer) fra hjemmesiden.
    Enhederne er KB, MB eller GB (KiloBytes, MegaBytes eller GigaBytes) + +tt13=#PROG# kan se, hvis en besøgende har fundet hjemmesiden gennem en søgning fra en af de #SearchEnginesArray# mest brugte Internet søgemaskiner eller kataloger (så som Google, Yahoo, Altavista, Lycos, Voila etc.). + +tt14=En liste med alle eksterne sider, der linker til (og er blevet brugt til at komme ind på) din hjemmeside (kun de #MaxNbOfRefererShown# mest anvendte eksterne sider vises).
    Links fra søgemaskiner er ikke medregnet, da de er medtaget for sig selv i en separat tabel. + +tt15=Denne tabel viser de mest benyttede søgesætninger og søgeord, som anvendes for at finde din hjemmeside gennem søgemaskiner og kataloger. +(søgeord fra de #SearchEnginesArray# mest populære søgemaskiner og kataloger genkendes af #PROG#, så som Google, Yahoo, Altavista, Lycos, Voila etc.).
    Bemærk at det samlede antal søgninger ud fra søgeord kan være større end det samlede antal søgninger ud fra søgesætninger (det reelle antal søgninger), da to søgeord brugt i samme søgning tæller to gange (en gang for hvert ord). + +tt16=Robotter (også kaldet Spiders) er automatiske computerbesøgende, som anvendes af mange søgemaskiner. De scanner hjemmesider for at indeksere og rangordne dem, samle statistik om hjemmesider og/eller se om din hjemmeside eksisterer endnu.
    #PROG# genkender op til #RobotArray# søgerobotter. + +tt17=Al tidsrelateret statistik baseres på servertiden (OBS: ved IIS-servere er klokkeslætsangivelser normalt altid baseret på UTC-tid). + +tt18=Her vises gennemsnit (beregnet ud fra alle data mellem første og sidste besøg i det analyserede udsnit). + +tt19=Her vises sammenlagte summer (beregnet ud fra alle data mellem første og sidste besøg i det analyserede udsnit). + +tt20=Besøgenes længde er undertiden 'ukendt', fordi de ikke altid kan beregnes. Følgende er hovedårsagerne til dette:
    - Besøget var ikke afsluttet, da 'opdateringen' fandt sted.
    - Besøget startede den sidste time (efter kl. 23:00) på den sidste dag i måneden (En teknisk årsag forhindrer #PROG# i at beregne varigheden af sådanne besøg). + +tt21=Orme er automatiske computerbesøgende, der i virkeligheden består af eksterne servere, der er inficeret med en virus, som forsøger at lave et specifikt hit på din server for at inficere den også. I de fleste tilfælde udnytter sådanne orme huller i kommercielle eller ikke-opdaterede servere. Hvis dit system ikke er defineret som et sårbart system i forhold til ormen, kan du normalt bare ignorere disse hits.
    Der er kun meget få 'server orme' i verden, men de er meget aktive til tider. #PROG# er i stand til at genkende #WormsArray# kendte orme-signaturer (Nimda, Code Red osv.). + +tt201=Ingen beskrivelse af denne fejl. + +tt202=Serveren forstod forespørgslen, som udføres senere. + +tt204=Serveren har udført forespørgslen, men der er ikke noget dokument at sende. + +tt206=Partielt indhold. + +tt301=Sider er flyttet og den nye URL er givet i svaret. + +tt302=Ingen beskrivelse af denne fejl. + +tt400=Syntaksfejl, serveren forstod ikke forespørgslen. + +tt401=Der er blevet forespurgt en URL hvor brugernavn/kode var krævet.
    Et højt antal her kan betyde, at nogen (måske en hacker) forsøger at komme ind på dit site (f.eks. ved at prøve forskellige kombinationer af brugernavne/koder). + +tt403=Der er blevet forespurgt en URL der er opsat ikke tilgængelig, selv med et korrekt brugernavn/kode (for eksempel en URL i et bibliotek, der er defineret som ikke 'browsable'.). + +tt404=Der er blevet forespurgt en ikke eksisterende URL. Denne fejl skyldes ofte, at der er en forkert link på hjemmesiden, eller at en besøgende har tastet en forkert URL. + +tt408=Serveren har taget for lang tid om at besvare forespørgslen. Dette skyldes ofte et langsomt cgi-script, eller at serveren er overbelastet. + +tt500=Intern fejl. Dette skyldes ofte, at et cgi-script er afsluttet unormalt (med coredump f.eks.). + +tt501=Ukendt forespørgsel. + +tt502=Kode returneret af en HTTP server, der fungerer som proxy eller gateway, når den rigtige destinationsserver ikke svarer rigtigt på en klientforespørgsel. + +tt503=Intern serverfejl. + +tt504=Gateway timeout + +tt505=HTTP-version understøttes ikke. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-en.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-en.txt index 9d6c933d3..c618c22be 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-en.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-en.txt @@ -1,76 +1,64 @@ -
    -A new visits is defined as each new incoming visitor (viewing or browsing a page) who was not connected to your site during last #VisitTimeOut# mn. -
    -
    -Number of client hosts (IP address) who came to visit the site (and who viewed at least one page).
    -This data refers to the number of different physical persons who had reached the site. -
    -
    -Number of times a page of the site is viewed (Sum for all visitors for all visits).
    -This piece of data differs from "hits" in that it counts only HTML pages as oppose to images and other files. -
    -
    -Number of times a page, image, file of the site is viewed or downloaded by someone.
    -This piece of data is provided as a reference only, since the number of "pages" viewed is often prefered for marketing purposes. -
    -
    -This piece of information refers to the amount of data downloaded by all pages, images and files within your site.
    -Units are in KB, MB or GB (KiloBytes, MegaBytes or GigaBytes) -
    -
    -#PROG# recognizes each access to your site after a search from the #SearchEnginesArray# most popular Internet Search Engines and Directories (such as Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    -List of all external pages which were used to link (and enter) to your site (Only the #MaxNbOfRefererShown# most often used external pages are shown). -Links used by the results of the search engines are excluded here because they have already been included on the previous line within this table. -
    -
    -This table shows the list of the most frequent keyphrases or keywords used to find your site from Internet Search Engines and Directories. -(Keywords from the #SearchEnginesArray# most popular Search Engines and Directories are recognized by #PROG#, such as Yahoo, Altavista, Lycos, Google, Voila, etc...).
    -Note that total number of searches for keywords might be greater than total number of searches for keyphrases (real number of searches) because when 2 keywords were used on same search, search is counted twice for keywords (once for each word). -
    -
    -Robots (sometimes refer to Spiders) are automatic computer visitors used by many search engines that scan your web site to index it and rank it, collect statistics on Internet Web sites and/or see if your site is still online.
    -#PROG# is able to recognize up to #RobotArray# robots. -
    -
    -All time related statistics are based on server time. -
    -
    -Here, reported data are: average values (calculated from all data between the first and last visit in analyzed range). -
    -
    -Here, reported data are: cumulative sums (calculated from all data between the first and last visit in analyzed range). -
    -
    -Some Visits durations are 'unknown' because they can't always be calculated. This is the major reason for this:
    -- Visit was not finished when 'update' occured.
    -- Visit started the last hour (after 23:00) of the last day of a month (A technical reason prevents #PROG# from calculating duration of such sessions) -
    -
    -Worms are automatic computer visitors that are in fact external servers, infected by a virus, that try -to make particular hits on your server to infect it. In most cases, such worms exploit some bugs of not up to date -or commercial servers. If your system is not the sensitive target of the worm, you can simply ignore those hits.
    -There is very few 'server worms' in the world but they are very active at some times. -#PROG# is able to recognize #WormsArray# known worm's signatures (nimda,code red,...). -
    - -
    No description for this error.
    -
    Request was understood by server but will be processed later.
    -
    Server has processed the request but there is no document to send.
    -
    Partial content.
    -
    Requested document was moved and is now at another address given in answer.
    -
    No description for this error.
    -
    Syntax error, server didn't understand request.
    -
    Tried to reach an URL where a login/password pair was required.
    A high number within this item could mean that someone (such as a hacker) is attempting to crack, or enter into your site (hoping to enter a secured area by trying different login/password pairs, for instance).
    -
    Tried to reach an URL not configured to be reachable, even with an login/password pair (for example, an URL within a directory not defined as "browsable".).
    -
    Tried to reach a non existing URL. This error often means that there is an invalid link somewhere in your site or that a visitor mistyped a certain URL.
    -
    Server has taken too much time to respond to a request. This error frequently involves either a slow CGI script which the server was required to kill or an extremely congested web server.
    -
    Internal error. This error is often caused by a CGI program that had finished abnormally (coredump for example).
    -
    Unknown requested action.
    -
    Code returned by a HTTP server that works as a proxy or gateway when a real, targeted server doesn't answer successfully to the client's request.
    -
    Internal server error.
    -
    Gateway Time-out.
    -
    HTTP Version Not Supported.
    +tt1=A new visits is defined as each new incoming visitor (viewing or browsing a page) who was not connected to your site during last #VisitTimeOut# mn. + +tt2=Number of client hosts (IP address) who came to visit the site (and who viewed at least one page).
    This data refers to the number of different physical persons who had reached the site. + +tt3=Number of times a page of the site is viewed (Sum for all visitors for all visits).
    This piece of data differs from "hits" in that it counts only HTML pages as oppose to images and other files. + +tt4=Number of times a page, image, file of the site is viewed or downloaded by someone.
    This piece of data is provided as a reference only, since the number of "pages" viewed is often prefered for marketing purposes. + +tt5=This piece of information refers to the amount of data downloaded by all pages, images and files within your site.
    Units are in KB, MB or GB (KiloBytes, MegaBytes or GigaBytes) + +tt13=#PROG# recognizes each access to your site after a search from the #SearchEnginesArray# most popular Internet Search Engines and Directories (such as Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt14=List of all external pages which were used to link (and enter) to your site (Only the #MaxNbOfRefererShown# most often used external pages are shown). Links used by the results of the search engines are excluded here because they have already been included on the previous line within this table. + +tt15=This table shows the list of the most frequent keyphrases or keywords used to find your site from Internet Search Engines and Directories. +(Keywords from the #SearchEnginesArray# most popular Search Engines and Directories are recognized by #PROG#, such as Yahoo, Altavista, Lycos, Google, Voila, etc...).
    Note that total number of searches for keywords might be greater than total number of searches for keyphrases (real number of searches) because when 2 keywords were used on same search, search is counted twice for keywords (once for each word). + +tt16=Robots (sometimes refer to Spiders) are automatic computer visitors used by many search engines that scan your web site to index it and rank it, collect statistics on Internet Web sites and/or see if your site is still online.
    #PROG# is able to recognize up to #RobotArray# robots. + +tt17=All time related statistics are based on server time. + +tt18=Here, reported data are: average values (calculated from all data between the first and last visit in analyzed range). + +tt19=Here, reported data are: cumulative sums (calculated from all data between the first and last visit in analyzed range). + +tt20=Some Visits durations are 'unknown' because they can't always be calculated. This is the major reason for this:
    - Visit was not finished when 'update' occured.
    - Visit started the last hour (after 23:00) of the last day of a month (A technical reason prevents #PROG# from calculating duration of such sessions) + +tt21=Worms are automatic computer visitors that are in fact external servers, infected by a virus, that try to make particular hits on your server to infect it. In most cases, such worms exploit some bugs of not up to date or commercial servers. If your system is not the sensitive target of the worm, you can simply ignore those hits.
    There is very few 'server worms' in the world but they are very active at some times. #PROG# is able to recognize #WormsArray# known worm's signatures (nimda,code red,...). + +tt201=No description for this error. + +tt202=Request was understood by server but will be processed later. + +tt204=Server has processed the request but there is no document to send. + +tt206=Partial content. + +tt301=Requested document was moved and is now at another address given in answer. + +tt302=No description for this error. + +tt400=Syntax error, server didn't understand request. + +tt401=Tried to reach an URL where a login/password pair was required.
    A high number within this item could mean that someone (such as a hacker) is attempting to crack, or enter into your site (hoping to enter a secured area by trying different login/password pairs, for instance). + +tt403=Tried to reach an URL not configured to be reachable, even with an login/password pair (for example, an URL within a directory not defined as "browsable".). + +tt404=Tried to reach a non existing URL. This error often means that there is an invalid link somewhere in your site or that a visitor mistyped a certain URL. + +tt408=Server has taken too much time to respond to a request. This error frequently involves either a slow CGI script which the server was required to kill or an extremely congested web server. + +tt500=Internal error. This error is often caused by a CGI program that had finished abnormally (coredump for example). + +tt501=Unknown requested action. + +tt502=Code returned by a HTTP server that works as a proxy or gateway when a real, targeted server doesn't answer successfully to the client's request. + +tt503=Internal server error. + +tt504=Gateway Time-out. + +tt505=HTTP Version Not Supported. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-es.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-es.txt index d4002b8a7..69f46b6bb 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-es.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-es.txt @@ -1,68 +1,61 @@ -
    -Se considera un nueva vista por cada nuevo visitante que consulta una página y que no haya accedido al sitio en los últimos #VisitTimeOut# mins.. -
    -
    -Número de Servidores (direcciones IP) que entran a un sitio (y que por lo menos visitan una página).
    -Esta cifra refleja el número de personas físicas diferentes que hayan accedido al sitio en un día. -
    -
    -Número de ocasiones que una página del sitio ha sido vista (La suma de todos los visitantes incluyendo múltiples visitas).
    -Este contador se distingue de "hits" porque cuenta sólo las páginas HTML y no los gráficos u otros archivos o ficheros. -
    -
    -El número de ocasiones que una página, imagen, archivo o fichero de un sitio es visto o descargado por un visitante.
    -Este contador sirve de referencia, pero el contador de "páginas" representa un dato mercadotécnico generalmente más útil y por lo tanto se recomienda. -
    -
    -El número de kilo bytes descargados por los visitantes del sitio.
    -Se refiere al volumen de datos descargados por todas las páginas, imágenes y archivos o ficheros medidos en kilo bytes. -
    -
    -El programa #PROG# es capaz de reconocer una visita a su sitio luego de cada búsqueda desde cualquiera de los #SearchEnginesArray# motores de búsqueda y directorios Internet más populares (Yahoo, Altavista, Lycos, Google, Terra, etc...). -
    -
    -Lista de páginas de sitios externos utilizadas para acceder o enlazarse con su sitio (Sólo las #MaxNbOfRefererShown# páginas más utilizadas se encuentras enumeradas). -Los enlaces utilizados por los motores de búsqueda o directorios son excluidos porque ya han sido contabilizados en el rubro anterior. -
    -
    -Esta tabla muestra la lista de las palabras clave más utilizadas en los motores de búsqueda y directorios Internet para encontrar su sitio. -(El programa #PROG# reconoce palabras clave usadas en los #SearchEnginesArray# motores de búsqueda más populares, tales como Yahoo, Altavista, Lycos, Google, Voila, Terra etc...). -
    -
    -Los Robots son visitantes automáticos que escanean o viajan por su sitio para indexarlo, o jerarquizarlo, para recopilar estadísticas de sitios Web, o para verificar si su sitio se encuentra conectado a la Red.
    -El programa #PROG# reconoce hasta #RobotArray# robots. -
    -
    -Todos los tiempos relacionados con las estadísticas están basados en tiempos de servidor. -
    -
    -Aquí, las fechas reportadas son: valores medios (calculado desde todos los datos entre las primeras y los ultimas visitas en el rango analizado) -
    -
    -Aquí, las fechas reportadas son: sumas acumulativas (calculado desde todos los datos entre las primeras y los ultimas visitas en el rango analizado) -
    -
    -Algunas Duraciones de las visitas son 'desconocidas' porque no pueden ser calculadas siempre. La razón principal de esto es:
    -- La visita no fue acabada cuando ocurrió la 'actualización'.
    -- La visita comenzó en la hora anterior (después de las 23:00) del pasado día de un mes (la razón técnica de previene a #PROG# de la duración calculada de tales sesiones) -
    - -
    Error sin descripción.
    -
    La solicitud ha sido computada pero el servidor la procesará más tarde.
    -
    El servidor ha procesado la solicitud pero no existen documentos para enviar.
    -
    Contenido parcial.
    -
    El documento solicitado ha sido reubicado y se encuentra en un URL proporcionado en la misma respuesta.
    -
    Error sin descripción.
    -
    Error de sintaxis, el servidor no ha comprendido su solicitud.
    -
    Número de intentos por acceder un URL que exige una combinación usuario/contraseña que ha sido invalida..
    Un número de intentos muy elevado pudiera sugerir la posibilidad de que un hacker (o pirata) ha intentado entrar a una zona restringida del sitio (p.e., intentando múltiples combinaciones de usuario/contraseña).
    -
    Número de intentos por acceder un URL configurado para no ser accesible, aún con una combinación usuario/contraseña (p.e., un URL previamente definido como "no navegable").
    -
    Número de intentos por acceder un URL inexistente. Frecuentemente, éstos se refieren ya sea a un enlace (link) inválido o a un error mecanográfico cuando el visitante tecleó el URL equivocado.
    -
    El servidor ha tardado demasiado tiempo para responder a una solicitud. Frecuentemente se debe ya sea a un programa CGI muy lento, el cual tuvo que ser abandonado por el servidor, o bien por un servidor sobre-saturado.
    -
    Error interno. Este error generalmente es causado por una terminación anormal o prematura de un programa CGI (p.e., un CGI corrompido o dañado).
    -
    Solicitud desconocida por el servidor.
    -
    Código retornado por un servidor de protocolo HTTP el cual funciona como proxy o puente (gateway) cuando el servidor objetivo no funciona o no interpreta adecuadamente la solicitud del cliente (o visitante).
    -
    Error interno del servidor.
    -
    Pasarela fuera de linea.
    -
    Versión de protocolo HTTP no soportada.
    +tt1=Se considera un nueva vista por cada nuevo visitante que consulta una página y que no haya accedido al sitio en los últimos #VisitTimeOut# mins.. + +tt2=Número de Servidores (direcciones IP) que entran a un sitio (y que por lo menos visitan una página).
    Esta cifra refleja el número de personas físicas diferentes que hayan accedido al sitio en un día. + +tt3=Número de ocasiones que una página del sitio ha sido vista (La suma de todos los visitantes incluyendo múltiples visitas).
    Este contador se distingue de "hits" porque cuenta sólo las páginas HTML y no los gráficos u otros archivos o ficheros. + +tt4=El número de ocasiones que una página, imagen, archivo o fichero de un sitio es visto o descargado por un visitante.
    Este contador sirve de referencia, pero el contador de "páginas" representa un dato mercadotécnico generalmente más útil y por lo tanto se recomienda. + +tt5=El número de kilo bytes descargados por los visitantes del sitio.
    Se refiere al volumen de datos descargados por todas las páginas, imágenes y archivos o ficheros medidos en kilo bytes. + +tt13=El programa #PROG# es capaz de reconocer una visita a su sitio luego de cada búsqueda desde cualquiera de los #SearchEnginesArray# motores de búsqueda y directorios Internet más populares (Yahoo, Altavista, Lycos, Google, Terra, etc...). + +tt14=Lista de páginas de sitios externos utilizadas para acceder o enlazarse con su sitio (Sólo las #MaxNbOfRefererShown# páginas más utilizadas se encuentras enumeradas). Los enlaces utilizados por los motores de búsqueda o directorios son excluidos porque ya han sido contabilizados en el rubro anterior. + +tt15=Esta tabla muestra la lista de las palabras clave más utilizadas en los motores de búsqueda y directorios Internet para encontrar su sitio. (El programa #PROG# reconoce palabras clave usadas en los #SearchEnginesArray# motores de búsqueda más populares, tales como Yahoo, Altavista, Lycos, Google, Voila, Terra etc...). + +tt16=Los Robots son visitantes automáticos que escanean o viajan por su sitio para indexarlo, o jerarquizarlo, para recopilar estadísticas de sitios Web, o para verificar si su sitio se encuentra conectado a la Red.
    El programa #PROG# reconoce hasta #RobotArray# robots. + +tt17=Todos los tiempos relacionados con las estadísticas están basados en tiempos de servidor. + +tt18=Aquí, las fechas reportadas son: valores medios (calculado desde todos los datos entre las primeras y los ultimas visitas en el rango analizado) + +tt19=Aquí, las fechas reportadas son: sumas acumulativas (calculado desde todos los datos entre las primeras y los ultimas visitas en el rango analizado) + +tt20=Algunas Duraciones de las visitas son 'desconocidas' porque no pueden ser calculadas siempre. La razón principal de esto es:
    - La visita no fue acabada cuando ocurrió la 'actualización'.
    - La visita comenzó en la hora anterior (después de las 23:00) del pasado día de un mes (la razón técnica de previene a #PROG# de la duración calculada de tales sesiones) + +tt201= Error sin descripción. + +tt202= La solicitud ha sido computada pero el servidor la procesará más tarde. + +tt204= El servidor ha procesado la solicitud pero no existen documentos para enviar. + +tt206= Contenido parcial. + +tt301= El documento solicitado ha sido reubicado y se encuentra en un URL proporcionado en la misma respuesta. + +tt302= Error sin descripción. + +tt400= Error de sintaxis, el servidor no ha comprendido su solicitud. + +tt401= Número de intentos por acceder un URL que exige una combinación usuario/contraseña que ha sido invalida..
    Un número de intentos muy elevado pudiera sugerir la posibilidad de que un hacker (o pirata) ha intentado entrar a una zona restringida del sitio (p.e., intentando múltiples combinaciones de usuario/contraseña). + +tt403= Número de intentos por acceder un URL configurado para no ser accesible, aún con una combinación usuario/contraseña (p.e., un URL previamente definido como "no navegable"). + +tt404= Número de intentos por acceder un URL inexistente. Frecuentemente, éstos se refieren ya sea a un enlace (link) inválido o a un error mecanográfico cuando el visitante tecleó el URL equivocado. + +tt408= El servidor ha tardado demasiado tiempo para responder a una solicitud. Frecuentemente se debe ya sea a un programa CGI muy lento, el cual tuvo que ser abandonado por el servidor, o bien por un servidor sobre-saturado. + +tt500= Error interno. Este error generalmente es causado por una terminación anormal o prematura de un programa CGI (p.e., un CGI corrompido o dañado). + +tt501= Solicitud desconocida por el servidor. + +tt502= Código retornado por un servidor de protocolo HTTP el cual funciona como proxy o puente (gateway) cuando el servidor objetivo no funciona o no interpreta adecuadamente la solicitud del cliente (o visitante). + +tt503= Error interno del servidor. + +tt504= Pasarela fuera de linea. + +tt505= Versión de protocolo HTTP no soportada. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-fi.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-fi.txt index 90839c2b0..6df523596 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-fi.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-fi.txt @@ -1,69 +1,61 @@ -
    -Tss uudeksi vierailuksi on laskettu sivustolle saapunut vierailija (sivuja selannut), joka ei ole ollut yhteydess sivustoon viimeisen #VisitTimeOut# minuutin aikana. -
    -
    -Asiakaskoneiden (IP-osoitteiden) mr, jotka ovat kyneet sivustoilla (ja selanneet ainakin yht sivua).
    -Tm tieto viittaa eri fyysisten henkiliden mrn, jotka ovat kyneet sivustolla. -
    -
    -Nytettyjen sivujen mr. (kaikkien vierailujen aikana nytettyjen sivujen yhteismr).
    -Tm tieto eroaa kohdasta "osumat" siin, ett mukaan lasketaan ainoastaan HTML-sivut, ei kuvia tai muita tiedostoja. -
    -
    -Nytettyjen tai ladattujen sivujen, kuvien ja tiedostojen yhteismr.
    -Tm tieto tarjotaan ainoastaan viitteeksi, koska markkinointitarkoituksissa suositaan yleens nytettyjen "sivujen" mr. -
    -
    -Tm tieto viittaa sivustoltasi sivujen, kuvien ja tiedostojen muodossa ladatun datan mrn.
    -Yksikkn Kt, Mt tai Gt (Kilotavu, Megatavu tai Gigatavu) -
    -
    -#PROG# tunnistaa #SearchEnginesArray# suosituimman hakukoneen (kuten Yahoo, Altavista, Lycos, Google, Voila, jne...) hakutulosten avulla sivustolle lytneet. -
    -
    -Luettelo ulkopuolisista sivuista, joilta lytyy linkki (jota on seurattu) sivustollesi (Nkyviss ainoastaan #MaxNbOfRefererShown# useimmin kytetty ulkopuolista sivua). -Hakukoneiden hakutuloksista lytyvi linkkej ei ole sisllytetty mukaan, koska nm nkyvt jo tmn taulukon edellisell rivill. -
    -
    -Tst taulukosta nhdn luettelo yleisimmist hakulauseista tai hakusanoista, joiden avulla sivustoillesi on lydetty Internetin hakukoneiden ja hakemistojen avulla. -(#PROG# tunnistaa hakusanat #SearchEnginesArray#:sta suosituimmasta hakukoneesta ja hakemistosta, kuten Yahoo, Altavista, Lycos, Google, Voila, jne...).
    -Huomaa, ett hakusanojen kokonaismr voi olla suurempi kuin hakulauseiden (todellinen hakujen mr), koska silloin kun kahta hakusanaa on kytetty samassa haussa, lasketaan tm hakusana-tilastossa kahdesti (jokainen hakusana erikseen). -
    -
    -Robotit (kytetn joskus mys nimityst "Spider") ovat automaattisia tietokonevierailijoita, joita useat hakukoneet kyttvt indeksoidakseen, arvostellakseen ja kertkseen tilastoa sivustoista ja/tai tutkiakseen vielk sivustot ovat saatavilla.
    -#PROG# tunnistaa jopa #RobotArray# robottia. -
    -
    -Kaikki kelloaikoihin liittyvt tilastot perustuvat palvelimen kelloon. -
    -
    -Tss kerrotut tiedot ovat: keskimrisi arvoja (laskettu kaikkien ensimmisen ja viimeisimmn vierailun vlisten tietojen perusteella) -
    -
    -Tss kerrotut tiedot ovat: kumulatiivisia summia (laskettu kaikkien ensimmisen ja viimeisimmn vierailun vlisten tietojen perusteella) -
    -
    -Jotkut Vierailujen kestot ovat 'tuntemattomia', koska niit ei aina voida laskea. Pasiallinen syy tlle on:
    -- Vierailu ei ollut loppunut 'pivityksen' tapahtuessa.
    -- Vierailu alkoi kuukauden viimeisen vuorokauden viimesen tunnin aikana (klo 23:00 jlkeen) (Tekniset syyt estvt laskutoimituksen tllaisessa tapauksessa) -
    - -
    Tlle virheelle ei ole kuvausta.
    -
    Palvelin on ymmrtnyt palvelupyynnn, mutta se ksitelln myhemmin.
    -
    Palvelin on ksitellyt pyynnn, mutta lhetettvksi ei ole mitn tietoa.
    -
    Osittainen sislt.
    -
    Pyydetty tiedosto on siirretty toiseen, vastauksessa kerrottuun osoitteeseen.
    -
    Tlle virheelle ei ole kuvausta.
    -
    Kielioppivirhe. Palvelin ei ymmrtnyt palvelupyynt.
    -
    Pyydetty URL, johon tarvitaan tunnus/salasana -kaksikko.
    Suuri mr nit virheit saattaa tarkoittaa sit, ett joku (kuten hakkeri) yritt murtautua, tai pst sivustoille (toivoen ptyvns suojatulle alueelle kokeilemalla eri tunnus/salasana -pareja, esimerkiksi).
    -
    Tried to reach an URL not configured to be reachable, even with an login/password pair (for example, an URL within a directory not defined as "browsable".).
    -
    Pyydetty URL, jota ei ole olemassa. Tm virhe tarkoittaa usein sit, ett jossakin sivustollasi on virheellinen linkki, tai ett vierailija on kirjoittanut URL:n vrin.
    -
    Server has taken too much time to respond to a request. This error frequently involves either a slow CGI script which the server was required to kill or an extremely congested web server.
    -
    Sisinen virhe. Tm virhe on usein epnormaalisti keskeytyneen CGI-ohjelman aiheuttama (tuloksena esim. coredump).
    -
    Pyydetty toiminto tuntematon.
    -
    Vlityspalvelimena tai yhdyskytvn toimivan HTTP-palvelimen palauttama koodi, kun todellinen kohteena ollut palvelin ei vastannut palvelupyyntn hyvksyttvsti.
    -
    Palvelimen sisinen virhe.
    -
    Yhdyskytvn aikaraja tyttynyt.
    -
    HTTP-versio ei tuettu.
    +tt1=Tss uudeksi vierailuksi on laskettu sivustolle saapunut vierailija (sivuja selannut), joka ei ole ollut yhteydess sivustoon viimeisen #VisitTimeOut# minuutin aikana. + +tt2=Asiakaskoneiden (IP-osoitteiden) mr, jotka ovat kyneet sivustoilla (ja selanneet ainakin yht sivua).
    Tm tieto viittaa eri fyysisten henkiliden mrn, jotka ovat kyneet sivustolla. + +tt3=Nytettyjen sivujen mr. (kaikkien vierailujen aikana nytettyjen sivujen yhteismr).
    Tm tieto eroaa kohdasta "osumat" siin, ett mukaan lasketaan ainoastaan HTML-sivut, ei kuvia tai muita tiedostoja. + +tt4=Nytettyjen tai ladattujen sivujen, kuvien ja tiedostojen yhteismr.
    Tm tieto tarjotaan ainoastaan viitteeksi, koska markkinointitarkoituksissa suositaan yleens nytettyjen "sivujen" mr. + +tt5=Tm tieto viittaa sivustoltasi sivujen, kuvien ja tiedostojen muodossa ladatun datan mrn.
    Yksikkn Kt, Mt tai Gt (Kilotavu, Megatavu tai Gigatavu) + +tt13=#PROG# tunnistaa #SearchEnginesArray# suosituimman hakukoneen (kuten Yahoo, Altavista, Lycos, Google, Voila, jne...) hakutulosten avulla sivustolle lytneet. + +tt14=Luettelo ulkopuolisista sivuista, joilta lytyy linkki (jota on seurattu) sivustollesi (Nkyviss ainoastaan #MaxNbOfRefererShown# useimmin kytetty ulkopuolista sivua). Hakukoneiden hakutuloksista lytyvi linkkej ei ole sisllytetty mukaan, koska nm nkyvt jo tmn taulukon edellisell rivill. + +tt15=Tst taulukosta nhdn luettelo yleisimmist hakulauseista tai hakusanoista, joiden avulla sivustoillesi on lydetty Internetin hakukoneiden ja hakemistojen avulla. (#PROG# tunnistaa hakusanat #SearchEnginesArray#:sta suosituimmasta hakukoneesta ja hakemistosta, kuten Yahoo, Altavista, Lycos, Google, Voila, jne...).
    Huomaa, ett hakusanojen kokonaismr voi olla suurempi kuin hakulauseiden (todellinen hakujen mr), koska silloin kun kahta hakusanaa on kytetty samassa haussa, lasketaan tm hakusana-tilastossa kahdesti (jokainen hakusana erikseen). + +tt16=Robotit (kytetn joskus mys nimityst "Spider") ovat automaattisia tietokonevierailijoita, joita useat hakukoneet kyttvt indeksoidakseen, arvostellakseen ja kertkseen tilastoa sivustoista ja/tai tutkiakseen vielk sivustot ovat saatavilla.
    #PROG# tunnistaa jopa #RobotArray# robottia. + +tt17=Kaikki kelloaikoihin liittyvt tilastot perustuvat palvelimen kelloon. + +tt18=Tss kerrotut tiedot ovat: keskimrisi arvoja (laskettu kaikkien ensimmisen ja viimeisimmn vierailun vlisten tietojen perusteella) + +tt19=Tss kerrotut tiedot ovat: kumulatiivisia summia (laskettu kaikkien ensimmisen ja viimeisimmn vierailun vlisten tietojen perusteella) + +tt20=Jotkut Vierailujen kestot ovat 'tuntemattomia', koska niit ei aina voida laskea. Pasiallinen syy tlle on:
    - Vierailu ei ollut loppunut 'pivityksen' tapahtuessa.
    - Vierailu alkoi kuukauden viimeisen vuorokauden viimesen tunnin aikana (klo 23:00 jlkeen) (Tekniset syyt estvt laskutoimituksen tllaisessa tapauksessa) + +tt201= Tlle virheelle ei ole kuvausta. + +tt202= Palvelin on ymmrtnyt palvelupyynnn, mutta se ksitelln myhemmin. + +tt204= Palvelin on ksitellyt pyynnn, mutta lhetettvksi ei ole mitn tietoa. + +tt206= Osittainen sislt. + +tt301= Pyydetty tiedosto on siirretty toiseen, vastauksessa kerrottuun osoitteeseen. + +tt302= Tlle virheelle ei ole kuvausta. + +tt400= Kielioppivirhe. Palvelin ei ymmrtnyt palvelupyynt. + +tt401= Pyydetty URL, johon tarvitaan tunnus/salasana -kaksikko.
    Suuri mr nit virheit saattaa tarkoittaa sit, ett joku (kuten hakkeri) yritt murtautua, tai pst sivustoille (toivoen ptyvns suojatulle alueelle kokeilemalla eri tunnus/salasana -pareja, esimerkiksi). + +tt403= Tried to reach an URL not configured to be reachable, even with an login/password pair (for example, an URL within a directory not defined as "browsable".). + +tt404= Pyydetty URL, jota ei ole olemassa. Tm virhe tarkoittaa usein sit, ett jossakin sivustollasi on virheellinen linkki, tai ett vierailija on kirjoittanut URL:n vrin. + +tt408= Server has taken too much time to respond to a request. This error frequently involves either a slow CGI script which the server was required to kill or an extremely congested web server. + +tt500= Sisinen virhe. Tm virhe on usein epnormaalisti keskeytyneen CGI-ohjelman aiheuttama (tuloksena esim. coredump). + +tt501= Pyydetty toiminto tuntematon. + +tt502= Vlityspalvelimena tai yhdyskytvn toimivan HTTP-palvelimen palauttama koodi, kun todellinen kohteena ollut palvelin ei vastannut palvelupyyntn hyvksyttvsti. + +tt503= Palvelimen sisinen virhe. + +tt504= Yhdyskytvn aikaraja tyttynyt. + +tt505= HTTP-versio ei tuettu. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-fr.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-fr.txt index 6637f2b16..c7a666b67 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-fr.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-fr.txt @@ -1,77 +1,63 @@ -
    -On considère une nouvelle visite pour chaque arrivée d'un visiteur consultant une page et ne s'étant pas connecté dans les dernières #VisitTimeOut# mn. -
    -
    -Nombre de hotes (adresse IP) utilisés pour accéder au site (et voir au moins une page).
    -Ce chiffre reflète le nombre de personnes physiques différentes ayant un jour accédées au site. -
    -
    -Nombre de fois qu une page du site est vue (Cumul de tout visiteur, toute visite).
    -Ce compteur différe des "hits" car il ne comptabilise que les pages HTML et non les images ou autres fichiers. -
    -
    -Nombre de fois qu une page, image, fichier du site est vu ou téléchargé par un visiteur.
    -Ce compteur est donné à titre indicatif, le compteur "pages" etant préféré. -
    -
    -Nombre d'octets téléchargés lors des visites du site.
    -Il s'agit aussi bien du volume de données du au chargement des pages et images que des fichiers téléchargés. -
    -
    -#PROG# est capable de reconnaitre l'acces au site issu d'une recherche depuis les #SearchEnginesArray# moteurs de recherche Internet les plus connus (Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    -Liste des pages de sites externes contenant un lien suivi pour accéder à ce site (Seules les #MaxNbOfRefererShown# pages externes les plus utilisées sont affichées). -Les liens issus du résultat d'un moteur de recherche connu n'apparaissent pas ici, car comptabilisés à part sur la ligne juste au-dessus. -
    -
    -Ce tableau offre la liste des phrases ou mots clés les plus souvent utilisés pour retrouver et accéder au site depuis -un moteur de recherche Internet (Les recherches depuis #SearchEnginesArray# moteurs de recherche parmi les plus populaires sont reconnues, comme Yahoo, Altavista, Lycos, Google, Voila, etc...).
    -Notez que le nombre total de recherche de mots clés peut être supérieur au nombre total de recherche de phrases clés (nombre réel de recherche) dans la mesure où une recherche est comptée 2 fois (1 pour chaque mot) si 2 mots furent utilisés comme critères. -
    -
    -Les robots sont des automates visiteurs scannant le site dans le but de l'indexer, d'obtenir des statistiques sur les sites Web Internet ou de vérifier sa disponibilié.
    -#PROG# reconnait #RobotArray# robots. -
    -
    -Toutes les statistiques en rapport avec le temps sont basées sur les heures du serveur. -
    -
    -Ici les données rapportées sont des: valeurs moyennes (calculées à partir des données entre la première et dernière visite de la période analysée). -
    -
    -Ici les données rapportées sont des: sommes cumulées (calculées à partir des données entre la première et dernière visite de la période analysée). -
    -
    -Certaines Durée de visites sont 'inconnues' car elles ne peuvent pas toujours etre calculées. En voici les raisons principales:
    -- La visite n'étaient pas terminée lorsque la mise à jour eut lieu (Sera comptée à la prochaine mise à jour).
    -- La visite a commencé la derniere heure (après 23:00) du dernier jour du mois (Un raison technique empêche #PROG# de calculer la durée des visites de telles sessions). -
    -
    -Les Vers (Worms) sont des visiteurs automatiques qui sont en fait des serveurs externes infectés par un virus, -réalisant des hits particuliers sur votre serveur afin de l'infecter à son tour. Dans la plupart des cas, de telles -attacks exploitent des bugs des serveurs commerciaux et non à jour. -Si votre system n'est pas celui indiqué comme cible sensible du vers, vous pouvez ignorer de tel hits.
    -Il existe très peu de 'vers serveur' mais il sont très actifs à certaines période. -#PROG# reconnait #WormsArray# signatures de vers connus (nimda,code red,...). -
    - -
    Contenu partiel renvoyé.
    -
    La requête a été enregistrée par le serveur mais sera exécutée plus tard.
    -
    Le serveur a traité la demande mais il n'existe aucun document à renvoyer.
    -
    Contenu partiel renvoyé.
    -
    Le document réclamé a été déplacé et se trouve maintenant à une autre adresse mentionnée dans la réponse.
    -
    Aucun descriptif pour cette erreur.
    -
    Erreur de syntaxe, le serveur n'a pas compris la requête.
    -
    Tentatives d'accès à une URL nécessitant identification avec un login/mot de passe invalide.
    Un nombre trop élévé peut mettre en évidence une tentative de crackage brute du site (par accès répété de différents logins/mots de passe).
    -
    Tentatives d'accès à une URL non configurée pour etre accessible, même avec une identification (par exemple, une URL d'un répertoire non défini comme étant "listable").
    -
    Tentatives d'accès à une URL inexistante. Il s'agit donc d'un lien invalide sur le site ou d'une faute de frappe d'un visiteur qui a saisie une mauvaise URL directement.
    -
    Le serveur mis un temps trop important pour répondre à la requête. Il peut s'agir d'un script CGI trop lent sur le serveur forcé d'abandonner le traitement ou d'une saturation du site.
    -
    Erreur interne au serveur. Cette erreur est le plus souvant renvoyé lors de l'arrêt anormal d'un script CGI (par exemple suite à un coredump du CGI).
    -
    Le serveur ne prend pas en charge l'action demandée.
    -
    Code renvoyé par un serveur HTTP qui fonctionne comme proxy ou gateway lorsque le serveur réel consulté ne réagit pas avec succès à la demande du client.
    -
    Erreur interne au serveur.
    -
    Gateway Time-out.
    -
    Version HTTP non supporté.
    +tt1=On considère une nouvelle visite pour chaque arrivée d'un visiteur consultant une page et ne s'étant pas connecté dans les dernières #VisitTimeOut# mn. + +tt2=Nombre de hotes (adresse IP) utilisés pour accéder au site (et voir au moins une page).
    Ce chiffre reflète le nombre de personnes physiques différentes ayant un jour accédées au site. + +tt3=Nombre de fois qu une page du site est vue (Cumul de tout visiteur, toute visite).
    Ce compteur différe des "hits" car il ne comptabilise que les pages HTML et non les images ou autres fichiers. + +tt4=Nombre de fois qu une page, image, fichier du site est vu ou téléchargé par un visiteur.
    Ce compteur est donné à titre indicatif, le compteur "pages" etant préféré. + +tt5=Nombre d'octets téléchargés lors des visites du site.
    Il s'agit aussi bien du volume de données du au chargement des pages et images que des fichiers téléchargés. + +tt13=#PROG# est capable de reconnaitre l'acces au site issu d'une recherche depuis les #SearchEnginesArray# moteurs de recherche Internet les plus connus (Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt14=Liste des pages de sites externes contenant un lien suivi pour accéder à ce site (Seules les #MaxNbOfRefererShown# pages externes les plus utilisées sont affichées).Les liens issus du résultat d'un moteur de recherche connu n'apparaissent pas ici, car comptabilisés à part sur la ligne juste au-dessus. + +tt15=Ce tableau offre la liste des phrases ou mots clés les plus souvent utilisés pour retrouver et accéder au site depuis un moteur de recherche Internet (Les recherches depuis #SearchEnginesArray# moteurs de recherche parmi les plus populaires sont reconnues, comme Yahoo, Altavista, Lycos, Google, Voila, etc...).
    Notez que le nombre total de recherche de mots clés peut être supérieur au nombre total de recherche de phrases clés (nombre réel de recherche) dans la mesure où une recherche est comptée 2 fois (1 pour chaque mot) si 2 mots furent utilisés comme critères. + +tt16=Les robots sont des automates scannant le site pour l'indexer, vérifier sa disponibilié, ou obtenir des statistiques sur les sites Web. #PROG# reconnait #RobotArray# robots. + +tt17=Toutes les statistiques en rapport avec le temps sont basées sur les heures du serveur. + +tt18=Ici les données rapportées sont des valeurs moyennes entre la première et dernière visite de la période analysée. + +tt19=Ici les données rapportées sont des sommes cumulées entre la première et la dernière visite de la période analysée. + +tt20=Certaines Durée de visites sont 'inconnues' car elles ne peuvent pas toujours etre calculées. En voici les raisons principales:
    - La visite n'étaient pas terminée lorsque la mise à jour eut lieu (Sera comptée à la prochaine mise à jour).
    - La visite a commencé la derniere heure (après 23:00) du dernier jour du mois (Un raison technique empêche #PROG# de calculer la durée des visites de telles sessions). + +tt21=Les Vers (Worms) sont des visiteurs automatiques qui sont en fait des serveurs externes infectés par un virus,réalisant des hits particuliers sur votre serveur afin de l'infecter à son tour. Dans la plupart des cas, de telles attaques exploitent des bugs des serveurs commerciaux et non à jour. Si votre system n'est pas celui indiqué comme cible sensible du vers, vous pouvez ignorer de tel hits.
    Il existe très peu de 'vers serveur' mais il sont très actifs à certaines période. #PROG# reconnait #WormsArray# signatures de vers connus (nimda,code red,...). + +tt201=Contenu partiel renvoyé. + +tt202=La requête a été enregistrée par le serveur mais sera exécutée plus tard. + +tt204=Le serveur a traité la demande mais il n'existe aucun document à renvoyer. + +tt206=Contenu partiel renvoyé. + +tt301=Le document réclamé a été déplacé et se trouve maintenant à une autre adresse mentionnée dans la réponse. + +tt302=Aucun descriptif pour cette erreur. + +tt400=Erreur de syntaxe, le serveur n'a pas compris la requête. + +tt401=Tentatives d'accès à une URL nécessitant identification avec un login/mot de passe invalide.
    Un nombre trop élévé peut mettre en évidence une tentative de crackage brute du site (par accès répété de différents logins/mots de passe). + +tt403=Tentatives d'accès à une URL non configurée pour etre accessible, même avec une identification (par exemple, une URL d'un répertoire non défini comme étant "listable"). + +tt404=Tentatives d'accès à une URL inexistante. Il s'agit donc d'un lien invalide sur le site ou d'une faute de frappe d'un visiteur qui a saisie une mauvaise URL directement. + +tt408=Le serveur mis un temps trop important pour répondre à la requête. Il peut s'agir d'un script CGI trop lent sur le serveur forcé d'abandonner le traitement ou d'une saturation du site. + +tt500=Erreur interne au serveur. Cette erreur est le plus souvant renvoyé lors de l'arrêt anormal d'un script CGI (par exemple suite à un coredump du CGI). + +tt501=Le serveur ne prend pas en charge l'action demandée. + +tt502=Code renvoyé par un serveur HTTP qui fonctionne comme proxy ou gateway lorsque le serveur réel consulté ne réagit pas avec succès à la demande du client. + +tt503=Erreur interne au serveur. + +tt504=Gateway Time-out. + +tt505=Version HTTP non supporté. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-gl.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-gl.txt index 0d77b0645..4c97112a3 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-gl.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-gl.txt @@ -1,74 +1,63 @@ -
    -Unha nova visita defínese por cada novo visitante entrante (accedendo a unha páxina) que non estivera conectado ó sitio durante os últimos #VisitTimeOut# mins.. -
    -
    -Número de máquinas cliente (enderezos IP) que viñeron a visitar o sitio (e que miraron polo menos unha páxina).
    -Este dato refire o número de diferentes persoas físicas que accederan o sitio. -
    -
    -Número de veces que unha páxina deste sitio é vista (Suma de tódolos visitantes para tódalas visitas).
    -Esta dato difire de "accesos" en que somente conta páxinas HTML e non imaxes e outros ficheiros. -
    -
    -Número de veces que unha páxina, imaxe ou ficheiro do sitio e vista ou descargada por alguén.
    -Este dato provese como referencia somente, dado que o número de "páxinas" vistas -é a miudo preferido para propósitos de mercadotecnia. -
    -
    -Este dato refírese á cantidade de datos descargados de tódalas páxinas, imaxes e ficheiros no sitio.
    -As unidades están en KB, MB ou GB (Kilooctetos, Megaoctetos ou Gigaoctetos) -
    -
    -#PROG# recoñece cada acceso ó sitio feito despois dunha procura dende os #SearchEnginesArray# Procuradores e Directorios mais populares da Interrede (como Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    -Lista de tódalas páxinas externas que foron usadas para enlazar (e entrar) ó sitio (Somente as #MaxNbOfRefererShown# páxinas externas máis frecuentemente usadas son amosadas). -Os enlaces usados polos resultados dos procuradores son excluídos aquí porque xa foron incluídos na liña anterior desta táboa. -
    -
    -Esta táboa amosa a lista de mais frecuentes palabras ou frases clave usadas para atopa-lo sitio dende Procuradores e Directorios da Interrede. (Palabras clave dos #SearchEnginesArray# Procuradores e Directorios mais populares son recoñecidas por #PROG#, como Yahoo, Altavista, Lycos, Google, Voila, etc...).
    -Decátese de que o número total de procuras por palabras clave pode ser maior co número total de procuras por frases clave (número real de procuras) porque cando dúas palabras clave sexan usadas na mesma procura, a procura e contada dúas veces por palabras clave (unha vez por cada palabra). -
    -
    -Os Robots (ás veces refírese a Arañas) son ordenadores automáticos visitantes usados por moitos procuradores que exploran o sitio web para indicalo e clasificalo, recoller estatísticas sobre sitios web da Interrede e/ou mirar se o sitio de vostede está aínda en liña.
    -#PROG# é capaz de recoñecer ata #RobotArray# robots. -
    -
    -Tódalas estadísticas feitas en relación ó tempo están baseadas na hora do servidor. -
    -
    -Aquí, os datos expostos son valores medios (calculados a partir de tódolos datos entre a primeira e última visita no rango analizado) -
    -
    -Aquí, os datos expostos son sumas acumulativas (calculados a partir de tódolos datos entre a primeira e última visita en un rango analizado) -
    -
    -Algunhas Duracións de visitas son 'descoñecidas' porque non sempre poden ser calculadas. As principais razóns disto son:
    -- A visita non rematara cando a 'actualización' ocurríu.
    -- A visita escomenzóu na derradeira hora (despois das 23:00) do derradeiro día dun mes (Unha razón técnica evita que #PROG# calcule a duración de tales sesións) -
    -
    -Os Gusanos son ordenadores automáticos visitantes que son de feito servidores externos, infectados por un virus, que intentan realizar accesos particulares no servidor para infectalo. Na maioría dos casos, ditos gusanos explotan algúns erros de servidores sen actualizar ou comerciais. Se o sistema non é o obxectivo sensible do gusano, pódese sinxelamente ignorar estes accesos.
    -Hai moi poucos 'gusanos de servidor' no mundo pero están moi activos ás veces. #PROG# é capaz de recoñecer #WormsArray# sinaturas de gusanos coñecidos (nimda, code red, ...). -
    -
    Error sen descripción.
    -
    A petición foi comprendida polo servidor pero se procesará máis tarde.
    -
    O servidor procesóu a petición pero non hai documento para enviar.
    -
    Contido parcial.
    -
    O documento pedido foi reubicado e está agora noutro enderezo amosado na resposta.
    -
    Error sen descripción.
    -
    Error de sintaxe, o servidor non comprendéu a petición.
    -
    Intentos de acceder un URL onde un par identificador/contrasinal foi requirido.
    Un número alto neste apartado podería significar que alguén (como un intruso) está intentando romper ou introducirse no sitio (esperando entrar nunha área segura probando diferentes pares identificador/contrasinal, por exemplo).
    -
    Intentos de acceder a un URL non configurado para ser accesible, nin siquera con un par identificador/contrasinal (por exemplo, un URL nun directorio non definido como "navegable").
    -
    Intentos de acceder un URL non existente. Este erro a miúdo significa que hai un enlace inválido nalgures no sitio ou que un visitante escribíu mal un certo URL
    -
    O servidor tardóu demasiado tempo para responder unha petición. Este erro frecuentemente implica ben un lento guión (script) CGI que o servidor foi requirido para matar ou ben un servidor web extremadamente conxestionado.
    -
    Erro interno. Este erro é a miúdo causado por un programa CGI que finalizóu anormalmente (volcado de núcleo, por exemplo).
    -
    Acción requirida descoñecida
    -
    Código retornado por un servidor HTTP que funciona como atallo ou pasarela cando un servidor real destinatario non responde axeitadamente á petición do cliente
    -
    Erro interno do servidor.
    -
    A pasarela non responde.
    -
    Versión de HTTP non soportada.
    +tt1=Unha nova visita defínese por cada novo visitante entrante (accedendo a unha páxina) que non estivera conectado ó sitio durante os últimos #VisitTimeOut# mins.. +tt2=Número de máquinas cliente (enderezos IP) que viñeron a visitar o sitio (e que miraron polo menos unha páxina).
    Este dato refire o número de diferentes persoas físicas que accederan o sitio. +tt3=Número de veces que unha páxina deste sitio é vista (Suma de tódolos visitantes para tódalas visitas).
    Esta dato difire de "accesos" en que somente conta páxinas HTML e non imaxes e outros ficheiros. + +tt4=Número de veces que unha páxina, imaxe ou ficheiro do sitio e vista ou descargada por alguén.
    Este dato provese como referencia somente, dado que o número de "páxinas" vistas é a miudo preferido para propósitos de mercadotecnia. + +tt5=Este dato refírese á cantidade de datos descargados de tódalas páxinas, imaxes e ficheiros no sitio.
    As unidades están en KB, MB ou GB (Kilooctetos, Megaoctetos ou Gigaoctetos) + +tt13=#PROG# recoñece cada acceso ó sitio feito despois dunha procura dende os #SearchEnginesArray# Procuradores e Directorios mais populares da Interrede (como Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt14=Lista de tódalas páxinas externas que foron usadas para enlazar (e entrar) ó sitio (Somente as #MaxNbOfRefererShown# páxinas externas máis frecuentemente usadas son amosadas). Os enlaces usados polos resultados dos procuradores son excluídos aquí porque xa foron incluídos na liña anterior desta táboa. + +tt15=Esta táboa amosa a lista de mais frecuentes palabras ou frases clave usadas para atopa-lo sitio dende Procuradores e Directorios da Interrede. (Palabras clave dos #SearchEnginesArray# Procuradores e Directorios mais populares son recoñecidas por #PROG#, como Yahoo, Altavista, Lycos, Google, Voila, etc...).
    Decátese de que o número total de procuras por palabras clave pode ser maior co número total de procuras por frases clave (número real de procuras) porque cando dúas palabras clave sexan usadas na mesma procura, a procura e contada dúas veces por palabras clave (unha vez por cada palabra). + +tt16=Os Robots (ás veces refírese a Arañas) son ordenadores automáticos visitantes usados por moitos procuradores que exploran o sitio web para indicalo e clasificalo, recoller estatísticas sobre sitios web da Interrede e/ou mirar se o sitio de vostede está aínda en liña.
    #PROG# é capaz de recoñecer ata #RobotArray# robots. + +tt17=Tódalas estadísticas feitas en relación ó tempo están baseadas na hora do servidor. + +tt18=Aquí, os datos expostos son valores medios (calculados a partir de tódolos datos entre a primeira e última visita no rango analizado) + +tt19=Aquí, os datos expostos son sumas acumulativas (calculados a partir de tódolos datos entre a primeira e última visita en un rango analizado) + +tt20=Algunhas Duracións de visitas son 'descoñecidas' porque non sempre poden ser calculadas. As principais razóns disto son:
    - A visita non rematara cando a 'actualización' ocurríu.
    - A visita escomenzóu na derradeira hora (despois das 23:00) do derradeiro día dun mes (Unha razón técnica evita que #PROG# calcule a duración de tales sesións) + +tt21=Os Gusanos son ordenadores automáticos visitantes que son de feito servidores externos, infectados por un virus, que intentan realizar accesos particulares no servidor para infectalo. Na maioría dos casos, ditos gusanos explotan algúns erros de servidores sen actualizar ou comerciais. Se o sistema non é o obxectivo sensible do gusano, pódese sinxelamente ignorar estes accesos.
    Hai moi poucos 'gusanos de servidor' no mundo pero están moi activos ás veces. #PROG# é capaz de recoñecer #WormsArray# sinaturas de gusanos coñecidos (nimda, code red, ...). + +tt201=Error sen descripción. + +tt202=A petición foi comprendida polo servidor pero se procesará máis tarde. + +tt204=O servidor procesóu a petición pero non hai documento para enviar. + +tt206=Contido parcial. + +tt301=O documento pedido foi reubicado e está agora noutro enderezo amosado na resposta. + +tt302=Error sen descripción. + +tt400=Error de sintaxe, o servidor non comprendéu a petición. + +tt401=Intentos de acceder un URL onde un par identificador/contrasinal foi requirido.
    Un número alto neste apartado podería significar que alguén (como un intruso) está intentando romper ou introducirse no sitio (esperando entrar nunha área segura probando diferentes pares identificador/contrasinal, por exemplo). + +tt403=Intentos de acceder a un URL non configurado para ser accesible, nin siquera con un par identificador/contrasinal (por exemplo, un URL nun directorio non definido como "navegable"). + +tt404=Intentos de acceder un URL non existente. Este erro a miúdo significa que hai un enlace inválido nalgures no sitio ou que un visitante escribíu mal un certo URL + +tt408=O servidor tardóu demasiado tempo para responder unha petición. Este erro frecuentemente implica ben un lento guión (script) CGI que o servidor foi requirido para matar ou ben un servidor web extremadamente conxestionado. + +tt500=Erro interno. Este erro é a miúdo causado por un programa CGI que finalizóu anormalmente (volcado de núcleo, por exemplo). + +tt501=Acción requirida descoñecida + +tt502=Código retornado por un servidor HTTP que funciona como atallo ou pasarela cando un servidor real destinatario non responde axeitadamente á petición do cliente + +tt503=Erro interno do servidor. + +tt504=A pasarela non responde. + +tt505=Versión de HTTP non soportada. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-gr.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-gr.txt index 896881f86..5c11068ba 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-gr.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-gr.txt @@ -1,74 +1,61 @@ +tt1=Ως νέα επίσκεψη ορίζεται η προβολή μιας σελίδας από έναν εισερχόμενος επισκέπτης ο οποιός δεν είχε συνδεθεί στο site κατά τα τελευταία #VisitTimeOut# λεπτά. +tt2=Αριθμός τον πελατών (IP διευθύνσεις) που επισκέφθηκαν το site (και που πρόβαλλαν τουλάχιστον μια σελίδα).
    Τα δεδομένα αυτά αναφέρονται στον αριθμό των διαφορετικών φυσικών προσώπων που είχαν πρόσβαση στο site. -
    -Ως νέα επίσκεψη ορίζεται η προβολή μιας σελίδας από έναν εισερχόμενος επισκέπτης ο οποιός δεν είχε συνδεθεί στο site κατά τα τελευταία #VisitTimeOut# λεπτά. -
    -
    -Αριθμός τον πελατών (IP διευθύνσεις) που επισκέφθηκαν το site (και που πρόβαλλαν τουλάχιστον μια σελίδα).
    -Τα δεδομένα αυτά αναφέρονται στον αριθμό των διαφορετικών φυσικών προσώπων που είχαν πρόσβαση στο site. -
    -
    -Αριθμός προβολών μιας σελίδας του site (Σύνολο για όλους τους επισκέπτες και για όλες τις επισκέψεις).
    -Αυτό το κομμάτι των δεδομένων διαφέρει από τα "χτυπήματα" στο ότι μετράει μόνο τις HTML σελίδες σε αντίθεση με εικόνες και άλλα αρχεία. -
    -
    -Αριθμός προβολών ή λήψεων μιας σελίδας, εικόνας ή αρχείου του site από κάποιον επισκέπτη.
    -Αυτό το κομμάτι των δεδομένων δίνεται ως αναφορά μόνο, αφού ο αριθμός των "σελίδων" που προβάλλονται είναι συνήθως προτιμότερος για λόγους marketing. -
    -
    -Αυτό το κομμάτι των δεδομένων αναφέρεται στην ποσότητα των δεδομένων που λαμβάνονται από όλες τις σελίδες, εικόνες και αρχεία μέσα στο site.
    -Οι μονάδες είναι σε KB, MB ή GB (KiloBytes, MegaBytes ή GigaBytes) -
    -
    -#PROG# αναγνωρίζει κάθε πρόσβαση στο site μετά από μια αναζήτηση από τις #SearchEnginesArray# πιο δημοφιλείς Μηχανές Αναζήτησης και Καταλόγους στο Internet (όπως Yahoo, Altavista, Lycos, Google, Voila, κτλ...). -
    -
    -Λίστα από όλους τους εξωτερικούς συνδέσμους που χρησιμοποιήθηκαν για να συνδέθούν (και να εισαχθούν) στο site (Μόνο οι #MaxNbOfRefererShown# πιο συχνά χρησιμοποιημένες εξωτερικές σελίδες εμφανίζονται). -Οι συνδέσμοι που χρησιμοποιούνται από τα αποτελέσματα των μηχανών αναζήτησης δεν συμπεριλαμβάνονται εδώ αφού έχουν ήδη συμπεριληφθεί στην προηγούμενη γραμμή στον πίνακα αυτό. -
    -
    -Αυτός ο πίνακας εμφανίζει την λίστα από τις πιο συχνά χρησιμοποιούμενες εκφράσεις και λέξεις-κλειδιά για τον εντοπισμό του site από τις Μηχανές Αναζήτησης και τους Καταλόγους στο Internet. -(Λέξεις-κλειδιά από #SearchEnginesArray# πιο δημοφιλείς Μηχανές Αναζήτησης και Καταλόγους στο Internet αναγνωρίζονται από #PROG#, όπως Yahoo, Altavista, Lycos, Google, Voila, κτλ...).
    -Σημειώνεται ότι ο συνολικός αριθμός αναζητήσεων για λέξεις-κλειδιά πιθανόν να είναι μεγαλύτερος από τον συνολικό αριθμό αναζητήσεων για εκφράσεις (πραγματικό αριθμό αναζητήσεων) γιατί όταν 2 λέξεις-κλειδιά χρησιμοποιούνται στην ίδια αναζήτηση, η αναζήτηση μετράει δύο φορές (μία για κάθε λέξη). -
    -
    -Τα Robot (κάποιες φορές αναφέρονται ως Αράχνες (Spiders)) είναι αυτόματοι επισκέπτες που χρησιμοποιούνται από πολλές μηχανές αναζήτησης που σαρώνουν το site σας για να το προσθέσουν στην βάση τους και να βαθμολογήσουν την θέση του, ή που συλλέγουν στατιστικά ή ελέγχουν εάν το site σας είναι ακόμα ενεργό.
    -#PROG# είναι ικανό να αναγνωρίσει έως #RobotArray# robots. -
    -
    -Όλα τα στατιστικά που συσχετίζονται με χρόνο είναι βάση της ώρας του διακομιστή. -
    -
    -Εδώ, τα δεδομένα που αναφέρονται είναι: μέσος όρος τιμών (έχουν υπολογιστεί από όλα τα δεδομένα μεταξύ του πρώτου και του τελευταίου e-mail στο εύρος της ανάλυσης) -
    -
    -Εδώ, τα δεδομένα που αναφέρονται είναι: συγκεντρωτικά σύνολα (έχουν υπολογιστεί από όλα τα δεδομένα μεταξύ του πρώτου και του τελευταίου e-mail στο εύρος της ανάλυσης) -
    -
    -Κάποιες διάρκειες Επισκέψεων είναι 'άγνωστες' αφού δεν μπορούν πάντα να υπολογιστούν. Αυτός είναι ο βασικός λόγος για αυτό:
    -- Η επίσκεψη δεν ολοκληρώθηκε όταν συνέβει ή 'ανανέωση'.
    -- Η επίσκεψη ξεκίνησε την τελευταία ώρα (μετά τις 23:00) της τελευταίας μέρας ενός μήνα (Ένα τεχνικό ζήτημα αποτρέπει το #PROG# από τον υπολογισμό διάρκειας τέτοιων συνεδριών) -
    -
    -Τα Σκουλήκια (Worms) είναι αυτόματοι επισκέπτες που στην πραγματικότητα προήλθαν από εξωτερικούς διακομιστές, που προσβλήθηκαν από ιό, που προσπαθεί να κάνει συγκεκριμένα χτυπήματα-επισκέψεις στον διακομιστή σας ώστε να τον προσβάλλει με τον ιό. Στις περισσότερες των περιπτώσεων, τέτοια σκουλήκια εκμεταλλεύονται bugs από εμπορικούς διακομιστές που δεν έχουν ενημερωθεί με τις τελευταίες αναβαθμίσεις. Εάν το σύστημά σας δεν είναι ο ευαίσθητος στόχος του σκουληκιού, μπορείτε απλά να αγνοήσετε τέτοιες επισκέψεις.
    -Εμφανίζονται ελαχιστα 'σκουλήκια διακομιστών' στον κόσμο αλλά είναι πολύ ενεργά κατά διαστήματα. -#PROG# είναι ικανό να αναγνωρίσει #WormsArray# γνωστές υπογραφές σκουληκιών (nimda,code red,...). -
    - -
    Καμία περιγραφή για αυτό το σφάλμα.
    -
    Η αίτηση αναγνωρίστηκε από τον διακομιστή αλλά θα επεξεργαστεί αργότερα.
    -
    Ο διακομιστής επεξεργάστηκε την αίτηση αλλά δεν υπάρχει κανένα έγγραφο προς αποστολή.
    -
    Μερικό περιεχόμενο.
    -
    Το έγγραφο για το οποίο έγινε η αίτηση μετακινήθηκε και βρίσκεται τώρα σε μια άλλη διεύθυνση που αναφέρεται στην απάντηση.
    -
    Καμία περιγραφή για αυτό το σφάλμα.
    -
    Συντακτικό σφάλμα, ο διακομιστής δεν κατανόησε το αίτημα.
    -
    Προσπάθεια πρόσβασης σε ένα URL όπου χρειάζεται όνομα χρήστη και κωδικός.
    Μια υψηλή τιμή στο στοιχείο αυτό θα μπορούσε να σημαίνει ότι κάποιος (όπως ένας hacker) προσπαθεί να σπάσει, ή να εισέλθει στο site σας (προσπαθώντας να εισέλθει σε μια ασφαλή περιοχή δοκιμάζοντας για παράδειγμα διαφορετικά ονόματα χρήστη/κωδικούς).
    -
    Προσπάθεια πρόσβασης ενός URL που δεν έχει ρυθμιστεί να είναι προσβάσιμο, ακόμα και με ένα όνομα χρήστη/κωδικό (για παράδειγμα, ένα URL μεσα σε ένα φάκελο που δεν έχει οριστεί ως "πλοηγήσιμος".).
    -
    Προσπάθεια πρόσβασης σε ένα URL που δεν υπάρχει. Αυτό το σφάλμα συνήθως σημαίνει ότι υπάρχει κάποιος άκυρος σύνδεσμος κάπου στο site σας ή ότι κάποιος επισκέπτης πληκτρολόγησε λανθασμένα κάποιο URL.
    -
    Ο διακομιστής έκανα υπερβολικά μεγάλο χρονικό διάστημα να αποκριθεί σε μία αίτηση. Αυτό το σφάλμα συνήθως εμπεριέχει είτε κάποιο αργό CGI script που ο διακομιστής χρειάστηκε να τερματίσει είτε υπερβολικά πολύ κίνηση στον διακομιστή.
    -
    Εσωτερικό σφάλμα. Αυτό το σφάλμα συνήθως προκαλείται από ένα πρόγραμμα CGI που τερματίστηκε ανώμαλα (coredump για παράδειγμα).
    -
    Άγνωστο αίτημα ενέργειας.
    -
    Κώδικας που επιστρέφεται από έναν HTTP διακομιστή που λειτουργεί ως μεσολαβητής ή δρομολογητής όταν ένας πραγματικός, διακομιστής προορισμού δεν αποκρίνεται με επιτυχία στο αίτημα του πελάτη.
    -
    Εσωτερικό σφάλμα διακομιστή.
    -
    Τέλος χρόνου διακομιστή πύλης.
    -
    Η HTTP έκδοση δεν υποστηρίζεται.
    +tt3=Αριθμός προβολών μιας σελίδας του site (Σύνολο για όλους τους επισκέπτες και για όλες τις επισκέψεις).
    Αυτό το κομμάτι των δεδομένων διαφέρει από τα "χτυπήματα" στο ότι μετράει μόνο τις HTML σελίδες σε αντίθεση με εικόνες και άλλα αρχεία. + +tt4=Αριθμός προβολών ή λήψεων μιας σελίδας, εικόνας ή αρχείου του site από κάποιον επισκέπτη.
    Αυτό το κομμάτι των δεδομένων δίνεται ως αναφορά μόνο, αφού ο αριθμός των "σελίδων" που προβάλλονται είναι συνήθως προτιμότερος για λόγους marketing. + +tt5=Αυτό το κομμάτι των δεδομένων αναφέρεται στην ποσότητα των δεδομένων που λαμβάνονται από όλες τις σελίδες, εικόνες και αρχεία μέσα στο site.
    Οι μονάδες είναι σε KB, MB ή GB (KiloBytes, MegaBytes ή GigaBytes) + +tt13=#PROG# αναγνωρίζει κάθε πρόσβαση στο site μετά από μια αναζήτηση από τις #SearchEnginesArray# πιο δημοφιλείς Μηχανές Αναζήτησης και Καταλόγους στο Internet (όπως Yahoo, Altavista, Lycos, Google, Voila, κτλ...). + +tt14=Λίστα από όλους τους εξωτερικούς συνδέσμους που χρησιμοποιήθηκαν για να συνδέθούν (και να εισαχθούν) στο site (Μόνο οι #MaxNbOfRefererShown# πιο συχνά χρησιμοποιημένες εξωτερικές σελίδες εμφανίζονται). Οι συνδέσμοι που χρησιμοποιούνται από τα αποτελέσματα των μηχανών αναζήτησης δεν συμπεριλαμβάνονται εδώ αφού έχουν ήδη συμπεριληφθεί στην προηγούμενη γραμμή στον πίνακα αυτό. + +tt15=Αυτός ο πίνακας εμφανίζει την λίστα από τις πιο συχνά χρησιμοποιούμενες εκφράσεις και λέξεις-κλειδιά για τον εντοπισμό του site από τις Μηχανές Αναζήτησης και τους Καταλόγους στο Internet. (Λέξεις-κλειδιά από #SearchEnginesArray# πιο δημοφιλείς Μηχανές Αναζήτησης και Καταλόγους στο Internet αναγνωρίζονται από #PROG#, όπως Yahoo, Altavista, Lycos, Google, Voila, κτλ...).
    Σημειώνεται ότι ο συνολικός αριθμός αναζητήσεων για λέξεις-κλειδιά πιθανόν να είναι μεγαλύτερος από τον συνολικό αριθμό αναζητήσεων για εκφράσεις (πραγματικό αριθμό αναζητήσεων) γιατί όταν 2 λέξεις-κλειδιά χρησιμοποιούνται στην ίδια αναζήτηση, η αναζήτηση μετράει δύο φορές (μία για κάθε λέξη). + +tt16=Τα Robot (κάποιες φορές αναφέρονται ως Αράχνες (Spiders)) είναι αυτόματοι επισκέπτες που χρησιμοποιούνται από πολλές μηχανές αναζήτησης που σαρώνουν το site σας για να το προσθέσουν στην βάση τους και να βαθμολογήσουν την θέση του, ή που συλλέγουν στατιστικά ή ελέγχουν εάν το site σας είναι ακόμα ενεργό.
    #PROG# είναι ικανό να αναγνωρίσει έως #RobotArray# robots. + +tt17=Όλα τα στατιστικά που συσχετίζονται με χρόνο είναι βάση της ώρας του διακομιστή. + +tt18=Εδώ, τα δεδομένα που αναφέρονται είναι: μέσος όρος τιμών (έχουν υπολογιστεί από όλα τα δεδομένα μεταξύ του πρώτου και του τελευταίου e-mail στο εύρος της ανάλυσης) + +tt19=Εδώ, τα δεδομένα που αναφέρονται είναι: συγκεντρωτικά σύνολα (έχουν υπολογιστεί από όλα τα δεδομένα μεταξύ του πρώτου και του τελευταίου e-mail στο εύρος της ανάλυσης) + +tt20=Κάποιες διάρκειες Επισκέψεων είναι 'άγνωστες' αφού δεν μπορούν πάντα να υπολογιστούν. Αυτός είναι ο βασικός λόγος για αυτό:
    - Η επίσκεψη δεν ολοκληρώθηκε όταν συνέβει ή 'ανανέωση'.
    - Η επίσκεψη ξεκίνησε την τελευταία ώρα (μετά τις 23:00) της τελευταίας μέρας ενός μήνα (Ένα τεχνικό ζήτημα αποτρέπει το #PROG# από τον υπολογισμό διάρκειας τέτοιων συνεδριών) + +tt21=Τα Σκουλήκια (Worms) είναι αυτόματοι επισκέπτες που στην πραγματικότητα προήλθαν από εξωτερικούς διακομιστές, που προσβλήθηκαν από ιό, που προσπαθεί να κάνει συγκεκριμένα χτυπήματα-επισκέψεις στον διακομιστή σας ώστε να τον προσβάλλει με τον ιό. Στις περισσότερες των περιπτώσεων, τέτοια σκουλήκια εκμεταλλεύονται bugs από εμπορικούς διακομιστές που δεν έχουν ενημερωθεί με τις τελευταίες αναβαθμίσεις. Εάν το σύστημά σας δεν είναι ο ευαίσθητος στόχος του σκουληκιού, μπορείτε απλά να αγνοήσετε τέτοιες επισκέψεις.
    Εμφανίζονται ελαχιστα 'σκουλήκια διακομιστών' στον κόσμο αλλά είναι πολύ ενεργά κατά διαστήματα. #PROG# είναι ικανό να αναγνωρίσει #WormsArray# γνωστές υπογραφές σκουληκιών (nimda,code red,...). + +tt201=Καμία περιγραφή για αυτό το σφάλμα. + +tt202=Η αίτηση αναγνωρίστηκε από τον διακομιστή αλλά θα επεξεργαστεί αργότερα. + +tt204=Ο διακομιστής επεξεργάστηκε την αίτηση αλλά δεν υπάρχει κανένα έγγραφο προς αποστολή. + +tt206=Μερικό περιεχόμενο. + +tt301=Το έγγραφο για το οποίο έγινε η αίτηση μετακινήθηκε και βρίσκεται τώρα σε μια άλλη διεύθυνση που αναφέρεται στην απάντηση. + +tt302=Καμία περιγραφή για αυτό το σφάλμα. + +tt400=Συντακτικό σφάλμα, ο διακομιστής δεν κατανόησε το αίτημα. + +tt401=Προσπάθεια πρόσβασης σε ένα URL όπου χρειάζεται όνομα χρήστη και κωδικός.
    Μια υψηλή τιμή στο στοιχείο αυτό θα μπορούσε να σημαίνει ότι κάποιος (όπως ένας hacker) προσπαθεί να σπάσει, ή να εισέλθει στο site σας (προσπαθώντας να εισέλθει σε μια ασφαλή περιοχή δοκιμάζοντας για παράδειγμα διαφορετικά ονόματα χρήστη/κωδικούς). + +tt403=Προσπάθεια πρόσβασης ενός URL που δεν έχει ρυθμιστεί να είναι προσβάσιμο, ακόμα και με ένα όνομα χρήστη/κωδικό (για παράδειγμα, ένα URL μεσα σε ένα φάκελο που δεν έχει οριστεί ως "πλοηγήσιμος".). + +tt404=Προσπάθεια πρόσβασης σε ένα URL που δεν υπάρχει. Αυτό το σφάλμα συνήθως σημαίνει ότι υπάρχει κάποιος άκυρος σύνδεσμος κάπου στο site σας ή ότι κάποιος επισκέπτης πληκτρολόγησε λανθασμένα κάποιο URL. + +tt408=Ο διακομιστής έκανα υπερβολικά μεγάλο χρονικό διάστημα να αποκριθεί σε μία αίτηση. Αυτό το σφάλμα συνήθως εμπεριέχει είτε κάποιο αργό CGI script που ο διακομιστής χρειάστηκε να τερματίσει είτε υπερβολικά πολύ κίνηση στον διακομιστή. + +tt500=Εσωτερικό σφάλμα. Αυτό το σφάλμα συνήθως προκαλείται από ένα πρόγραμμα CGI που τερματίστηκε ανώμαλα (coredump για παράδειγμα). + +tt501=Άγνωστο αίτημα ενέργειας. + +tt502=Κώδικας που επιστρέφεται από έναν HTTP διακομιστή που λειτουργεί ως μεσολαβητής ή δρομολογητής όταν ένας πραγματικός, διακομιστής προορισμού δεν αποκρίνεται με επιτυχία στο αίτημα του πελάτη. + +tt503=Εσωτερικό σφάλμα διακομιστή. + +tt504=Τέλος χρόνου διακομιστή πύλης. + +tt505=Η HTTP έκδοση δεν υποστηρίζεται. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-hu.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-hu.txt index 6200ba437..24a3d8537 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-hu.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-hu.txt @@ -1,71 +1,62 @@ -
    -j ltogatsnak szmt minden olyan j berkezett ltogat aki megtekint egy oldalt s a legutols ltogatsa ta eltelt legalbb #VisitTimeOut# perc. -
    -
    -Azon egyedi szmtgpek szma (IP cmek) akik az oldalon jrtak (s legalbb egy oldalt megnztek).
    -Ez az adat a fizikailag klnbz gpekre vonatkozik ahonnan az oldalt ltogattk brmelyik nap. -
    -
    -Az oldal sszestett tallatai (sszes ltogat sszes ltogatsa).
    -Ez annyiban klnbzik a "tallatok"-tl, hogy csak a HTML oldalak tallatait sszesti, a kpeket s egyb fjlokat nem. -
    -
    -Oldalak, kpek, fjlok sszestett tallatai s letltsei.
    -Ez az sszests csak referencia clokat szolgl, hiszen marketing szempontbl az "oldalak tallatai" adat az rdekesebb. -
    -
    -Ez az adat az sszes letlttt adatmennyisget jelzi belertve az sszes oldalt, kpet s fjlt -kilobjt, megabjt illetve gigabjt-ban (Kb, Mb, Gb). -
    -
    -Az #PROG# felismeri, ha az oldalakat a #SearchEnginesArray# legismertebb keresprogramok egyikn keresztl rtk el (pldul Yahoo, Altavista, Lycos, Google, Voila, stb...). -
    -
    -Az olyan kls oldalak listja, amely erre a honlapra mutat, vagy rajtuk keresztl rkezett a krs (Csak a leggyakoribb #MaxNbOfRefererShown# kls oldal). -A kereskn keresztl rkezett tallatok itt nincsenek listzva, azok az elz rszben tallhatak. -
    -
    -Ebben a tblzatban tallhatak a keresprogramokban leggyakrabban hasznlt kulcsszavak s kifejezsek amelyeken keresztl ezen honlapot megtalltk. -(Az #PROG# a #SearchEnginesArray# leggyakoribb keresmotort ismeri. Pldul Yahoo, Altavista, Lycos, Google, Voila, stb...).
    -Az sszes keresett kulcssz szma nagyobb mint a keresett kifejezsek (azaz az igazi keressek szm) mert -2 keresett kulcssz esetn a keress ktszer szmt (egyszer-egyszer mindkt szra). -
    -
    -A robot-ok (spider-nek vagy webcrawler-nek is mondjk) automatikus szmtgp ltogatk melyet szmos keresprogram hasznl arra hogy az oldalt tnzze, index-elje s kategorizlja, statisztikt gyjtsn a weboldalakrl s/vagy megnzze, hogy a honlap mg mindig elrhet-e.
    -Az #PROG# #RobotArray# klnbz robotot ismer fel. -
    -
    -Minden itt feltntetett idnek a szerverid szolglt alapul. -
    -
    -Az itteni adat tlagos rtk (az els s az utols ltogats kztti idszakra) -
    -
    -Az itteni adat sszegzett adat (az els s az utols ltogats kztti idszakra) -
    -
    -Nha a ltogatsi idszak "ismeretlen"-nek ltszik, mert nem mindig kisz -mthat. Ennek f okai:
    -- A ltogats nem fejezdtt be a frisstskor.
    -- A ltogats a hnap utols napjnak utols rjban kezddtt (23:00 utn). -
    - -
    Nincs hibalers.
    -
    A krst felismerte a szerver, de csak a ksbbiekben feldolgozva vgre.
    -
    A szerver feldolgozta a krst, de az nem eredmnyezett kimeneti dokumentumot.
    -
    Rsztartalom.
    -
    A krt dokumentum helye megvltozott, j cm a vlaszban.
    -
    Nincs hibalers.
    -
    Szintaktikai hiba, a szerver nem rtette a krst.
    -
    Jelszvdett tartalom sikertelen elrse.
    Nagyszm ilyen hiba jelentheti azt, hogy valaki (egy hacker) megprbl elrni egy jelszvdett oldalt felhasznli nevek s jelszavak folyamatos prblgatsval.
    -
    Nem tallzhat knyvtr (mg felhasznl azonost s jelsz ismeretben sem) (pldul egy knyvtron belli "tallzsra" nem engedlyezett link).
    -
    Nem ltez oldal (URL). rvnytelen link, mely lehet az oldalon bell, ms kls oldalon, vagy csak a ltogat vtett hibt a bers kzben.
    -
    A szerver tl sokig nem vlaszolt. ltalban lass CGI program vagy nagyon leterhelt szerver esetn fordul el.
    -
    Bels hiba. ltalban CGI program abnormlis futsa utn keletkezik (pl. coredump).
    -
    Ismeretlen krstpus.
    -
    Proxy szerver hibakd, melyet a tvoli szerver sikeres vlasznak hinyban kld a krst kld kliensnek.
    -
    Bels szerverhiba.
    -
    Gateway idtllps.
    -
    Nem tmogatott verzij HTTP krs.
    +tt1=j ltogatsnak szmt minden olyan j berkezett ltogat aki megtekint egy oldalt s a legutols ltogatsa ta eltelt legalbb #VisitTimeOut# perc. + +tt2=Azon egyedi szmtgpek szma (IP cmek) akik az oldalon jrtak (s legalbb egy oldalt megnztek).
    Ez az adat a fizikailag klnbz gpekre vonatkozik ahonnan az oldalt ltogattk brmelyik nap. + +tt3=Az oldal sszestett tallatai (sszes ltogat sszes ltogatsa).
    Ez annyiban klnbzik a "tallatok"-tl, hogy csak a HTML oldalak tallatait sszesti, a kpeket s egyb fjlokat nem. + +tt4=Oldalak, kpek, fjlok sszestett tallatai s letltsei.
    Ez az sszests csak referencia clokat szolgl, hiszen marketing szempontbl az "oldalak tallatai" adat az rdekesebb. + +tt5=Ez az adat az sszes letlttt adatmennyisget jelzi belertve az sszes oldalt, kpet s fjlt kilobjt, megabjt illetve gigabjt-ban (Kb, Mb, Gb). + +tt13=Az #PROG# felismeri, ha az oldalakat a #SearchEnginesArray# legismertebb keresprogramok egyikn keresztl rtk el (pldul Yahoo, Altavista, Lycos, Google, Voila, stb...). + +tt14=Az olyan kls oldalak listja, amely erre a honlapra mutat, vagy rajtuk keresztl rkezett a krs (Csak a leggyakoribb #MaxNbOfRefererShown# kls oldal). A kereskn keresztl rkezett tallatok itt nincsenek listzva, azok az elz rszben tallhatak. + +tt15=Ebben a tblzatban tallhatak a keresprogramokban leggyakrabban hasznlt kulcsszavak s kifejezsek amelyeken keresztl ezen honlapot megtalltk. (Az #PROG# a #SearchEnginesArray# leggyakoribb keresmotort ismeri. Pldul Yahoo, Altavista, Lycos, Google, Voila, stb...).
    Az sszes keresett kulcssz szma nagyobb mint a keresett kifejezsek (azaz az igazi keressek szm) mert 2 keresett kulcssz esetn a keress ktszer szmt (egyszer-egyszer mindkt szra). + +tt16=A robot-ok (spider-nek vagy webcrawler-nek is mondjk) automatikus szmtgp ltogatk melyet szmos keresprogram hasznl arra hogy az oldalt tnzze, index-elje s kategorizlja, statisztikt gyjtsn a weboldalakrl s/vagy megnzze, hogy a honlap mg mindig elrhet-e.
    Az #PROG# #RobotArray# klnbz robotot ismer fel. + +tt17=Minden itt feltntetett idnek a szerverid szolglt alapul. + +tt18=Az itteni adat tlagos rtk (az els s az utols ltogats kztti idszakra) + +tt19=Az itteni adat sszegzett adat (az els s az utols ltogats kztti idszakra) + +tt20=Nha a ltogatsi idszak "ismeretlen"-nek ltszik, mert nem mindig kisz +mthat. Ennek f okai:
    - A ltogats nem fejezdtt be a frisstskor.
    - A ltogats a hnap utols napjnak utols rjban kezddtt (23:00 utn). + +tt201= Nincs hibalers. + +tt202= A krst felismerte a szerver, de csak a ksbbiekben feldolgozva vgre. + +tt204= A szerver feldolgozta a krst, de az nem eredmnyezett kimeneti dokumentumot. + +tt206= Rsztartalom. + +tt301= A krt dokumentum helye megvltozott, j cm a vlaszban. + +tt302= Nincs hibalers. + +tt400= Szintaktikai hiba, a szerver nem rtette a krst. + +tt401= Jelszvdett tartalom sikertelen elrse.
    Nagyszm ilyen hiba jelentheti azt, hogy valaki (egy hacker) megprbl elrni egy jelszvdett oldalt felhasznli nevek s jelszavak folyamatos prblgatsval. + +tt403= Nem tallzhat knyvtr (mg felhasznl azonost s jelsz ismeretben sem) (pldul egy knyvtron belli "tallzsra" nem engedlyezett link). + +tt404= Nem ltez oldal (URL). rvnytelen link, mely lehet az oldalon bell, ms kls oldalon, vagy csak a ltogat vtett hibt a bers kzben. + +tt408= A szerver tl sokig nem vlaszolt. ltalban lass CGI program vagy nagyon leterhelt szerver esetn fordul el. + +tt500= Bels hiba. ltalban CGI program abnormlis futsa utn keletkezik (pl. coredump). + +tt501= Ismeretlen krstpus. + +tt502= Proxy szerver hibakd, melyet a tvoli szerver sikeres vlasznak hinyban kld a krst kld kliensnek. + +tt503= Bels szerverhiba. + +tt504= Gateway idtllps. + +tt505= Nem tmogatott verzij HTTP krs. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-is.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-is.txt index 2505085a0..60a167f85 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-is.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-is.txt @@ -1,74 +1,63 @@ -
    -Ntt innlit er skilgreint sem hver nr gestur (sem skoar su) sem var ekki tengdur vi vefsvi itt sustu #VisitTimeOut# mnturnar -
    -
    -Fjldi vla (IP-vistfanga) sem litu inn vefinn (og sttu a lgmarki eina su.
    -Ggnin gefa til kynna fjlda einstakra gesta sem litu inn suna. -
    -
    -Fjldi skipta sem b>sa essu vefsvi var skou (Samtlur allra gesta fyrir ll innlit).
    -Munurinn essum ggnum og "skrr" liggur v a eingngu eru taldar HTML sur en ekki myndir ea annars konar skrr. -
    -
    -Fjldi skipta sem sa, mynd ea skr vefsvinu var skou ea stt af einhverju(m).
    -essi ggn eru einungis hf me til hlisjnar, ar sem fjldi "sna" sem skoaar voru eru oft talin vera betri markasggn. -
    -
    -essar upplsingar gefa mynd af v gagnamagni sem stt var af vefnum, sum, myndum og skrm.
    -Einingar eru KB, MB ea GB (Klbti, MegaBti ea GgaBti) -
    -
    -#PROG# greinir hvert innlit vefinn eftir leit #SearchEnginesArray# vinslustu leitarvlunum (Yahoo, Altavista, Lycos, Google, Voila, o.s.frv.). -
    -
    -Listi yfir allar tilvsanir utan essa vefsvis sem notaar voru til a vsa til vefsvis ns (Einungis #MaxNbOfRefererShown# oftast notuu tilvsanirnar eru birtar hr). -Links used by the results of the search engines are excluded here because they have already been included on the previous line within this table. -Tilvsunum fr niurstusum leitarvla er sleppt hr ar sem r hafa n egar veri notaar lnunni hr fyrir ofan. -
    -
    -Taflan snir au leitaror og setningar sem oftast hafa veri notu leitarvlum til a finna vefsvi itt. -(Leitaror fr #SearchEnginesArray# algengustu leitarvlunum sem #PROG# ekkir, svo sem Yahoo, Altavista, Lycos, Google, Voila, o.s.frv.).
    -Athugi a heildarfjldi leita me leitarorum gti veri hrri en heildarfjldi leita eftir leitarsetningum (rttur fjldi leita) v a ef notu eru 2 leitaror smu leitinni er leitin talin tvisvar sem oraleit en einu sinni sem setningaleit. -
    -
    -Leitarormar ("robots" og "spiders") eru 'sjlfvirkir gestir' notair af mrgum leitarvlum sem skoa, skrsetja og flokka innihald vefsins, safna tlulegum upplsingum um tilvsanir og/ea hvort vefsvi s enn nettengt.
    -#PROG# ekkir allt a #RobotArray# leitarorma. -
    -
    -ll tmatengd tlfri er bygg klukku netjns. -
    -
    -Ggn essari skrslu eru: mealgildi (reiknu t fr llum ggnum milli fyrsta og sasta innlits greindu tmabili) -
    -
    -Ggn essari skrslu eru: samtlur (reiknu t fr llum ggnum milli fyrsta og sasta innlits greindu tmabili) -
    -
    -Ekki er alltaf hgt a reikna t Lengd innlita. Helstu stur ess eru eftirfarandi:
    -- Innliti var ekki loki egar tlfrin var reiknu t.
    -- Innlit byrjai sasta klukkutma (eftir kl 23:00) slarhrings sasta dags mnaar (Tknileg sta #PROG# hindrar treikning slkra innlita) -
    -
    -Ormar eru 'sjlfvirkir gestir'/b> sem eru raun arir netjnar sem sktir eru af vrusi, sem reyna a framkvma kvenar heimsknir vefjn inn til a skja hann. flestum tilfellum nta slkir ormar sr ryggisholur gmlum vefjnum. Ef kerfi itt er ekki skjanlegt af essum ormi getur hunsa essi innlit.
    -a eru mjg fir 'netjnaormar' til heiminum en eir eru mjg virkir kvenum tmum. -#PROG# getur ekkt #WormsArray# mismunandi orma (Nimda, Code Red...). -
    -
    Engin lsing er til essari villu.
    -
    jnninn skildi beinina en afgreiir hana sar.
    -
    jnninn hefur afgreitt beinina en a vantar skrna sem a senda.
    -
    Einungis hluti skrar afgreiddur.
    -
    Umbein skr hefur veri fr ntt veffang sem sent var me svarinu.
    -
    Engin lsing er til essari villu.
    -
    Stlvilla, jnninn skildi ekki beinina.
    -
    Bei var um vefsl ar sem notandanafns er krafist.
    Ef miki er um etta getur a bent til ess a tilraunir su gerar til a brjtast inn su me mrgum samsetningum af notendanfnum og lykilorum (til a f agang a ggnum sem eru h agangsstringu).
    -
    Bei var um afgreislu vefsl sem ekki a vera agengileg jafnvel tt rtt notendanafn og lykilor hafi veri nota) (Gti veri mappa sem ekki er merkt "vafranleg".).
    -
    Bei var um vefsl sem ekki er til. essi villa kemur oft upp egar tengill vefsu inniheldur villu ea gestur slr vitlausa sl vafrann sinn.
    -
    jnninn hefur teki of langan tma afgreislu beininnar. essi villa gefur oft til kynna hga CGI skriftu sem jnninn neyddist til a drepa ea mjg upptekinn vefjn.
    -
    Innri villa hefur komi upp jni. essi villa kemur oft upp ef CGI forrit hefur loki keyrslu elilegan htt.
    -
    Beini er ekki ekkt.
    -
    Villubo sem skila er af vefjni sem jnar sem vefsel ea gtt egar umbein jnustuvl svarar ekki fyrirspurnum fr gestum.
    -
    Innri villa kom upp jni.
    -
    Samband rofnai vi gtt.
    -
    HTTP tgfa er ekki studd.
    +tt1=Ntt innlit er skilgreint sem hver nr gestur (sem skoar su) sem var ekki tengdur vi vefsvi itt sustu #VisitTimeOut# mnturnar + +tt2=Fjldi vla (
    IP-vistfanga) sem litu inn vefinn (og sttu a lgmarki eina su.
    Ggnin gefa til kynna fjlda einstakra gesta sem litu inn suna. + +tt3=Fjldi skipta sem b>sa essu vefsvi var skou (Samtlur allra gesta fyrir ll innlit).
    Munurinn essum ggnum og "skrr" liggur v a eingngu eru taldar HTML sur en ekki myndir ea annars konar skrr. + +tt4=Fjldi skipta sem sa, mynd ea skr vefsvinu var skou ea stt af einhverju(m).
    essi ggn eru einungis hf me til hlisjnar, ar sem fjldi "sna" sem skoaar voru eru oft talin vera betri markasggn. + +tt5=essar upplsingar gefa mynd af v gagnamagni sem stt var af vefnum, sum, myndum og skrm.
    Einingar eru KB, MB ea GB (Klbti, MegaBti ea GgaBti) + +tt13=#PROG# greinir hvert innlit vefinn eftir leit #SearchEnginesArray# vinslustu leitarvlunum (Yahoo, Altavista, Lycos, Google, Voila, o.s.frv.). + +tt14=Listi yfir allar tilvsanir utan essa vefsvis sem notaar voru til a vsa til vefsvis ns (Einungis #MaxNbOfRefererShown# oftast notuu tilvsanirnar eru birtar hr). Links used by the results of the search engines are excluded here because they have already been included on the previous line within this table. Tilvsunum fr niurstusum leitarvla er sleppt hr ar sem r hafa n egar veri notaar lnunni hr fyrir ofan. + +tt15=Taflan snir au leitaror og setningar sem oftast hafa veri notu leitarvlum til a finna vefsvi itt. (Leitaror fr #SearchEnginesArray# algengustu leitarvlunum sem #PROG# ekkir, svo sem Yahoo, Altavista, Lycos, Google, Voila, o.s.frv.).
    Athugi a heildarfjldi leita me leitarorum gti veri hrri en heildarfjldi leita eftir leitarsetningum (rttur fjldi leita) v a ef notu eru 2 leitaror smu leitinni er leitin talin tvisvar sem oraleit en einu sinni sem setningaleit. + +tt16=Leitarormar ("robots" og "spiders") eru 'sjlfvirkir gestir' notair af mrgum leitarvlum sem skoa, skrsetja og flokka innihald vefsins, safna tlulegum upplsingum um tilvsanir og/ea hvort vefsvi s enn nettengt.
    #PROG# ekkir allt a #RobotArray# leitarorma. + +tt17=ll tmatengd tlfri er bygg klukku netjns. + +tt18=Ggn essari skrslu eru: mealgildi (reiknu t fr llum ggnum milli fyrsta og sasta innlits greindu tmabili) + +tt19=Ggn essari skrslu eru: samtlur (reiknu t fr llum ggnum milli fyrsta og sasta innlits greindu tmabili) + +tt20=Ekki er alltaf hgt a reikna t Lengd innlita. Helstu stur ess eru eftirfarandi:
    - Innliti var ekki loki egar tlfrin var reiknu t.
    - Innlit byrjai sasta klukkutma (eftir kl 23:00) slarhrings sasta dags mnaar (Tknileg sta #PROG# hindrar treikning slkra innlita) + +tt21=Ormar eru 'sjlfvirkir gestir'/b> sem eru raun arir netjnar sem sktir eru af vrusi, sem reyna a framkvma kvenar heimsknir vefjn inn til a skja hann. flestum tilfellum nta slkir ormar sr ryggisholur gmlum vefjnum. Ef kerfi itt er ekki skjanlegt af essum ormi getur hunsa essi innlit.
    a eru mjg fir 'netjnaormar' til heiminum en eir eru mjg virkir kvenum tmum. #PROG# getur ekkt #WormsArray# mismunandi orma (Nimda, Code Red...). + +tt201=Engin lsing er til essari villu. + +tt202=jnninn skildi beinina en afgreiir hana sar. + +tt204=jnninn hefur afgreitt beinina en a vantar skrna sem a senda. + +tt206=Einungis hluti skrar afgreiddur. + +tt301=Umbein skr hefur veri fr ntt veffang sem sent var me svarinu. + +tt302=Engin lsing er til essari villu. + +tt400=Stlvilla, jnninn skildi ekki beinina. + +tt401=Bei var um vefsl ar sem notandanafns er krafist.
    Ef miki er um etta getur a bent til ess a tilraunir su gerar til a brjtast inn su me mrgum samsetningum af notendanfnum og lykilorum (til a f agang a ggnum sem eru h agangsstringu). + +tt403=Bei var um afgreislu vefsl sem ekki a vera agengileg jafnvel tt rtt notendanafn og lykilor hafi veri nota) (Gti veri mappa sem ekki er merkt "vafranleg".). + +tt404=Bei var um vefsl sem ekki er til. essi villa kemur oft upp egar tengill vefsu inniheldur villu ea gestur slr vitlausa sl vafrann sinn. + +tt408=jnninn hefur teki of langan tma afgreislu beininnar. essi villa gefur oft til kynna hga CGI skriftu sem jnninn neyddist til a drepa ea mjg upptekinn vefjn. + +tt500=Innri villa hefur komi upp jni. essi villa kemur oft upp ef CGI forrit hefur loki keyrslu elilegan htt. + +tt501=Beini er ekki ekkt. + +tt502=Villubo sem skila er af vefjni sem jnar sem vefsel ea gtt egar umbein jnustuvl svarar ekki fyrirspurnum fr gestum. + +tt503=Innri villa kom upp jni. + +tt504=Samband rofnai vi gtt. + +tt505=HTTP tgfa er ekki studd. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-it.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-it.txt index b560ce355..7911f23a9 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-it.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-it.txt @@ -1,76 +1,63 @@ -
    -Per nuova visita si intende ogni nuovo visitatore che visualizza o consulta una pagina e non si connesso al sito negli ultimi #VisitTimeOut# minuti. -
    -
    -Numero di client host (indirizzi IP) che hanno visitato il sito (e visualizzato almeno una pagina).
    -Questa cifra riflette il numero di persone fisiche diverse che si sono collegate al sito. -
    -
    -Numero di volte in cui una pagina del sito stata visualizzata (somma di tutti i visitatori, per tutte le visite).
    -Questo valore diverso dagli "accessi" perch considera solamente le pagine HTML e non le immagini o gli altri elementi. -
    -
    -Numero di volte in cui una pagina, una immagine o un elemento stato visualizzato o scaricato da qualcuno.
    -Questo valore viene fornito solo per completezza in quanto il numero delle "pagine" visualizzate spesso preferibile ai fini commerciali. -
    -
    -Questo valore indica la quantit di dati scaricati per tutte le pagine, le immagini e i file presenti sul sito.
    -Le unit di misura sono espresse in KB, MB o GB (KiloByte, MegaByte o GigaByte) -
    -
    -#PROG# in grado di riconoscere gli accessi al sito provenienti dalle ricerche sui #SearchEnginesArray# motori di ricerca pi famosi (come Yahoo, Altavista, Lycos, Google, Voila, ecc.). -
    -
    -Elenco delle pagine di siti esterni contenenti un link che stato seguito per accedere a questo sito (solo le #MaxNbOfRefererShown# pagine esterne pi utilizzate sono visualizzate). -I link presenti nelle pagine dei motori di ricerca sono esclusi in quanto gi conteggiati nel riquadro soprastante. -
    -
    -Questa tabella offre l'elenco delle parole o frasi chiave utilizzate pi spesso per trovare il sito sui motori di ricerca. -(#PROG# in grado di riconoscere le ricerche sui #SearchEnginesArray# motori di ricerca pi famosi come Yahoo, Altavista, Lycos, Google, Voila, ecc.).
    -Notare che il totale delle ricerche sulle parole chiave potrebbe essere maggiore di quello sulle frasi chiave (il numero reale di ricerche) perch quando 2 parole chiavi sono presenti sulla stessa ricerca questa viene conteggiata due volte (una per ciascuna parola). -
    -
    -I robot (noti anche col nome di spider) sono dei visitatori automatici utilizzati da molti motori di ricerca per analizzare il sito al fine di indicizzarlo, generare statistiche sui siti Web in Internet e/o verificare che sia ancora in linea.
    -#PROG# in grado di riconoscere #RobotArray# robot. -
    -
    -Gli orari visualizzati sono basati sul fuso orario del server. -
    -
    -I dati qui riportati sono valori medi (calcolati su tutti i dati tra la prima e l'ultima visita nel periodo di tempo analizzato) -
    -
    -I dati qui riportati sono somme cumulative (calcolate su tutti i dati tra la prima e l'ultima visita nel periodo di tempo analizzato) -
    -
    -Alcune Durate delle visite sono 'sconosciute' perch non possono essere sempre calcolate. Questi sono i casi pi ricorrenti:
    -- La visita non era ancora conclusa quando sono state aggiornate (funzione 'update') le statistiche.
    -- La visita iniziata durante l'ultima ora (dopo le 23:00) dell'ultimo giorno del mese (Una ragione tecnica impedisce ad #PROG# di calcolare la durata di queste sessioni) -
    -
    -I Worm sono dei visitatori automatici provenienti da server esterni, infettati da un virus, che provano ad -effettuare particolari visite al server del sito al fine di infettarlo. In molti casi questi worm sfruttano i bug -di alcuni server non aggiornati o di tipo commerciale. Se il vostro server non l'obiettivo sensibile del worm potete -tranquillamente ignorare queste visite.
    Ci sono pochissimi 'server worm' al mondo ma questi talvolta dimostrano di essere -veramente efficaci. #PROG# in grado di riconoscere #WormsArray# firme di worm noti (nimda, code red, ecc.). -
    - -
    Nessuna descrizione per questo errore.
    -
    Il server ha processato la richiesta ma verr eseguita pi tardi.
    -
    Il server ha processato la richiesta ma non ci sono documenti da visualizzare.
    -
    Contenuto parziale.
    -
    Il documento richiesto stato spostato e si trova al momento ad un altro indirizzo, indicato nella risposta.
    -
    Nessuna descrizione per questo errore.
    -
    Errore di sintassi, il server non ha compreso la richiesta.
    -
    Tentativo di accesso a un URL che richiede un'autenticazione tramite login e password.
    Un numero troppo elevato pu significare che qualcuno (es. un hacker) sta cercando di forzare l'accesso al sito (ad esempio provando diverse combinazioni di login e password).
    -
    Tentativo di accesso a un URL non configurato per essere accessibile, neppure tramite autenticazione (ad esempio l'URL di una cartella il cui contenuto non pu essere sfogliato).
    -
    Tentativo di accesso a un URL inesistente. Si tratta di un link non valido sul sito o di un errore di battitura del visitatore che ha indicato un URL non corretto.
    -
    Il server ha impiegato troppo tempo per rispondere alla richiesta. Pu trattarsi di uno script CGI troppo lento obbligato ad abbandonare la richiesta oppure di un timeout dato dalla saturazione del sito.
    -
    Errore interno del server. Questo errore quello restituito pi di frequente durante la terminazione anormale di uno script CGI (per esempio a seguito di un coredump).
    -
    Azione richiesta di tipo sconosciuto.
    -
    Codice ritornato da un server HTTP che funge da proxy o da gateway quando il vero server destinatario non risponde alla richiesta del client.
    -
    Errore interno del server.
    -
    Time-out del gateway.
    -
    Versione HTTP non supportata.
    +tt1=Per nuova visita si intende ogni nuovo visitatore che visualizza o consulta una pagina e non si connesso al sito negli ultimi #VisitTimeOut# minuti. + +tt2=Numero di client host (indirizzi IP) che hanno visitato il sito (e visualizzato almeno una pagina).
    Questa cifra riflette il numero di persone fisiche diverse che si sono collegate al sito. + +tt3=Numero di volte in cui una pagina del sito stata visualizzata (somma di tutti i visitatori, per tutte le visite).
    Questo valore diverso dagli "accessi" perch considera solamente le pagine HTML e non le immagini o gli altri elementi. + +tt4=Numero di volte in cui una pagina, una immagine o un elemento stato visualizzato o scaricato da qualcuno.
    Questo valore viene fornito solo per completezza in quanto il numero delle "pagine" visualizzate spesso preferibile ai fini commerciali. + +tt5=Questo valore indica la quantit di dati scaricati per tutte le pagine, le immagini e i file presenti sul sito.
    Le unit di misura sono espresse in KB, MB o GB (KiloByte, MegaByte o GigaByte) + +tt13=#PROG# in grado di riconoscere gli accessi al sito provenienti dalle ricerche sui #SearchEnginesArray# motori di ricerca pi famosi (come Yahoo, Altavista, Lycos, Google, Voila, ecc.). + +tt14=Elenco delle pagine di siti esterni contenenti un link che stato seguito per accedere a questo sito (solo le #MaxNbOfRefererShown# pagine esterne pi utilizzate sono visualizzate). I link presenti nelle pagine dei motori di ricerca sono esclusi in quanto gi conteggiati nel riquadro soprastante. + +tt15=Questa tabella offre l'elenco delle parole o frasi chiave utilizzate pi spesso per trovare il sito sui motori di ricerca. (#PROG# in grado di riconoscere le ricerche sui #SearchEnginesArray# motori di ricerca pi famosi come Yahoo, Altavista, Lycos, Google, Voila, ecc.).
    Notare che il totale delle ricerche sulle parole chiave potrebbe essere maggiore di quello sulle frasi chiave (il numero reale di ricerche) perch quando 2 parole chiavi sono presenti sulla stessa ricerca questa viene conteggiata due volte (una per ciascuna parola). + +tt16=I robot (noti anche col nome di spider) sono dei visitatori automatici utilizzati da molti motori di ricerca per analizzare il sito al fine di indicizzarlo, generare statistiche sui siti Web in Internet e/o verificare che sia ancora in linea.
    #PROG# in grado di riconoscere #RobotArray# robot. + +tt17=Gli orari visualizzati sono basati sul fuso orario del server. + +tt18=I dati qui riportati sono valori medi (calcolati su tutti i dati tra la prima e l'ultima visita nel periodo di tempo analizzato) + +tt19=I dati qui riportati sono somme cumulative (calcolate su tutti i dati tra la prima e l'ultima visita nel periodo di tempo analizzato) + +tt20=Alcune Durate delle visite sono 'sconosciute' perch non possono essere sempre calcolate. Questi sono i casi pi ricorrenti:
    - La visita non era ancora conclusa quando sono state aggiornate (funzione 'update') le statistiche.
    - La visita iniziata durante l'ultima ora (dopo le 23:00) dell'ultimo giorno del mese (Una ragione tecnica impedisce ad #PROG# di calcolare la durata di queste sessioni) + +tt21=I Worm sono dei visitatori automatici provenienti da server esterni, infettati da un virus, che provano ad effettuare particolari visite al server del sito al fine di infettarlo. In molti casi questi worm sfruttano i bug di alcuni server non aggiornati o di tipo commerciale. Se il vostro server non l'obiettivo sensibile del worm potete tranquillamente ignorare queste visite.
    Ci sono pochissimi 'server worm' al mondo ma questi talvolta dimostrano di essere veramente efficaci. #PROG# in grado di riconoscere #WormsArray# firme di worm noti (nimda, code red, ecc.). + +tt201= Nessuna descrizione per questo errore. + +tt202= Il server ha processato la richiesta ma verr eseguita pi tardi. + +tt204= Il server ha processato la richiesta ma non ci sono documenti da visualizzare. + +tt206= Contenuto parziale. + +tt301= Il documento richiesto stato spostato e si trova al momento ad un altro indirizzo, indicato nella risposta. + +tt302= Nessuna descrizione per questo errore. + +tt400= Errore di sintassi, il server non ha compreso la richiesta. + +tt401= Tentativo di accesso a un URL che richiede un'autenticazione tramite login e password.
    Un numero troppo elevato pu significare che qualcuno (es. un hacker) sta cercando di forzare l'accesso al sito (ad esempio provando diverse combinazioni di login e password). + +tt403= Tentativo di accesso a un URL non configurato per essere accessibile, neppure tramite autenticazione (ad esempio l'URL di una cartella il cui contenuto non pu essere sfogliato). + +tt404= Tentativo di accesso a un URL inesistente. Si tratta di un link non valido sul sito o di un errore di battitura del visitatore che ha indicato un URL non corretto. + +tt408= Il server ha impiegato troppo tempo per rispondere alla richiesta. Pu trattarsi di uno script CGI troppo lento obbligato ad abbandonare la richiesta oppure di un timeout dato dalla saturazione del sito. + +tt500= Errore interno del server. Questo errore quello restituito pi di frequente durante la terminazione anormale di uno script CGI (per esempio a seguito di un coredump). + +tt501= Azione richiesta di tipo sconosciuto. + +tt502= Codice ritornato da un server HTTP che funge da proxy o da gateway quando il vero server destinatario non risponde alla richiesta del client. + +tt503= Errore interno del server. + +tt504= Time-out del gateway. + +tt505= Versione HTTP non supportata. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-jp.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-jp.txt index 0433b9dc3..fccfc1bae 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-jp.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-jp.txt @@ -1,63 +1,59 @@ -
    -#VisitTimeOut# 分前までの訪問数。 -
    -
    -最低1ページを訪問したクライアントホスト(IPアドレス)。
    -これは訪問者の実数です。 -
    -
    -
    -ページが表示された回数(すべての訪問者と訪問の合計)。
    -このデータは「件数」とは違い、HTMLファイルのみが入っています。 -
    -
    -ページ、画像、ファイルが表示された回数。
    -参照程度にお使いください。 -
    -
    -すべてのページ、画像、ファイルのダウンロードによるデータ転送量。
    -単位は KB 、MB または GB 。 -
    -
    -人気のある検索エンジン(Yahoo、Altavista、Lycos、Google、Voilaなど)での検索によるアクセス。 -
    -
    -ユーザー(コンピュータ)がこのサイトについての情報を得た外部ページ。 -
    -
    -このサイトにアクセスするために検索エンジンで入力されたキーワードのリスト。 -
    -
    -ロボット(別名スパイダー)とは、ウェブ中を動き回って全てのコンテンツを中央サーバー上に保存するコンピューター・プログラム。
    -
    -これらのデータはサーバー時間に基づいています。 -
    -
    -最初から最後までの訪問で集めたデータによって計算した平均数。 -
    -
    -最初から最後までの訪問で集めたデータによって計算した総数。 -
    - -
    POST が成功。またはPUT が新しいオブジェクトを作成。
    -
    要求は、受付たが、処理未完了。
    -
    サーバーは要求を受付けたが、返す情報がない。
    -
    サーバーは、情報の一部を得た。
    -
    要求された情報は、恒久的に移動した。
    -
    要求された情報は、一時的に移動した。
    -
    要求を実行できない。(構文が不正)
    -
    情報の要求に認証を必要とする。または、認証の拒否。
    -
    要求の拒否。認証が不完全。
    -
    要求された情報(ファイル)がない。
    -
    サーバーが待機時間内にクライアントが要求を送れなかった。
    -
    予期しないサーバーエラーのため、要求を実行できなかった。
    -
    サーバーは、要求された機能をサポートしていない。
    -
    クライアントより見て、ゲートウエイまたはプロキシーサーバの接続先サーバの応答が妥当でないことを示す。
    -
    サービス(サーバー)が高負荷。Retry-Afterヘッダに示す時間後には緩和される。応答文中にRetry-Afterヘッダがなければ、クライアントは応答を500番と同等に扱う必要がある。
    -
    ゲートウエイまたはプロキシの応答がゲートウエイの指定時間内に得られない。
    -
    HTTP バージョンをサポートしていない。
    +tt1=#VisitTimeOut# 分前までの訪問数。 +tt2=最低1ページを訪問したクライアントホスト(IPアドレス)。
    これは訪問者の実数です。 +tt3=ページが表示された回数(すべての訪問者と訪問の合計)。
    このデータは「件数」とは違い、HTMLファイルのみが入っています。 +tt4=ページ、画像、ファイルが表示された回数。
    参照程度にお使いください。 + +tt5=すべてのページ、画像、ファイルのダウンロードによるデータ転送量。
    単位は KB 、MB または GB 。 + +tt13=人気のある検索エンジン(Yahoo、Altavista、Lycos、Google、Voilaなど)での検索によるアクセス。 + +tt14=ユーザー(コンピュータ)がこのサイトについての情報を得た外部ページ。 + +tt15=このサイトにアクセスするために検索エンジンで入力されたキーワードのリスト。 + +tt16=ロボット(別名スパイダー)とは、ウェブ中を動き回って全てのコンテンツを中央サーバー上に保存するコンピューター・プログラム。 + +tt17=これらのデータはサーバー時間に基づいています。 + +tt18=最初から最後までの訪問で集めたデータによって計算した平均数。 + +tt19=最初から最後までの訪問で集めたデータによって計算した総数。 + +tt201= POST が成功。またはPUT が新しいオブジェクトを作成。 + +tt202= 要求は、受付たが、処理未完了。 + +tt204= サーバーは要求を受付けたが、返す情報がない。 + +tt206= サーバーは、情報の一部を得た。 + +tt301= 要求された情報は、恒久的に移動した。 + +tt302= 要求された情報は、一時的に移動した。 + +tt400= 要求を実行できない。(構文が不正) + +tt401= 情報の要求に認証を必要とする。または、認証の拒否。 + +tt403= 要求の拒否。認証が不完全。 + +tt404= 要求された情報(ファイル)がない。 + +tt408= サーバーが待機時間内にクライアントが要求を送れなかった。 + +tt500= 予期しないサーバーエラーのため、要求を実行できなかった。 + +tt501= サーバーは、要求された機能をサポートしていない。 + +tt502= クライアントより見て、ゲートウエイまたはプロキシーサーバの接続先サーバの応答が妥当でないことを示す。 + +tt503= サービス(サーバー)が高負荷。Retry-Afterヘッダに示す時間後には緩和される。応答文中にRetry-Afterヘッダがなければ、クライアントは応答を500番と同等に扱う必要がある。 + +tt504= ゲートウエイまたはプロキシの応答がゲートウエイの指定時間内に得られない。 + +tt505= HTTP バージョンをサポートしていない。 diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-kr.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-kr.txt index a01dedd63..cb67d4c43 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-kr.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-kr.txt @@ -1,62 +1,53 @@ -
    -ο 湮 (#VisitTimeOut# ̳) - Ʈ (ų ¡ ) ο - Ÿϴ. -
    -
    -Ŭ̾Ʈ ȣƮ (IP ּ) 湮 Ʈ Ÿϴ.(ּ Ʈ)
    - ڷ Ϻ ٸ Ÿϴ. -
    -
    (view) ȸ Ÿϴ. -( 湮 )
    - ڷ ̹, ϰ ޸ HTML "ȸ(hit)"ʹ ٸϴ. -
    -
    -, ̹, ų ٿε ȸ Ÿϴ.
    - ڷ θ ˴ϴ. ֳϸ "" ֱ Դϴ. -
    -
    - ٿε , ̹, Kb Ÿϴ. -
    -
    -#PROG# #SearchEnginesArray# ˻ Ʈ ĺ ֽϴ. -
    -
    - Ʈ ũ ܺ
    -(#MaxNbOfRefererShown# Ǵ ܺ Ÿϴ.) - ˻ ũ ⿡ ܵ˴ϴ. - ( ̺ ̹ ֽϴ.) -
    -
    - ̺ Ʈ Ǵ Ű ݴϴ. - ( ȣϴ ˻ Yahoo, Altavista, Lycos, Google, Voila -#SearchEnginesArray# Ű带 #PROG# ĺ ֽϴ. -
    -
    -κƮ (δ ̴ ) ˻ Ǵ -ڵȭ Դϴ. (1) Ʈ ȭϰ - οϰ (2) ͳ Ʈ 踦 ϰ (3) -Ʈ 밡 մϴ.
    -#PROG# #RobotArray# κƮ ĺ ֽϴ. -
    - -
    ϴ.
    -
    û ̻ ϴ.
    -
    û ó ϴ.
    -
    Ϻ .
    -
    û Ű ٸ ּҸ մϴ.
    -
    ϴ.
    -
    , û ϴ.
    -
    URL ؼ α/н ʿմϴ.
    ׸ ְ ũ õϰų Ʈ õϰ ִ (ٸ α/н带 Ͽ õϴ°) ǹմϴ.
    -
    밡ϰ Ǿ ʴ URL ӽõ Դϴ. ( , 丮Դ "¡" ǵ Դϴ.)
    -
    ʴ URL õ Դϴ. Ʈ 򰡿 ߸ ũ ־ 湮ڵ ߸ URL ϴ 쿡 ߻մϴ.
    -
    û ʹ ð 䱸մϴ. CGI ũƮ ̰ų 뷮 쿡 ߻մϴ.
    -
    . CGIα׷ Ǿ ߻մϴ.
    -
    û ˼ ϴ.
    -
    HTTP ݼ۵ ڵ尡 ó Ʈ̷ մϴ. Ŭ̾Ʈ û Ȯϰ մϴ.
    -
    .
    -
    Ʈ ðʰ.
    -
    HTTP ʽϴ.
    +tt1=ο 湮 (#VisitTimeOut# ̳) Ʈ (ų ¡ ) ο Ÿϴ. + +tt2=Ŭ̾Ʈ ȣƮ (IP ּ) 湮 Ʈ Ÿϴ.(ּ Ʈ)
    ڷ Ϻ ٸ Ÿϴ. + +tt3=Ʈ (view) ȸ Ÿϴ. ( 湮 )
    ڷ ̹, ϰ ޸ HTML "ȸ(hit)"ʹ ٸϴ. + +tt4=, ̹, ų ٿε ȸ Ÿϴ.
    ڷ θ ˴ϴ. ֳϸ "" ֱ Դϴ. + +tt5= ٿε , ̹, Kb Ÿϴ. + +tt13=#PROG# #SearchEnginesArray# ˻ Ʈ ĺ ֽϴ. + +tt14= Ʈ ũ ܺ
    (#MaxNbOfRefererShown# Ǵ ܺ Ÿϴ.) ˻ ũ ⿡ ܵ˴ϴ. ( ̺ ̹ ֽϴ.) + +tt15= ̺ Ʈ Ǵ Ű ݴϴ. ( ȣϴ ˻ Yahoo, Altavista, Lycos, Google, Voila #SearchEnginesArray# Ű带 #PROG# ĺ ֽϴ. + +tt16=κƮ (δ ̴ ) ˻ Ǵ ڵȭ Դϴ. (1) Ʈ ȭϰ οϰ (2) ͳ Ʈ 踦 ϰ (3) Ʈ 밡 մϴ.
    #PROG# #RobotArray# κƮ ĺ ֽϴ. + +tt201= ϴ. + +tt202= û ̻ ϴ. + +tt204= û ó ϴ. + +tt206= Ϻ . + +tt301= û Ű ٸ ּҸ մϴ. + +tt302= ϴ. + +tt400= , û ϴ. + +tt401= URL ؼ α/н ʿմϴ.
    ׸ ְ ũ õϰų Ʈ õϰ ִ (ٸ α/н带 Ͽ õϴ°) ǹմϴ. + +tt403= 밡ϰ Ǿ ʴ URL ӽõ Դϴ. ( , 丮Դ "¡" ǵ Դϴ.) + +tt404= ʴ URL õ Դϴ. Ʈ 򰡿 ߸ ũ ־ 湮ڵ ߸ URL ϴ 쿡 ߻մϴ. + +tt408= û ʹ ð 䱸մϴ. CGI ũƮ ̰ų 뷮 쿡 ߻մϴ. + +tt500= . CGIα׷ Ǿ ߻մϴ. + +tt501= û ˼ ϴ. + +tt502= HTTP ݼ۵ ڵ尡 ó Ʈ̷ մϴ. Ŭ̾Ʈ û Ȯϰ մϴ. + +tt503= . + +tt504= Ʈ ðʰ. + +tt505= HTTP ʽϴ. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nb.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nb.txt index 4bb651f91..3b7bbe762 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nb.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nb.txt @@ -1,62 +1,59 @@ -
    -Ett nytt besk er en ny gjest som ikke har vrt tilkoplet nettstedet siste #VisitTimeOut# min. -
    -
    -Antall klientverter (IP-adresser) som har beskt nettstedet, og har sett minst en side).
    -Denne informasjonen gjelder antallet forskjellige personer som har beskt siden. -
    -
    -Antall ganger en side p nettstedet har blitt vist.
    -Denne informasjonen skiller seg fra treff ved bare telle HTML-sider, og ikke bilder og andre filer. -
    -
    -Antall ganger en side, et bilde eller en fil p nettstedet har blitt vist eller lastet ned. -
    -
    -Denne informasjonen viser hvor mye data som har blitt lastet ned totalt (sider, bilder eller andre filer).
    -Enhetene er KB, MB eller GB (kilobyte, megabyte eller gigabyte) -
    -
    -#PROG# kan se nr et besk p nettstedet ditt kommer fra et sk p de #SearchEnginesArray# mest populre skemotorene og emnekatalogane (f.eks. Yahoo, Altavista, Lycos, Google og Kvasir). -
    -
    -Liste over alle eksterne sider som har lenker til nettstedet ditt (bare de #MaxNbOfRefererShown# mest brukte eksterne sider blir vist). -Lenker fra skemotorer er ikke inkludert her, siden disse allerede er oppfrt i forrige del av denne tabellen. -
    -
    -Denne tabellen viser de mest brukte skeordene brukt til finna nettstedet ditt i skemotorer og emnekataloger. -(Skeord fra de #SearchEnginesArray# mest populre skemotorene og emnekatalogene kan leses av #PROG#, f.eks. Yahoo, Altavista, Lycos, Google, og Kvasir). -
    -
    -Roboter blir brukt av mange skemotorer som besker nettstedet ditt for indeksere og rangere det, samle statistikk om nettsteder, og/eller se om nettstedet fremdeles er tilgjengelig.
    -#PROG# kjenner til #RobotArray# roboter. -
    -
    -All tidsrelatert statistikk er basert p tjenertid. -
    -
    -Rapporterte tall er gjennomsnittsverdier (regnet ut fra alle data mellom frste og siste besk) -
    -
    -Rapporterte tall er kumulative summer (regnet ut fra alle data mellom frste og siste besk) -
    - -
    Ingen beskrivelse av denne feilen.
    -
    Foresprselen var forsttt av tjeneren men vil bli prosessert senere.
    -
    Tjeneren har prosessert foresprselen men har ikke noe innhold sende.
    -
    Delvis innhold.
    -
    Det forespurte dokumentet er flyttet, og finnes n p en annen side. Brukeren blir automatisk videresendt til den nye adressen.
    -
    Ingen beskrivelse av denne feilen.
    -
    Syntaksfeil. Tjeneren forsto ikke foresprselen.
    -
    Prvde hente en side som var passordbeskyttet.
    Mange slike feilmeldinger kan bety at noen prver bryte seg inn p nettstedet ditt.
    -
    Prvde hente en side som er utilgjengelig (selv med passord) (for eksempel en katalog som er definert som ikke lesbar).
    -
    Prvde hente en ikke-eksisterende side. Denne feilen betyr oftest at det er en lenke en eller annen plass p nettstedet ditt (eller p en ekstern side) som ikke fungerer, og som m oppdateres.
    -
    Tjeneren har brukt for mye tid p svare p en foresprsel. Denne feilen gjelder enten et tregt CGI-skript tjenaren mtte avslutte, eller tungt trafikkert tjenar.
    -
    Intern feil. Denne feilen kommer ofte av CGI-skript som har blitt avsluttet unormalt.
    -
    Ukjent foresprsel.
    -
    Kode returnert av ein HTTP-tjener som fungerer som proxy eller systemport nr en ekte tjener ikke svarer p foresprselen.
    -
    Intern tjenerfeil.
    -
    Systemport tidsavbrutt.
    -
    Sttter ikke HTTP-versjonen.
    +tt1=Ett nytt besk er en ny gjest som ikke har vrt tilkoplet nettstedet siste #VisitTimeOut# min. + +tt2=Antall klientverter (IP-adresser) som har beskt nettstedet, og har sett minst en side).
    Denne informasjonen gjelder antallet forskjellige personer som har beskt siden. + +tt3=Antall ganger en side p nettstedet har blitt vist.
    Denne informasjonen skiller seg fra treff ved bare telle HTML-sider, og ikke bilder og andre filer. + +tt4=Antall ganger en side, et bilde eller en fil p nettstedet har blitt vist eller lastet ned. + +tt5=Denne informasjonen viser hvor mye data som har blitt lastet ned totalt (sider, bilder eller andre filer).
    Enhetene er KB, MB eller GB (kilobyte, megabyte eller gigabyte) + +tt13=#PROG# kan se nr et besk p nettstedet ditt kommer fra et sk p de #SearchEnginesArray# mest populre skemotorene og emnekatalogane (f.eks. Yahoo, Altavista, Lycos, Google og Kvasir). + +tt14=Liste over alle eksterne sider som har lenker til nettstedet ditt (bare de #MaxNbOfRefererShown# mest brukte eksterne sider blir vist). Lenker fra skemotorer er ikke inkludert her, siden disse allerede er oppfrt i forrige del av denne tabellen. + +tt15=Denne tabellen viser de mest brukte skeordene brukt til finna nettstedet ditt i skemotorer og emnekataloger. (Skeord fra de #SearchEnginesArray# mest populre skemotorene og emnekatalogene kan leses av #PROG#, f.eks. Yahoo, Altavista, Lycos, Google, og Kvasir). + +tt16=Roboter blir brukt av mange skemotorer som besker nettstedet ditt for indeksere og rangere det, samle statistikk om nettsteder, og/eller se om nettstedet fremdeles er tilgjengelig.
    #PROG# kjenner til #RobotArray# roboter. + +tt17=All tidsrelatert statistikk er basert p tjenertid. + +tt18=Rapporterte tall er gjennomsnittsverdier (regnet ut fra alle data mellom frste og siste besk) + +tt19=Rapporterte tall er kumulative summer (regnet ut fra alle data mellom frste og siste besk) + +tt201= Ingen beskrivelse av denne feilen. + +tt202= Foresprselen var forsttt av tjeneren men vil bli prosessert senere. + +tt204= Tjeneren har prosessert foresprselen men har ikke noe innhold sende. + +tt206= Delvis innhold. + +tt301= Det forespurte dokumentet er flyttet, og finnes n p en annen side. Brukeren blir automatisk videresendt til den nye adressen. + +tt302= Ingen beskrivelse av denne feilen. + +tt400= Syntaksfeil. Tjeneren forsto ikke foresprselen. + +tt401= Prvde hente en side som var passordbeskyttet.
    Mange slike feilmeldinger kan bety at noen prver bryte seg inn p nettstedet ditt. + +tt403= Prvde hente en side som er utilgjengelig (selv med passord) (for eksempel en katalog som er definert som ikke lesbar). + +tt404= Prvde hente en ikke-eksisterende side. Denne feilen betyr oftest at det er en lenke en eller annen plass p nettstedet ditt (eller p en ekstern side) som ikke fungerer, og som m oppdateres. + +tt408= Tjeneren har brukt for mye tid p svare p en foresprsel. Denne feilen gjelder enten et tregt CGI-skript tjenaren mtte avslutte, eller tungt trafikkert tjenar. + +tt500= Intern feil. Denne feilen kommer ofte av CGI-skript som har blitt avsluttet unormalt. + +tt501= Ukjent foresprsel. + +tt502= Kode returnert av ein HTTP-tjener som fungerer som proxy eller systemport nr en ekte tjener ikke svarer p foresprselen. + +tt503= Intern tjenerfeil. + +tt504= Systemport tidsavbrutt. + +tt505= Sttter ikke HTTP-versjonen. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nl.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nl.txt index 31f62ea78..721dcdbc1 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nl.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nl.txt @@ -1,53 +1,52 @@ -
    -Een nieuw bezoek is elke binnenkomende bezoeker (die een pagina bekijkt) die de laatste #VisitTimeOut# mn niet met uw site verbonden was. -
    -
    -Aantal client hosts (IP adres) die de site bezochten (en minimaal een pagina bekeken).
    -Dit geeft aan hoeveel verschillende fysieke personen de site op een bepaalde dag bezocht hebben. -
    -
    -Aantal malen dat een pagina van de site bekeken is (Som voor alle bezoekers voor alle bezoeken).
    -Dit onderdeel verschilt van "hits" in het feit dat het alleen HTML pagina's telt, in tegenstelling tot plaatjes en andere bestanden. -
    -
    -Aantal malen dat een pagina, plaatje of bestand op de site door iemand is bekeken of gedownload.
    -Dit onderdeel is alleen als referentie gegeven, omdat het aantal bekeken "pagina's" voor marketingdoeleinden de voorkeur heeft. -
    -
    -Aantal door uw bezoekers gedownloade kibibytes.
    -Dit onderdeel geeft de hoeveelheid gedownloade gegevens in alle pagina's, plaatjes en bestanden van uw site, gemeten in KiBs. -
    -
    -Dit programma, #PROG#, herkent elke benadering van uw site na een zoekopdracht van de #SearchEnginesArray# meest populaire Internet zoekmachines (zoals Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    -Lijst van alle externe pagina's die zijn gebruikt om naar uw site te linken (of deze te benaderen) (Alleen de #MaxNbOfRefererShown# meest gebruikte externe pagina's zijn getoond. -Links gebruikt door de resultaten van zoekmachines worden hiet niet getoond omdat deze al zijn opgenomen in de vorige regel van deze tabel. -
    -
    -Deze tabel toont de lijst van keywords die het meest zijn gebruikt om uw site te vindein in Internet zoekmachines. -(Keywords van de #SearchEnginesArray# meest populaire zoekmachines worden door #PROG# herkend, zoals Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    -Robots (soms Spiders genoemd) zijn automatische bezoekcomputers die door veel zoekmachines worden gebruikt om uw site te scannen om (1) deze te indexeren, (2) statistieken over Internet sites te verzamelen en/of (3) te kijken of site nog steeds on-line is.
    -Dit programma, #PROG#, is in staat maximaal #RobotArray# robots te herkennen
    . -
    - -
    Geen beschrijving voor deze foutmelding.
    -
    De server heeft het verzoek begrepen, maar zal deze later behandelen.
    -
    De server heeft het verzoek verwerkt, maar er is geen document om te verzenden.
    -
    Gedeeltelijke inhoud.
    -
    Het aangevraagde document is verplaatst en is nu op een andere locatie die in het antwoord gegeven is.
    -
    Geen beschrijving voor deze foutmelding.
    -
    "Taalfout", de server begreep het verzoek niet.
    -
    Er is gepoogd een URL waarvoor een usernaam/wachtwoord noodzakelijk is te benaderen.
    Een hoog aantal van deze meldingen kan betekenen dat iemand (zoals een hacker) probeert uw site te kraken, of uw site binnen te komen (pogend een beveiligd onderdeel van uw site te benaderen door verschillende usernamen/wachtwoorden te proberen, bijvoorbeeld).
    -
    Er is gepoogd een URL die is ingesteld om niet benaderbaar te zijn, zelfs met usernaam/wachtwoord te benaderen (bijvoorbeeld, een URL in een directory die niet "doorbladerbaar" is).
    -
    Er is gepoogd een niet bestaande URL te benaderen. Deze fout betekent vaak dat er een ongeldige link in uw site zit of dat een bezoeker een URL foutief heeft ingevoerd.
    -
    De server heeft er te lang over gedaan om een antwoord op een aanvraag te geven. Het kan een CGI script zijn dat zo traag is dat de server hem heeft moeten afbreken of een overbelaste web server.
    -
    Interne fout. Deze error wordt vaak veroorzaakt door een CGI programma dat abnormaal is beeindigd (een core dump, bijvoorbeeld).
    -
    Onbekende actie aangevraagd.
    -
    Melding die door een proxy of gateway HTTP server wordt gegeven als een echte doelserver niet succesvol op de aanvraag van een client antwoordt.
    -
    Interne server fout.
    -
    Gateway time-out.
    -
    HTTP versie niet ondersteund.
    +tt1=Een nieuw bezoek is elke binnenkomende bezoeker (die een pagina bekijkt) die de laatste #VisitTimeOut# mn niet met uw site verbonden was. + +tt2=Aantal client hosts (IP adres) die de site bezochten (en minimaal een pagina bekeken).
    Dit geeft aan hoeveel verschillende fysieke personen de site op een bepaalde dag bezocht hebben. + +tt3=Aantal malen dat een pagina van de site bekeken is (Som voor alle bezoekers voor alle bezoeken).
    Dit onderdeel verschilt van "hits" in het feit dat het alleen HTML pagina's telt, in tegenstelling tot plaatjes en andere bestanden. + +tt4=Aantal malen dat een pagina, plaatje of bestand op de site door iemand is bekeken of gedownload.
    Dit onderdeel is alleen als referentie gegeven, omdat het aantal bekeken "pagina's" voor marketingdoeleinden de voorkeur heeft. + +tt5=Aantal door uw bezoekers gedownloade kibibytes.
    Dit onderdeel geeft de hoeveelheid gedownloade gegevens in alle pagina's, plaatjes en bestanden van uw site, gemeten in KiBs. + +tt13=Dit programma, #PROG#, herkent elke benadering van uw site na een zoekopdracht van de #SearchEnginesArray# meest populaire Internet zoekmachines (zoals Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt14=Lijst van alle externe pagina's die zijn gebruikt om naar uw site te linken (of deze te benaderen) (Alleen de #MaxNbOfRefererShown# meest gebruikte externe pagina's zijn getoond. Links gebruikt door de resultaten van zoekmachines worden hiet niet getoond omdat deze al zijn opgenomen in de vorige regel van deze tabel. + +tt15=Deze tabel toont de lijst van keywords die het meest zijn gebruikt om uw site te vindein in Internet zoekmachines. (Keywords van de #SearchEnginesArray# meest populaire zoekmachines worden door #PROG# herkend, zoals Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt16=Robots (soms Spiders genoemd) zijn automatische bezoekcomputers die door veel zoekmachines worden gebruikt om uw site te scannen om (1) deze te indexeren, (2) statistieken over Internet sites te verzamelen en/of (3) te kijken of site nog steeds on-line is.
    Dit programma, #PROG#, is in staat maximaal #RobotArray# robots te herkennen. + +tt201= Geen beschrijving voor deze foutmelding. + +tt202= De server heeft het verzoek begrepen, maar zal deze later behandelen. + +tt204= De server heeft het verzoek verwerkt, maar er is geen document om te verzenden. + +tt206= Gedeeltelijke inhoud. + +tt301= Het aangevraagde document is verplaatst en is nu op een andere locatie die in het antwoord gegeven is. + +tt302= Geen beschrijving voor deze foutmelding. + +tt400= "Taalfout", de server begreep het verzoek niet. + +tt401= Er is gepoogd een URL waarvoor een usernaam/wachtwoord noodzakelijk is te benaderen.
    Een hoog aantal van deze meldingen kan betekenen dat iemand (zoals een hacker) probeert uw site te kraken, of uw site binnen te komen (pogend een beveiligd onderdeel van uw site te benaderen door verschillende usernamen/wachtwoorden te proberen, bijvoorbeeld). + +tt403= Er is gepoogd een URL die is ingesteld om niet benaderbaar te zijn, zelfs met usernaam/wachtwoord te benaderen (bijvoorbeeld, een URL in een directory die niet "doorbladerbaar" is). + +tt404= Er is gepoogd een niet bestaande URL te benaderen. Deze fout betekent vaak dat er een ongeldige link in uw site zit of dat een bezoeker een URL foutief heeft ingevoerd. + +tt408= De server heeft er te lang over gedaan om een antwoord op een aanvraag te geven. Het kan een CGI script zijn dat zo traag is dat de server hem heeft moeten afbreken of een overbelaste web server. + +tt500= Interne fout. Deze error wordt vaak veroorzaakt door een CGI programma dat abnormaal is beeindigd (een core dump, bijvoorbeeld). + +tt501= Onbekende actie aangevraagd. + +tt502= Melding die door een proxy of gateway HTTP server wordt gegeven als een echte doelserver niet succesvol op de aanvraag van een client antwoordt. + +tt503= Interne server fout. + +tt504= Gateway time-out. + +tt505= HTTP versie niet ondersteund. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nn.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nn.txt index e9c5936fe..8d7bc2aa7 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nn.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-nn.txt @@ -1,68 +1,61 @@ -
    -Eit nytt besk er ein ny gjest som ikkje har vore tilkopla nettstaden siste #VisitTimeOut# minutt. -
    -
    -Talet p klientvertar (IP-adresser) som har beskt nettstaden, og har sett minst i side).
    -Denne informasjonen gjeld talet p forskjellige personar som har beskt sida. -
    -
    -Talet p gongar ei side p nettstaden har blitt vist.
    -Denne informasjonen skil seg fr treff ved berre telja HTML-sider, og ikkje bilde og andre filer. -
    -
    -Talet p gongar ei side, eit bilde eller ei fil p nettstaden har blitt vist eller lasta ned. -
    -
    -Denne informasjonen viser kor mykje data som har blitt lasta ned totalt (sider, bilde eller andre filer).
    -Einingane er KiB, MiB eller GiB (kibibyte, mebibyte eller gibibyte) -
    -
    -#PROG# kan sj nr eit besk p nettstaden din kjem fr eit sk p dei #SearchEnginesArray# mest populre skjemotorane og emnekatalogane (f.eks. Yahoo, Altavista, Lycos, Google og Kvasir). -
    -
    -Liste over alle eksterne sider som har lenkjer til nettstaden din (berre dei #MaxNbOfRefererShown# mest brukte eksterne sider blir vist). -Lenkjer fr skjemotorar er ikkje tatt med her, d desse allereie er oppfrt i tidlegare i tabellen. -
    -
    -Denne tabellen viser dei mest brukte skjeorda og skjeuttrykka brukt til finna nettstaden i skjemotorar og emnekatalogar. -(Skjeord fr dei #SearchEnginesArray# mest populre skjemotorane og emnekatalogane kan lesast av #PROG#, f.eks. Yahoo, Altavista, Lycos, Google, og Kvasir).
    -Merk at talet p skjeord kan vera hgare enn talet p skjeuttrykk, for nr to eller fleire skjeord blir brukt i same sk, vil kvart ord telja med i oversikta over skjeord. -
    -
    -Robotar blir brukt av mange skjemotorar som beskjer nettstaden din for indeksera og rangera han, samla statistikk om nettstader, og/eller sj om nettstaden framleis er tilgjengeleg.
    -#PROG# kjenner til #RobotArray# robotar. -
    -
    -All tidsrelatert statistikk er basert p tenartida. -
    -
    -Rapporterte tal er gjennomsnittsverdiar (rekna ut fr all data mellom frste og siste besk i analyseperioden) -
    -
    -Rapporterte tal er kumulative summar (rekna ut fr all data mellom frste og siste besk i analyseperioden) -
    -
    -Nokre beskslengder er ukjente fordi dei ikkje kan reknast ut. Hovudgrunnane for dette er:
    -– Besket er ikkje ferdig nr rapportoppdateringa skjer.
    -– Besket starta etter klokka 23:00 p den siste dagen i mnaden. (Tekniske grunnar hindrar AWStats rekna ut beskslengda i desse tilfella.) -
    - -
    Inga beskriving av denne feilen.
    -
    Frespurnaden vart forsttt av tenaren men vil bli prosessert seinare.
    -
    Tenaren har prosessert frespurnaden men har ikkje noko innhald senda.
    -
    Delvis innhald.
    -
    Det frespurte dokumentet er flytta, og finst no p ei anna sida. Brukaren blir auomatisk vidaresendt til den nye adressa.
    -
    Inga beskriving av denne feilen.
    -
    Syntaksfeil. Tenaren forsto ikkje frespurnaden.
    -
    Prvde henta ei side som var passordsikra.
    Mange slike feilmeldingar kan tyda p at nokon prver bryta seg inn p nettstaden din.
    -
    Prvde henta side som er utilgjengeleg (sjlv med passord) (for eksempel ein katalog som er definert som ikkje lesbar).
    -
    Prvde henta ei ikkje-eksisterande side. Denne feilen tyder oftast at det er ei lenkje ein eller annan plass p nettstaden din (eller p ei ekstern side) som ikkje fungerer, og som m oppdaterast.
    -
    Tenaren har brukt for mykje tid p svara p ein frespurnad. Denne feilen gjeld enten eit treigt CGI-skript tenaren mtte avslutta, eller tungt trafikkert tenar.
    -
    Intern feil. Denne feiled kjem ofte av CGI-skript som har blitt avslutta unormalt.
    -
    Ukjent frespurnad.
    -
    Kode returnert av ein HTTP-tenar som fungerer som proxy eller systemport nr ein ekte tenar ikkje svarer p frespurnaden.
    -
    Intern tenarfeil.
    -
    Systemport tidsavbroten.
    -
    Stttar ikkje HTTP-versjonen.
    +tt1=Eit nytt besk er ein ny gjest som ikkje har vore tilkopla nettstaden siste #VisitTimeOut# minutt. + +tt2=Talet p klientvertar (IP-adresser) som har beskt nettstaden, og har sett minst i side).
    Denne informasjonen gjeld talet p forskjellige personar som har beskt sida. + +tt3=Talet p gongar ei side p nettstaden har blitt vist.
    Denne informasjonen skil seg fr treff ved berre telja HTML-sider, og ikkje bilde og andre filer. + +tt4=Talet p gongar ei side, eit bilde eller ei fil p nettstaden har blitt vist eller lasta ned. + +tt5=Denne informasjonen viser kor mykje data som har blitt lasta ned totalt (sider, bilde eller andre filer).
    Einingane er KiB, MiB eller GiB (kibibyte, mebibyte eller gibibyte) + +tt13=#PROG# kan sj nr eit besk p nettstaden din kjem fr eit sk p dei #SearchEnginesArray# mest populre skjemotorane og emnekatalogane (f.eks. Yahoo, Altavista, Lycos, Google og Kvasir). + +tt14=Liste over alle eksterne sider som har lenkjer til nettstaden din (berre dei #MaxNbOfRefererShown# mest brukte eksterne sider blir vist). Lenkjer fr skjemotorar er ikkje tatt med her, d desse allereie er oppfrt i tidlegare i tabellen. + +tt15=Denne tabellen viser dei mest brukte skjeorda og skjeuttrykka brukt til finna nettstaden i skjemotorar og emnekatalogar. (Skjeord fr dei #SearchEnginesArray# mest populre skjemotorane og emnekatalogane kan lesast av #PROG#, f.eks. Yahoo, Altavista, Lycos, Google, og Kvasir).
    Merk at talet p skjeord kan vera hgare enn talet p skjeuttrykk, for nr to eller fleire skjeord blir brukt i same sk, vil kvart ord telja med i oversikta over skjeord. + +tt16=Robotar blir brukt av mange skjemotorar som beskjer nettstaden din for indeksera og rangera han, samla statistikk om nettstader, og/eller sj om nettstaden framleis er tilgjengeleg.
    #PROG# kjenner til #RobotArray# robotar. + +tt17=All tidsrelatert statistikk er basert p tenartida. + +tt18=Rapporterte tal er gjennomsnittsverdiar (rekna ut fr all data mellom frste og siste besk i analyseperioden) + +tt19=Rapporterte tal er kumulative summar (rekna ut fr all data mellom frste og siste besk i analyseperioden) + +tt20=Nokre beskslengder er ukjente fordi dei ikkje kan reknast ut. Hovudgrunnane for dette er:
    – Besket er ikkje ferdig nr rapportoppdateringa skjer.
    – Besket starta etter klokka 23:00 p den siste dagen i mnaden. (Tekniske grunnar hindrar AWStats rekna ut beskslengda i desse tilfella.) + +tt201= Inga beskriving av denne feilen. + +tt202= Frespurnaden vart forsttt av tenaren men vil bli prosessert seinare. + +tt204= Tenaren har prosessert frespurnaden men har ikkje noko innhald senda. + +tt206= Delvis innhald. + +tt301= Det frespurte dokumentet er flytta, og finst no p ei anna sida. Brukaren blir auomatisk vidaresendt til den nye adressa. + +tt302= Inga beskriving av denne feilen. + +tt400= Syntaksfeil. Tenaren forsto ikkje frespurnaden. + +tt401= Prvde henta ei side som var passordsikra.
    Mange slike feilmeldingar kan tyda p at nokon prver bryta seg inn p nettstaden din. + +tt403= Prvde henta side som er utilgjengeleg (sjlv med passord) (for eksempel ein katalog som er definert som ikkje lesbar). + +tt404= Prvde henta ei ikkje-eksisterande side. Denne feilen tyder oftast at det er ei lenkje ein eller annan plass p nettstaden din (eller p ei ekstern side) som ikkje fungerer, og som m oppdaterast. + +tt408= Tenaren har brukt for mykje tid p svara p ein frespurnad. Denne feilen gjeld enten eit treigt CGI-skript tenaren mtte avslutta, eller tungt trafikkert tenar. + +tt500= Intern feil. Denne feiled kjem ofte av CGI-skript som har blitt avslutta unormalt. + +tt501= Ukjent frespurnad. + +tt502= Kode returnert av ein HTTP-tenar som fungerer som proxy eller systemport nr ein ekte tenar ikkje svarer p frespurnaden. + +tt503= Intern tenarfeil. + +tt504= Systemport tidsavbroten. + +tt505= Stttar ikkje HTTP-versjonen. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-pl.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-pl.txt index 62a001db2..d6a658d0b 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-pl.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-pl.txt @@ -1,68 +1,61 @@ -
    -Wizyty kadego nowego gocia, ktry oglda stron i nie czy si z ni przez ostatnie #VisitTimeOut# mn. -
    -
    -Adres numeryczny hosta klienta (tzw. adres IP) odwiedzajcego t stron.
    -Ten numer moe by identyczny dla kilku rnych Internautw ktrzy odwiedzili stron tego samego dnia. -
    -
    -rednia liczba obejrzanych stron przypadajca na jednego Internaut. (Suma goci, wszystkich wizyt).
    -Ten licznik rni si od kolumny z prawej, gdy zlicza on tylko strony html (bez obrazkw i innych plikw). -
    -
    -Liczba wszystkich stron, obrazkw, dwikw, plikw, ktre zostay obejrzane lub cignite przez kogo.
    -Warto jest jedynie orientacyjna, zaleca si spoglda na licznik "strony". -
    -
    -Liczba kilobajtw cignitych przez Internautw.
    -Jest to suma wszystkich cignitych danych (strony html, obrazki, dwiki). -
    -
    -#PROG# rozrnia dostp do stron z zagranicznych wyszukiwarek dziki #SearchEnginesArray# najpopularniejszym przegldarkom internetowym (Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    -Lista wszystkich stron spoza serwera z ktrych trafiono na ten serwer (wywietlanych jest #MaxNbOfRefererShown# stron z ktrych najczciej si odwoywano. -
    -
    -Ta kolumna pokazuje list najczciej uywanych sw kluczowych, dziki ktrym znaleziono t stron w wyszukiwarkach. -(#PROG# rozrnia zapytania sw kluczowych z #SearchEnginesArray# najpopularniejszych wyszukiwarek, takich jak Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    -Roboty s programami sieciowymi skanujcymi strony w celu zebrania/aktualizacji danych (np. sowa kluczowe do wyszukiwarek), lub sprawdzajcymi czy strona nadal istnieje w sieci.
    -#PROG# rozrnia obecnie #RobotArray# robw. -
    -
    -Wszystkie statystyki bazuj na czasie serwera. -
    -
    -Here, reported data are: average values (calculated from all data between the first and last visit) -
    -
    -Here, reported data are: cumulative sums (calculated from all data between the first and last visit) - -
    -
    -Pewne dugoci wizyt s podane jako nieznae, gdy nie zawsze mog zosta obliczone. Najczciej wynika to z:
    -- Wizyta jeszcze trwaa podczas aktualizacji statystyki,
    -- Wizyta rozpocza si po 23:00 ostatniego dnia miesica (ze wzgldw technicznych #PROG# nie przelicza dugoci takich sesji) -
    - -
    Zlecenie POST zostao zrealizowane pomylnie.
    -
    danie zostao odebrane poprawnie, lecz bdzie pniej zrealizowane przez serwer.
    -
    Serwer przetworzy danie, lecz nie posiada adnych danych do wysania.
    -
    Czciowa zawarto.
    -
    Dokument zosta przeniesiony pod inny adres.
    -
    Dokument zosta czasowo przeniesiony pod inny adres.
    -
    Zlecenie byo bdne, lub niemoliwe do zrealizowania przez serwer.
    Bd powstaje wtedy, kiedy serwer WWW otrzymuje do wykonania instrukcj, ktrej nie rozumie.
    -
    Bd autoryzacji. Strona wymaga podania hasa i loginu - bd pokazuje si wtedy, gdy ktre z tych danych si nie zgadza lub zostay podane niewaciwiwe.
    Jeli liczba ta jest dua, jest to sygna dla webmastera, i kto prbuje zama haso do strony nim zabezpieczonej.
    -
    Bd wystpuje wtedy, gdy katalog/strona do ktrego si odwoywano nie ma ustawionych waciwych praw dostpu, lub prawa te nie pozwalaj na obejrzenie zawartoci katalogu/strony.
    -
    Sprbuj wpisa nie istniejcy adres URL (np. adres tej strony ze skasowan jedn literk). Znaczy to, e posiadasz gdzie na swoich stronach bdny link, lub link odnoszcy si do nieistniejcej strony.
    -
    Przegldarka nie wysaa da do serwera w czasie jego oczekiwania. Moesz powtrzy danie bez jego modyfikacji w czasie pniejszym.
    -
    Bd wewntrzny. Ten bd czsto pojawia si, gdy aplikacja CGI nie zakoczya si normalnie (podobno kady program zawiera przynajmniej jeden bd...:-).
    -
    Serwer nie umoliwia obsugi mechanizmu.
    -
    Serwer jest chwilowo przeciony i nie moe obsuy zlecenia.
    -
    Serwer zdecydowa si przerwa oczekiwanie na inny zasb lub usug, i z tego powodu nie mg obsuy zlecenia.
    -
    Serwer docelowy nie otrzyma odpowiedzi od serwera proxy, lub bramki.
    -
    Nie obsugiwana wesja protokou HTTP.
    +tt1=Wizyty kadego nowego gocia, ktry oglda stron i nie czy si z ni przez ostatnie #VisitTimeOut# mn. + +tt2=Adres numeryczny hosta klienta (tzw. adres IP) odwiedzajcego t stron.
    Ten numer moe by identyczny dla kilku rnych Internautw ktrzy odwiedzili stron tego samego dnia. + +tt3=rednia liczba obejrzanych stron przypadajca na jednego Internaut. (Suma goci, wszystkich wizyt).
    Ten licznik rni si od kolumny z prawej, gdy zlicza on tylko strony html (bez obrazkw i innych plikw). + +tt4=Liczba wszystkich stron, obrazkw, dwikw, plikw, ktre zostay obejrzane lub cignite przez kogo.
    Warto jest jedynie orientacyjna, zaleca si spoglda na licznik "strony". + +tt5=Liczba kilobajtw cignitych przez Internautw.
    Jest to suma wszystkich cignitych danych (strony html, obrazki, dwiki). + +tt13=#PROG# rozrnia dostp do stron z zagranicznych wyszukiwarek dziki #SearchEnginesArray# najpopularniejszym przegldarkom internetowym (Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt14=Lista wszystkich stron spoza serwera z ktrych trafiono na ten serwer (wywietlanych jest #MaxNbOfRefererShown# stron z ktrych najczciej si odwoywano. + +tt15=Ta kolumna pokazuje list najczciej uywanych sw kluczowych, dziki ktrym znaleziono t stron w wyszukiwarkach. (#PROG# rozrnia zapytania sw kluczowych z #SearchEnginesArray# najpopularniejszych wyszukiwarek, takich jak Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt16=Roboty s programami sieciowymi skanujcymi strony w celu zebrania/aktualizacji danych (np. sowa kluczowe do wyszukiwarek), lub sprawdzajcymi czy strona nadal istnieje w sieci.
    #PROG# rozrnia obecnie #RobotArray# robw. + +tt17=Wszystkie statystyki bazuj na czasie serwera. + +tt18=Here, reported data are: average values (calculated from all data between the first and last visit) + +tt19=Here, reported data are: cumulative sums (calculated from all data between the first and last visit) + +tt20=Pewne dugoci wizyt s podane jako nieznae, gdy nie zawsze mog zosta obliczone. Najczciej wynika to z:
    - Wizyta jeszcze trwaa podczas aktualizacji statystyki,
    - Wizyta rozpocza si po 23:00 ostatniego dnia miesica (ze wzgldw technicznych #PROG# nie przelicza dugoci takich sesji) + +tt201= Zlecenie POST zostao zrealizowane pomylnie. + +tt202= danie zostao odebrane poprawnie, lecz bdzie pniej zrealizowane przez serwer. + +tt204= Serwer przetworzy danie, lecz nie posiada adnych danych do wysania. + +tt206= Czciowa zawarto. + +tt301= Dokument zosta przeniesiony pod inny adres. + +tt302= Dokument zosta czasowo przeniesiony pod inny adres. + +tt400= Zlecenie byo bdne, lub niemoliwe do zrealizowania przez serwer.
    Bd powstaje wtedy, kiedy serwer WWW otrzymuje do wykonania instrukcj, ktrej nie rozumie. + +tt401= Bd autoryzacji. Strona wymaga podania hasa i loginu - bd pokazuje si wtedy, gdy ktre z tych danych si nie zgadza lub zostay podane niewaciwiwe.
    Jeli liczba ta jest dua, jest to sygna dla webmastera, i kto prbuje zama haso do strony nim zabezpieczonej. + +tt403= Bd wystpuje wtedy, gdy katalog/strona do ktrego si odwoywano nie ma ustawionych waciwych praw dostpu, lub prawa te nie pozwalaj na obejrzenie zawartoci katalogu/strony. + +tt404= Sprbuj wpisa nie istniejcy adres URL (np. adres tej strony ze skasowan jedn literk). Znaczy to, e posiadasz gdzie na swoich stronach bdny link, lub link odnoszcy si do nieistniejcej strony. + +tt408= Przegldarka nie wysaa da do serwera w czasie jego oczekiwania. Moesz powtrzy danie bez jego modyfikacji w czasie pniejszym. + +tt500= Bd wewntrzny. Ten bd czsto pojawia si, gdy aplikacja CGI nie zakoczya si normalnie (podobno kady program zawiera przynajmniej jeden bd...:-). + +tt501= Serwer nie umoliwia obsugi mechanizmu. + +tt502= Serwer jest chwilowo przeciony i nie moe obsuy zlecenia. + +tt503= Serwer zdecydowa si przerwa oczekiwanie na inny zasb lub usug, i z tego powodu nie mg obsuy zlecenia. + +tt504= Serwer docelowy nie otrzyma odpowiedzi od serwera proxy, lub bramki. + +tt505= Nie obsugiwana wesja protokou HTTP. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ro.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ro.txt index 8c2d63530..f11a4b689 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ro.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ro.txt @@ -1,86 +1,59 @@ -
    - O noua vizita este definita ca fiind orice acces al unui vizitator - care nu a fost conectat la site in ultimele #VisitTimeOut# mn. -
    -
    -Numarul de masini client (adresa IP) care vin sa viziteze - site-ul (si care au vizionat cel putin o pagina).
    -Aceste date se refera la numarul de persoane fizice diferite - care au ajuns pe site in oricare din zile. -
    -
    - De cate ori o pagina a site-ului este vizionata (suma pentru - toti vizitatorii si toate vizitele).
    Aceasta informatie difera de - "Accesari" deoarece numara doar paginile HTML si nu si imaginile sau alte - tipuri de fisiere. -
    -
    - De cate ori o pagina, imagine, fisier de pe site a fost - vizionata sau descarcata (download) de catre - cineva.
    - Aceasta informatie este furnizata doar ca referinta deoarece pentru - marketing este de multe ori preferat numarul de "pagini" vazute. -
    -
    - Aceasta informatie contine traficul total de date pentru toate - paginile, imaginile si fisierele de pe site.
    - Unitatea de masura este KB, MB sau GB (KiloBytes, MegaBytes sau GigaBytes) -
    -
    - #PROG# recunoaste accesele la site rezultate dintr-o cautare efectuata cu ajutorul a - #SearchEnginesArray# din cele mai cunoscute motoare de cautare si repertoare -(ca Yahoo, Altavista, Lycos, Google, Voila, etc...). -
    -
    - Lista tuturor paginilor externe care au fost punctul de plecare (si de intrare) - in site (sunt listate doar primele #MaxNbOfRefererShown# in ordinea numarului de utilizari). - Intrarile pe site din rezultatul generat de motoarele de cautare sunt excluse aici deoarece - ele au fost deja incluse in precedenta linie a acestui tabel. -
    -
    - Acest tabel contine lista celor mai frecvente cuvinte cheie care au fost - utilizate de motoarele de cautare sau repertoare pentru a gasi acest site. - (Cuvintele cheie folosite de cele mai cunoscute #SearchEnginesArray# - motoare de cautare sau repertoare - Yahoo, Altavista, Lycos, Google, Voila, etc... - - sunt recunoscute de #PROG#). -
    -
    - Robotii sunt programe vizitator automate utilizate de multe motoare de cautare - si care scaneaza situl web pentru a-l indexa si evalua, pentru a colecta statistici - despre siturile web din Internet si/sau pentru a verifica daca situl este online.
    -#PROG# recunoaste #RobotArray# roboti. -
    -
    - Toate statisticile referitoare la timp sunt bazate pe timpul din masina care gazduieste - serverul web. -
    -
    - Aici, datele listate sunt: valori medii (calculate din toate datele intre prima - si ultima vizita) -
    -
    - Aici, datele listate sunt: insumari cumulative (calculate din toate datele intre - prima si ultima vizita) -
    - -
    Nici o descriere pentru aceasta eroare.
    -
    Cererea a fost inteleasa de server dar va fi procesata mai tarziu.
    -
    Serverul a procesat cererea dar nu exista nici un document de trimis.
    -
    Continut partial.
    -
    Documentul cerut a fost mutat si este acum la o alta adresa continuta in raspuns.
    -
    Nici o descriere pentru aceasta eroare.
    -
    Eroare de sintaxa, serverul nu a inteles cererea.
    -
    Incercare de a accesa un URL unde este necesara autentificarea cu user/parola.
    Un numar mare in acest loc poate insemna ca cineva (de exemplu un hacker) incearca sa sparga sau sa intre in site (sperand sa intre intr-o zona securizata incercand de exemplu diferite perechi user/parola).
    -
    Incercare de a accesa un URL care nu a fost configurat sa fie atins, nici macar cu o autentificare user/parola (de exemplu un URL dintr-un director care nu este definit ca accesibil).
    -
    Incercare de a accesa un URL inexistent. Aceasta eroare inseamna adesea ca exista o legatura invalida undeva pe site sau ca un vizitator a tastat gresit un URL.
    -
    Serverul a consumat prea mult timp pentru a raspunde cererii. Aceasta eroare indica adesea un script CGI lent pe care serverul a incercat sa-l aborteze sau un server web extrem de incarcat.
    -
    Eroare interna. Aceasta eroare este deseori cauzata de un program CGI care s-a terminat anormal (de exemplu prin coredump).
    -
    Cerere de actiune necunoscuta.
    -
    Cod returnat de un server HTTP care lucreaza ca un proxy sau gateway in cazul in care un server tinta real nu a raspuns cu succes cererii client.
    -
    Eroare interna server.
    -
    Depasire timp la Gateway.
    -
    Versiune HTTP nesuportata.
    +tt1=O noua vizita este definita ca fiind orice acces al unui vizitator care nu a fost conectat la site in ultimele #VisitTimeOut# mn. +tt2=Numarul de masini client (adresa IP) care vin sa viziteze site-ul (si care au vizionat cel putin o pagina).
    Aceste date se refera la numarul de persoane fizice diferite care au ajuns pe site in oricare din zile. +tt3=De cate ori o pagina a site-ului este vizionata (suma pentru toti vizitatorii si toate vizitele).
    Aceasta informatie difera de "Accesari" deoarece numara doar paginile HTML si nu si imaginile sau alte tipuri de fisiere. + +tt4=De cate ori o pagina, imagine, fisier de pe site a fost vizionata sau descarcata (download) de catre cineva.
    Aceasta informatie este furnizata doar ca referinta deoarece pentru marketing este de multe ori preferat numarul de "pagini" vazute. + +tt5=Aceasta informatie contine traficul total de date pentru toate paginile, imaginile si fisierele de pe site.
    Unitatea de masura este KB, MB sau GB (KiloBytes, MegaBytes sau GigaBytes) + +tt13=#PROG# recunoaste accesele la site rezultate dintr-o cautare efectuata cu ajutorul a #SearchEnginesArray# din cele mai cunoscute motoare de cautare si repertoare (ca Yahoo, Altavista, Lycos, Google, Voila, etc...). + +tt14=Lista tuturor paginilor externe care au fost punctul de plecare (si de intrare) in site (sunt listate doar primele #MaxNbOfRefererShown# in ordinea numarului de utilizari). Intrarile pe site din rezultatul generat de motoarele de cautare sunt excluse aici deoarece ele au fost deja incluse in precedenta linie a acestui tabel. + +tt15=Acest tabel contine lista celor mai frecvente cuvinte cheie care au fost utilizate de motoarele de cautare sau repertoare pentru a gasi acest site. (Cuvintele cheie folosite de cele mai cunoscute #SearchEnginesArray# motoare de cautare sau repertoare - Yahoo, Altavista, Lycos, Google, Voila, etc... - sunt recunoscute de #PROG#). + +tt16=Robotii sunt programe vizitator automate utilizate de multe motoare de cautare si care scaneaza situl web pentru a-l indexa si evalua, pentru a colecta statistici despre siturile web din Internet si/sau pentru a verifica daca situl este online.
    #PROG# recunoaste #RobotArray# roboti. + +tt17=Toate statisticile referitoare la timp sunt bazate pe timpul din masina care gazduieste serverul web. + +tt18=Aici, datele listate sunt: valori medii (calculate din toate datele intre prima si ultima vizita) + +tt19=Aici, datele listate sunt: insumari cumulative (calculate din toate datele intre prima si ultima vizita) + +tt201= Nici o descriere pentru aceasta eroare. + +tt202= Cererea a fost inteleasa de server dar va fi procesata mai tarziu. + +tt204= Serverul a procesat cererea dar nu exista nici un document de trimis. + +tt206= Continut partial. + +tt301= Documentul cerut a fost mutat si este acum la o alta adresa continuta in raspuns. + +tt302= Nici o descriere pentru aceasta eroare. + +tt400= Eroare de sintaxa, serverul nu a inteles cererea. + +tt401= Incercare de a accesa un URL unde este necesara autentificarea cu user/parola.
    Un numar mare in acest loc poate insemna ca cineva (de exemplu un hacker) incearca sa sparga sau sa intre in site (sperand sa intre intr-o zona securizata incercand de exemplu diferite perechi user/parola). + +tt403= Incercare de a accesa un URL care nu a fost configurat sa fie atins, nici macar cu o autentificare user/parola (de exemplu un URL dintr-un director care nu este definit ca accesibil). + +tt404= Incercare de a accesa un URL inexistent. Aceasta eroare inseamna adesea ca exista o legatura invalida undeva pe site sau ca un vizitator a tastat gresit un URL. + +tt408= Serverul a consumat prea mult timp pentru a raspunde cererii. Aceasta eroare indica adesea un script CGI lent pe care serverul a incercat sa-l aborteze sau un server web extrem de incarcat. + +tt500= Eroare interna. Aceasta eroare este deseori cauzata de un program CGI care s-a terminat anormal (de exemplu prin coredump). + +tt501= Cerere de actiune necunoscuta. + +tt502= Cod returnat de un server HTTP care lucreaza ca un proxy sau gateway in cazul in care un server tinta real nu a raspuns cu succes cererii client. + +tt503= Eroare interna server. + +tt504= Depasire timp la Gateway. + +tt505= Versiune HTTP nesuportata. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ru.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ru.txt index b178885b3..009694b34 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ru.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ru.txt @@ -1,53 +1,53 @@ -
    -Новым посетителем считается пришедший посетитель, которого не было на сайте более #VisitTimeOut# минут. -
    -
    -Количество хостов (IP адресов), которые посетили сайт (кто просмотрел как минимум одну страницу).
    -Данная цифра отражает количество различных посетителей, зашедших на сайт в течении одного дня. -
    -
    -Количество просмотренных страниц сайта (сумма всех посетителей).
    -Эти данные отличаются от "хитов", так как здесь учтены только HTML-страницы без учета графики и прочих файлов. -
    -
    -Количество страниц, изображений и файлов сайта, которые были просмотрены или скачаны посетителями.
    -Эти данные приведены только для сравнения, т.к. количество просмотренных "страниц" кораздо важнее для исследования трафика сайта. -
    -
    -Здесь отражен объем всех страниц, изображений и файлов, скачанных с сайта. -
    -
    -#PROG# распознает каждое посещение посетителя после поиска в #SearchEnginesArray# наиболее популярных поисковых серверах и каталогах (таких, как Yahoo, Altavista, Lycos, Google, Yandex, и пр...). -
    -
    -Список всех внешних страниц, на которых была размещена ссылка на данный сайт (показано только #MaxNbOfRefererShown# наиболее популярных внешних страниц). Ссылки с поисковых серверов здесь не отображены. -
    -
    -Здесь указаны наиболее распространенные ключевые слова, использованные для поиска в поисковых машинах и каталогах. -(#PROG# распознает ключевые слова с #SearchEnginesArray# поисковых серверов и каталогов). -
    -
    -Роботы (иногда называемые пауками) - это автоматические компьютерные посетители, используемые многими поисковыми системами для того, чтобы (1) индексировать и ранжировать страницу, (2) собирать статистику по сайтам и/или (3) смотреть, доступна ли до сих пор ваша страница on-line.
    -#PROG# распознает до #RobotArray# роботов. -
    - -
    Для данной ошибки нет описания.
    -
    Данный запрос был понят сервером, но будет обработан позднее.
    -
    Сервер обработал запрос, но не обнаружил данных для отправки посетителю.
    -
    Частичное содержание.
    -
    Документ был перемещен и находится по адресу, находящемуся в ответе.
    -
    Для данной ошибки нет описания.
    -
    Синтаксическая ошибка, сервер не может обработать запрос.
    -
    Попытка доступа к URL где -логин/пароль обязательны.
    Большое количество данных ошибок говорит о том, что некто (например, хакер) пытался проникнуть в закрытую область сайта с помощью перебора различных вариантов логина и пароля.
    -
    Попытка доступа к URL который не был настроен для доступа (даже с указанием логина и пароля) (к примеру, дирректория, которая не была помечена как "browsable").
    -
    Попытка доступа к несуществующему URL. Данная ошибка говорит о неправильном указании ссылки на данном сайте или устаревшей ссылке с внешнего сайта.
    -
    Сервер затратил слишком много времени на подготовку ответа на запрос. Эта ошибка возникает в случает либо медленного CGI скрипта, который сервер завершает, не дождавшись ответа, либо при сильно загруженном сервере.
    -
    Внутренняя ошибка. Такая ошибка появляется после CGI скриптов, которые завершаются с ошибкой.
    -
    Неизвестное требуемое действие.
    -
    Код, возвращенный HTTP сервером, который работает в качестве proxy или шлюза, когда настояший сервер неправильно ответил на запрос клиента
    -
    Внутренняя ошибка сервера.
    -
    Тайм-аут шлюза.
    -
    Данная версия HTTP не поддерживается.
    +tt1=Новым посетителем считается пришедший посетитель, которого не было на сайте более #VisitTimeOut# минут. + +tt2=Количество хостов (IP адресов), которые посетили сайт (кто просмотрел как минимум одну страницу).
    Данная цифра отражает количество различных посетителей, зашедших на сайт в течении одного дня. + +tt3=Количество просмотренных страниц сайта (сумма всех посетителей).
    Эти данные отличаются от "хитов", так как здесь учтены только HTML-страницы без учета графики и прочих файлов. + +tt4=Количество страниц, изображений и файлов сайта, которые были просмотрены или скачаны посетителями.
    Эти данные приведены только для сравнения, т.к. количество просмотренных "страниц" кораздо важнее для исследования трафика сайта. + +tt5=Здесь отражен объем всех страниц, изображений и файлов, скачанных с сайта. + +tt13=#PROG# распознает каждое посещение посетителя после поиска в #SearchEnginesArray# наиболее популярных поисковых серверах и каталогах (таких, как Yahoo, Altavista, Lycos, Google, Yandex, и пр...). + +tt14=Список всех внешних страниц, на которых была размещена ссылка на данный сайт (показано только #MaxNbOfRefererShown# наиболее популярных внешних страниц). Ссылки с поисковых серверов здесь не отображены. + +tt15=Здесь указаны наиболее распространенные ключевые слова, использованные для поиска в поисковых машинах и каталогах. (#PROG# распознает ключевые слова с #SearchEnginesArray# поисковых серверов и каталогов). + +tt16=Роботы (иногда называемые пауками) - это автоматические компьютерные посетители, используемые многими поисковыми системами для того, чтобы (1) индексировать и ранжировать страницу, (2) собирать статистику по сайтам и/или (3) смотреть, доступна ли до сих пор ваша страница on-line.
    #PROG# распознает до #RobotArray# роботов. + +tt201= Для данной ошибки нет описания. + +tt202= Данный запрос был понят сервером, но будет обработан позднее. + +tt204= Сервер обработал запрос, но не обнаружил данных для отправки посетителю. + +tt206= Частичное содержание. + +tt301= Документ был перемещен и находится по адресу, находящемуся в ответе. + +tt302= Для данной ошибки нет описания. + +tt400= Синтаксическая ошибка, сервер не может обработать запрос. + +tt401= Попытка доступа к URL где логин/пароль обязательны.
    Большое количество данных ошибок говорит о том, что некто (например, хакер) пытался проникнуть в закрытую область сайта с помощью перебора различных вариантов логина и пароля. + +tt403= Попытка доступа к URL который не был настроен для доступа (даже с указанием логина и пароля) (к примеру, дирректория, которая не была помечена как "browsable"). + +tt404= Попытка доступа к несуществующему URL. Данная ошибка говорит о неправильном указании ссылки на данном сайте или устаревшей ссылке с внешнего сайта. + +tt408= Сервер затратил слишком много времени на подготовку ответа на запрос. Эта ошибка возникает в случает либо медленного CGI скрипта, который сервер завершает, не дождавшись ответа, либо при сильно загруженном сервере. + +tt500= Внутренняя ошибка. Такая ошибка появляется после CGI скриптов, которые завершаются с ошибкой. + +tt501= Неизвестное требуемое действие. + +tt502= Код, возвращенный HTTP сервером, который работает в качестве proxy или шлюза, когда настояший сервер неправильно ответил на запрос клиента + +tt503= Внутренняя ошибка сервера. + +tt504= Тайм-аут шлюза. + +tt505= Данная версия HTTP не поддерживается. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-se.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-se.txt index e71725cc1..687ea4ed0 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-se.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-se.txt @@ -1,62 +1,58 @@ -
    -Ett nytt besk r en beskare (som tittar p en sida) som inte varit inne p sajten p #VisitTimeOut# minuter. -
    -
    -Antal beskare (IP-adresser) som beskte sajten (och som tittade p minst en sida).
    -Detta vrde anger antalet olika fysiska personer som ntt siten p en dag. -
    -
    -Antal gnger en sida p sajten har beskts (Summa fr alla beskare fr alla besk).
    -Detta vrde skiljer sig frn "trffar" genom att det bara rknar HTML-sidor, ej bilder eller andra filer. -
    -
    -Antal gnger en sida, bild eller fil frn sajten har beskts eller laddats hem av ngon.
    -Detta vrde finns bara med som referens eftersom antalet "sidor" som beskts oftast r bttre att titta p ur marknadsfringssynpunkt. -
    -
    -Detta vrde visar hur mycket data som har laddats hem genom alla sidor, bilder och filer p hela sajten.
    -Enheterna r Kb, Mb or Gb (KiloByte, MegaByte eller GigaByte) -
    -
    -#PROG# knner igen nr beskare hittar din sajt genom en skning i de #SearchEnginesArray# populraste skmotorerna och katalogerna (ssom Yahoo, Altavista, Lycos, Google, Voila, osv...). -
    -
    -En lista p alla externa sidor som lnkar till (och beskare anvnt fr att komma till) din sida (Bara de #MaxNbOfRefererShown# mest anvnda lnkarna visas). -Lnkar i skresultaten frn skmotorerna tas inte med hr eftersom de redan rknats in i fregende rad i tabellen. -
    -
    -Denna tabell visar de vanligaste nyckelorden som anvnts fr att hitta din sajt genom skmotorer och kataloger. -(#PROG# knner igen nyckelord frn de #SearchEnginesArray# vanligaste skmotorerna och katalogerna, ssom Yahoo, Altavista, Lycos, Google, Voila, osv...). -
    -
    -Robotar (kallas ocks Spindlar) r automatiska datoriserade beskare som anvnds av mnga skmotorer som sker av din webbsajt fr att indexera och rangordna den, samla statistik fr webbsajter och/eller se om din sajt fortfarande finns kvar.
    -#PROG# knner igen upp till #RobotArray# olika robotar. -
    -
    -All tidsrelaterad statistik baseras p klockan p webbservern. -
    -
    -Hr visas medelvrden (berknade fr alla besk frn det frsta till det sista) -
    -
    -Hr visas ackumulerade summor (berknade fr alla besk frn det frsta till det sista) -
    - -
    Ingen beskrivning finns fr detta fel.
    -
    Servern frstod begran men kommer bearbeta den senare.
    -
    Servern har bearbetat begran men har inte genererat ngot svar.
    -
    Endast en del av innehllet verfrdes.
    -
    Sidan har flyttats och ny adress finns i svaret.
    -
    Ingen beskrivning finns fr detta fel.
    -
    Syntax fel, servern frstod inte begran.
    -
    Ngon frskte komma t en URL dr inloggning krvdes.
    Ett hgt vrde hr skulle kunna innebra att ngon (t.ex. en hacker) frsker bryta sig in i din sajt (t.ex. genom att prva sig fram tills de hittar rtt lsenord).
    -
    Ngon frskte komma t en URL som r instlld s att man inte kommer t den ens med rtt lsenord (till exempel en katalog som r instlld att inte tillta blddring.).
    -
    Ngon frskte n en icke existerande URL. Detta betyder ofta att det finns en felaktig lnk p din sajt eller att ngon stavade fel till en URL.
    -
    Servern har tagit fr lng tid p sig att besvara en begran. Detta beror ofta p ett lngsamt cgi-skript eller att servern r verbelastad.
    -
    Internt fel. Detta fel orsakas ofta av att ett cgi-skript gr fel (t.ex. gr en coredump).
    -
    Oknd begran.
    -
    Felkod som genereras d en HTTP-server som arbetar som proxy eller gatewayt ine fr svar frn den verkliga servern som skulle ha svarat p klientens begran.
    -
    Internt serverfel.
    -
    Timeout i gateway
    -
    HTTP-versionen stds ej.
    +tt1=Ett nytt besk r en beskare (som tittar p en sida) som inte varit inne p sajten p #VisitTimeOut# minuter. + +tt2=Antal beskare (IP-adresser) som beskte sajten (och som tittade p minst en sida).
    Detta vrde anger antalet olika fysiska personer som ntt siten p en dag. + +tt3=Antal gnger en sida p sajten har beskts (Summa fr alla beskare fr alla besk).
    Detta vrde skiljer sig frn "trffar" genom att det bara rknar HTML-sidor, ej bilder eller andra filer. + +tt4=Antal gnger en sida, bild eller fil frn sajten har beskts eller laddats hem av ngon.
    Detta vrde finns bara med som referens eftersom antalet "sidor" som beskts oftast r bttre att titta p ur marknadsfringssynpunkt. + +tt5=Detta vrde visar hur mycket data som har laddats hem genom alla sidor, bilder och filer p hela sajten.
    Enheterna r Kb, Mb or Gb (KiloByte, MegaByte eller GigaByte) + +tt13=#PROG# knner igen nr beskare hittar din sajt genom en skning i de #SearchEnginesArray# populraste skmotorerna och katalogerna (ssom Yahoo, Altavista, Lycos, Google, Voila, osv...). + +tt14=En lista p alla externa sidor som lnkar till (och beskare anvnt fr att komma till) din sida (Bara de #MaxNbOfRefererShown# mest anvnda lnkarna visas). Lnkar i skresultaten frn skmotorerna tas inte med hr eftersom de redan rknats in i fregende rad i tabellen. + +tt15=Denna tabell visar de vanligaste nyckelorden som anvnts fr att hitta din sajt genom skmotorer och kataloger. (#PROG# knner igen nyckelord frn de #SearchEnginesArray# vanligaste skmotorerna och katalogerna, ssom Yahoo, Altavista, Lycos, Google, Voila, osv...). + +tt16=Robotar (kallas ocks Spindlar) r automatiska datoriserade beskare som anvnds av mnga skmotorer som sker av din webbsajt fr att indexera och rangordna den, samla statistik fr webbsajter och/eller se om din sajt fortfarande finns kvar.
    #PROG# knner igen upp till #RobotArray# olika robotar. + +tt17=All tidsrelaterad statistik baseras p klockan p webbservern. + +tt18=Hr visas medelvrden (berknade fr alla besk frn det frsta till det sista) + +tt19=Hr visas ackumulerade summor (berknade fr alla besk frn det frsta till det sista) + +tt201= Ingen beskrivning finns fr detta fel. + +tt202= Servern frstod begran men kommer bearbeta den senare. + +tt204= Servern har bearbetat begran men har inte genererat ngot svar. + +tt206= Endast en del av innehllet verfrdes. + +tt301= Sidan har flyttats och ny adress finns i svaret. + +tt302= Ingen beskrivning finns fr detta fel. + +tt400= Syntax fel, servern frstod inte begran. + +tt401= Ngon frskte komma t en URL dr inloggning krvdes.
    Ett hgt vrde hr skulle kunna innebra att ngon (t.ex. en hacker) frsker bryta sig in i din sajt (t.ex. genom att prva sig fram tills de hittar rtt lsenord). + +tt403= Ngon frskte komma t en URL som r instlld s att man inte kommer t den ens med rtt lsenord (till exempel en katalog som r instlld att inte tillta blddring.). + +tt404= Ngon frskte n en icke existerande URL. Detta betyder ofta att det finns en felaktig lnk p din sajt eller att ngon stavade fel till en URL. + +tt408= Servern har tagit fr lng tid p sig att besvara en begran. Detta beror ofta p ett lngsamt cgi-skript eller att servern r verbelastad. + +tt500= Internt fel. Detta fel orsakas ofta av att ett cgi-skript gr fel (t.ex. gr en coredump). + +tt501= Oknd begran. + +tt502= Felkod som genereras d en HTTP-server som arbetar som proxy eller gatewayt ine fr svar frn den verkliga servern som skulle ha svarat p klientens begran. + +tt503= Internt serverfel. + +tt504= Timeout i gateway + +tt505= HTTP-versionen stds ej. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-sk.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-sk.txt index 0abf43c3d..351a8254d 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-sk.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-sk.txt @@ -1,55 +1,54 @@ -
    -Noví návštevníci su definovaní ako ka¾dý prichádzajuci (prehliadajúci si alebo prechádzajúci), kto -sa na stránky nepripojil posledních #VisitTimeOut# min. -
    -
    -Poèet klientov (IP address), ktorí pri¹li na stránky (a ktori si prehliadli aspoò jednu stránku). -Toto èíslo prislucha èíslu roznych fyzických osob, ktori navštívili stránky ktorýkolvek jeden den. -
    -
    -Poèet kolkokrát bola stránka na tomto servery pozreta (Suèet za všetky navštevujucí a ich návštevy). -To se liši od Hitov tak, ¾e su zapoèítane iba stránky (nie obrázky a ostatne...). -
    -
    -Poèet kolkokrát bola stránka, obrázok, subor na tomto servery stiahnuta (Suèet za všetky navštevující a jejich návštevy). -Toto èíslo je uvedene kvoli porovnániu zo Stránkami. -
    -
    -Velkost všetkych stránok, obrázkov a suborov stiahnutych z tohoto serveru. -
    -
    -#PROG# rozpozná prístup na server od vyhladávanie z #SearchEnginesArray# najznámejších internetových vyhledávaèov a zoznamov (ako je Yahoo, Altavista, Lycos, Google, Voila, atd...). -
    -
    -Seznam všech externích stránek (mimo server), které byly pou¾ity jako odkaz na tento server (Je zobrazeno jen #MaxNbOfRefererShown# nejèastìjších). -Odkazy pou¾ité z vyhledávaèù nejsou zaøazeny, nebo» je obsahuje jiný údaj. -
    -
    -Tato tabulka zobrazuje zoznam nejèastejsie zadavaných výrazov, ktoré boly zadávane vo vyhladávaèoch k najdeniu tohoto serveru. -(Výrazy od #SearchEnginesArray# najznámejších vyhladávaèov a zoznamov su #PROG# rozpoznany, ako je Yahoo, Altavista, Lycos, Google, Voila, atd...). -
    -
    -Roboti (niekedy oznaèováni ako pavuci alebo èmuchalové) su poèítaèoví automat. návštevníci pou¾ivaní vela vyhledávajucimi slu¾bami k (1) indexovániu a hodnoteniu, (2) zbieraniu statistik z webov a/alebo (3) k zistsniu, ci stránky stále existuju.
    -#PROG# je schopmy rozpoznat #RobotArray# robotov. -
    - -
    Bolo vytvoreno nové miesto s datami a odeslane.
    -
    Po¾adavka bola rozeznana, ale bude vybaveny neskor.
    -
    Po¾iadavka bola rozeznana, ale nieje co odoslat spet.
    -
    Poziadavka bol zpracovany iba èiastoène.
    -
    Po¾adovaný dokument bol presunuty a adresa bola odoslana.
    -
    Dokument sa doèasne nachádza na inej adrese.
    -
    Syntaktická chyba, chybný po¾iadavok.
    -
    Po¾iadavka neobsahovala ¾iadanu autorizaciu meno/heslo pre vstup na stránku. Ak se vyskytujeèasto,pokuša sa niekdo o prielom-hack.
    -
    Po¾iadavka bola odmietnuta serverom (neprístupne data, neviditelný adresár...).
    -
    Pokus o vstup na neexistujuci stránku alebo soubor.
    -
    Cela po¾iadavka nebola serveru od klienta odoslana v po¾adovanom èase (chyba klienta alebo serveru alebo skriptu).
    -
    Chyba serveru (èasto sa vyskytuje pri chybnom zpracovaní skriptu).
    -
    Po¾iadavku, ktora bola zaslana nieje mo¾no vyriedit, pretoze ho server nevie zpracovat.
    -
    Server prijal chybnu po¾iadavku od iného serveru (proxy nebo brány).
    -
    Chyba serveru, slu¾ba nieje k dispozicii.
    -
    Vypršal èasový interval u proxy serveru alebo brány.
    -
    Nepodporovaná verzia protokolu HTTP.
    +tt1=Noví návštevníci su definovaní ako ka¾dý prichádzajuci (prehliadajúci si alebo prechádzajúci), kto sa na stránky nepripojil posledních #VisitTimeOut# min. + +tt2=Poèet klientov (IP address), ktorí pri¹li na stránky (a ktori si prehliadli aspoò jednu stránku). Toto èíslo prislucha èíslu roznych fyzických osob, ktori navštívili stránky ktorýkolvek jeden den. + +tt3=Poèet kolkokrát bola stránka na tomto servery pozreta (Suèet za všetky navštevujucí a ich návštevy). To se liši od Hitov tak, ¾e su zapoèítane iba stránky (nie obrázky a ostatne...). + +tt4=Poèet kolkokrát bola stránka, obrázok, subor na tomto servery stiahnuta (Suèet za všetky navštevující a jejich návštevy). Toto èíslo je uvedene kvoli porovnániu zo Stránkami. + +tt5=Velkost všetkych stránok, obrázkov a suborov stiahnutych z tohoto serveru. + +tt13=#PROG# rozpozná prístup na server od vyhladávanie z #SearchEnginesArray# najznámejších internetových vyhledávaèov a zoznamov (ako je Yahoo, Altavista, Lycos, Google, Voila, atd...). + +tt14=Seznam všech externích stránek (mimo server), které byly pou¾ity jako odkaz na tento server (Je zobrazeno jen #MaxNbOfRefererShown# nejèastìjších). Odkazy pou¾ité z vyhledávaèù nejsou zaøazeny, nebo» je obsahuje jiný údaj. + +tt15=Tato tabulka zobrazuje zoznam nejèastejsie zadavaných výrazov, ktoré boly zadávane vo vyhladávaèoch k najdeniu tohoto serveru. (Výrazy od #SearchEnginesArray# najznámejších vyhladávaèov a zoznamov su #PROG# rozpoznany, ako je Yahoo, Altavista, Lycos, Google, Voila, atd...). + +tt16=Roboti (niekedy oznaèováni ako pavuci alebo èmuchalové) su poèítaèoví automat. návštevníci pou¾ivaní vela vyhledávajucimi slu¾bami k (1) indexovániu a hodnoteniu, (2) zbieraniu statistik z webov a/alebo (3) k zistsniu, ci stránky stále existuju.
    #PROG# je schopmy rozpoznat #RobotArray# robotov. + +tt201= Bolo vytvoreno nové miesto s datami a odeslane. + +tt202= Po¾adavka bola rozeznana, ale bude vybaveny neskor. + +tt204= Po¾iadavka bola rozeznana, ale nieje co odoslat spet. + +tt206= Poziadavka bol zpracovany iba èiastoène. + +tt301= Po¾adovaný dokument bol presunuty a adresa bola odoslana. + +tt302= Dokument sa doèasne nachádza na inej adrese. + +tt400= Syntaktická chyba, chybný po¾iadavok. + +tt401= Po¾iadavka neobsahovala ¾iadanu autorizaciu meno/heslo pre vstup na stránku. Ak se vyskytujeèasto,pokuša sa niekdo o prielom-hack. + +tt403= Po¾iadavka bola odmietnuta serverom (neprístupne data, neviditelný adresár...). + +tt404= Pokus o vstup na neexistujuci stránku alebo soubor. + +tt408= Cela po¾iadavka nebola serveru od klienta odoslana v po¾adovanom èase (chyba klienta alebo serveru alebo skriptu). + +tt500= Chyba serveru (èasto sa vyskytuje pri chybnom zpracovaní skriptu). + +tt501= Po¾iadavku, ktora bola zaslana nieje mo¾no vyriedit, pretoze ho server nevie zpracovat. + +tt502= Server prijal chybnu po¾iadavku od iného serveru (proxy nebo brány). + +tt503= Chyba serveru, slu¾ba nieje k dispozicii. + +tt504= Vypršal èasový interval u proxy serveru alebo brány. + +tt505= Nepodporovaná verzia protokolu HTTP. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-sr.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-sr.txt index 4b04dadc3..b0ddad85b 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-sr.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-sr.txt @@ -1,72 +1,61 @@ -
    -Нова посета се дефинише као сваки нови посетилац који се није повезао на ваш сајт у току последњих #VisitTimeOut# минута. -
    -
    -Број корисничких рачунара (IP адреса) који су посећивали овај сајт (и видели најмање једну страницу).
    -Овај податак говори о броју физички различитих особа које су посетиле сајт током једног дана. -
    -
    -Колико пута је једна страница сајта била прегледана (укупно за све посетиоце током свих посета).
    -Овај податак се разликује од "погодака" по томе што броји само HTML странице за разлику од слика и других датотека. -
    -
    -Колико пута је једна страница, слика, датотека сајта била прегледана или преузета од стране некога.
    -Овај податак служи само као референца, пошто је број "страница" много кориснији за разне маркетиншке потребе. -
    -
    -Ова информација говори о количини преузетих података за све странице, слике и датотеке у оквиру вашег сајта.
    -Јединице су KB, MB или GB (килобајти, мегабајти или гигабајти). Овај податак је користан како бисте пратили остварени саобраћај у оквиру вашег сајта. -
    -
    -#PROG# препознаје сваки приступ вашем сајту након претраге помоћу #SearchEnginesArray# најпопуларнијих интернет претраживача и директоријума (Yahoo, Altavista, Lycos, Google, Voila, итд...). -
    -
    -Листа свих спољних страница на којима се налази веза коју је корисник употребио да би дошао на вашу страницу (Само #MaxNbOfRefererShown# највећих веза је приказано). -Везе које су резултат претраживања су искључене јер су већ приказане у претходном реду ове табеле. -
    -
    -Ова табела приказује листу кључних речи које се најчешће користе за проналажење вашег сајта помоћу интернет претраживача или директоријума. -(#PROG# Препознаје кључне речи #SearchEnginesArray# највећих претраживача и директоријума, међу којима су и Yahoo, Altavista, Lycos, Google, Voila, итд...). -
    -
    -Роботи су рачунарски програми које користе многи претраживачи како би анализирали вашу страницу и тиме (1) је индексирали и рангирали, (2) прикупили статистике о интернет странама и/или (3) проверили да ли је ваш сајт још увек активан.
    -#PROG# Може препознати до #RobotArray# робота. -
    -
    -Све статистике везане са временом су базиране на времену на серверу. -
    -
    -Приказани подаци овде су: просечне вредности (израчунате на основу свих података између прве и последње посете у анализираном опсегу) -
    -
    -Приказани подаци овде су: кумулативне суме (израчунате на основу свих података између прве и последње посете у анализираном опсегу) -
    -
    -Нека Трајања посета су 'непозната' јер се не могу увек израчунати. Ово су главни разлози за то:
    -- Посета није завршена када је вршено 'ажурирање'.
    -- Посета је почела у последњем сату (након 23:00) последњег дана у месецу (технички разлози спречавају #PROG# да израчуна трајање такве посете) -
    - -
    Нема описа ове грешке.
    -
    Сервер је разумео захтев, али ће га обрадити касније.
    -
    Сервер је обрадио захтев, али нема шта да пошаље кориснику.
    -
    Делимичан садржај (корисник је прекинуо отварање странице).
    -
    Тражени документ је премештен на ново место и нова адреса је дата кориснику (преусмеравање).
    -
    Нема описа ове грешке.
    -
    Синтаксна грешка. Сервер није разумео захтев.
    -
    Корисник је покушао да отвори страну за коју је потребно дати корисничко име и лозинку.
    Велики број под овом ставком може значити да неко покушава провалити на ваш сајт (нпр. испробавајући разне комбинације корисничког имена и лозинке за улазак).
    -
    Корисник је покушао да отвори страну која је подешена да јој се не може приступити, чак ни са корисничким именом и лозинком (нпр. страна унутар директоријума који није дефинисан као приступачан.).
    -
    Корисник је покушао приступити непостојећој страни. Ова грешка обично значи да негде на вашем сајту постоји неисправна веза или да је корисник неисправно унео адресу одређене странице.
    -
    Серверу је требало превише времена да одговори на захтев. Код ове грешке се обично ради о спором CGI скрипту који је сервер морао да прекине, о спорој вези корисника или о екстремном загушењу саобраћаја на серверу.
    -
    Интерна грешка. Ову грешку узрокује CGI програм који садржи неку грешку, па је прекинуо рад.
    -
    Захтевана је непозната акција.
    -
    Овај код враћа HTTP сервер који ради као посредник или пролаз, и то ако стварни сервер не одговори успешно на захтев клијента.
    -
    Интерна грешка на серверу.
    -
    Овај код враћа HTTP сервер који ради као пролаз, и то ако приликом контактирања стварног сервера истекне предвиђено време (gateway timeout).
    -
    Клијент захтева верзију HTTP-а која није подржана.
    +tt1=Нова посета се дефинише као сваки нови посетилац који се није повезао на ваш сајт у току последњих #VisitTimeOut# минута. +tt2=Број корисничких рачунара (IP адреса) који су посећивали овај сајт (и видели најмање једну страницу).
    Овај податак говори о броју физички различитих особа које су посетиле сајт током једног дана. +tt3=Колико пута је једна страница сајта била прегледана (укупно за све посетиоце током свих посета).
    Овај податак се разликује од "погодака" по томе што броји само HTML странице за разлику од слика и других датотека. +tt4=Колико пута је једна страница, слика, датотека сајта била прегледана или преузета од стране некога.
    Овај податак служи само као референца, пошто је број "страница" много кориснији за разне маркетиншке потребе. +tt5=Ова информација говори о количини преузетих података за све странице, слике и датотеке у оквиру вашег сајта.
    Јединице су KB, MB или GB (килобајти, мегабајти или гигабајти). Овај податак је користан како бисте пратили остварени саобраћај у оквиру вашег сајта. + +tt13=#PROG# препознаје сваки приступ вашем сајту након претраге помоћу #SearchEnginesArray# најпопуларнијих интернет претраживача и директоријума (Yahoo, Altavista, Lycos, Google, Voila, итд...). + +tt14=Листа свих спољних страница на којима се налази веза коју је корисник употребио да би дошао на вашу страницу (Само #MaxNbOfRefererShown# највећих веза је приказано). Везе које су резултат претраживања су искључене јер су већ приказане у претходном реду ове табеле. + +tt15=Ова табела приказује листу кључних речи које се најчешће користе за проналажење вашег сајта помоћу интернет претраживача или директоријума. (#PROG# Препознаје кључне речи #SearchEnginesArray# највећих претраживача и директоријума, међу којима су и Yahoo, Altavista, Lycos, Google, Voila, итд...). + +tt16=Роботи су рачунарски програми које користе многи претраживачи како би анализирали вашу страницу и тиме (1) је индексирали и рангирали, (2) прикупили статистике о интернет странама и/или (3) проверили да ли је ваш сајт још увек активан.
    #PROG# Може препознати до #RobotArray# робота. + +tt17=Све статистике везане са временом су базиране на времену на серверу. + +tt18=Приказани подаци овде су: просечне вредности (израчунате на основу свих података између прве и последње посете у анализираном опсегу) + +tt19=Приказани подаци овде су: кумулативне суме (израчунате на основу свих података између прве и последње посете у анализираном опсегу) + +tt20=Нека Трајања посета су 'непозната' јер се не могу увек израчунати. Ово су главни разлози за то:
    - Посета није завршена када је вршено 'ажурирање'.
    - Посета је почела у последњем сату (након 23:00) последњег дана у месецу (технички разлози спречавају #PROG# да израчуна трајање такве посете) + +tt201= Нема описа ове грешке. + +tt202= Сервер је разумео захтев, али ће га обрадити касније. + +tt204= Сервер је обрадио захтев, али нема шта да пошаље кориснику. + +tt206= Делимичан садржај (корисник је прекинуо отварање странице). + +tt301= Тражени документ је премештен на ново место и нова адреса је дата кориснику (преусмеравање). + +tt302= Нема описа ове грешке. + +tt400= Синтаксна грешка. Сервер није разумео захтев. + +tt401= Корисник је покушао да отвори страну за коју је потребно дати корисничко име и лозинку.
    Велики број под овом ставком може значити да неко покушава провалити на ваш сајт (нпр. испробавајући разне комбинације корисничког имена и лозинке за улазак). + +tt403= Корисник је покушао да отвори страну која је подешена да јој се не може приступити, чак ни са корисничким именом и лозинком (нпр. страна унутар директоријума који није дефинисан као приступачан.). + +tt404= Корисник је покушао приступити непостојећој страни. Ова грешка обично значи да негде на вашем сајту постоји неисправна веза или да је корисник неисправно унео адресу одређене странице. + +tt408= Серверу је требало превише времена да одговори на захтев. Код ове грешке се обично ради о спором CGI скрипту који је сервер морао да прекине, о спорој вези корисника или о екстремном загушењу саобраћаја на серверу. + +tt500= Интерна грешка. Ову грешку узрокује CGI програм који садржи неку грешку, па је прекинуо рад. + +tt501= Захтевана је непозната акција. + +tt502= Овај код враћа HTTP сервер који ради као посредник или пролаз, и то ако стварни сервер не одговори успешно на захтев клијента. + +tt503= Интерна грешка на серверу. + +tt504= Овај код враћа HTTP сервер који ради као пролаз, и то ако приликом контактирања стварног сервера истекне предвиђено време (gateway timeout). + +tt505= Клијент захтева верзију HTTP-а која није подржана. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-tr.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-tr.txt index 4ea944cc0..492437ed4 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-tr.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-tr.txt @@ -1,53 +1,52 @@ -
    -Yeni ziyareti, gemi #VisitTimeOut# dakika iinde sitenize balanmam ve o anda sitenize bakan kullancdr. -
    -
    -Sitenizi ziyaret eden ve en az bir sayfa gren bilgisayar (IP adresi) says. -Bu say sitenizi bir gn iinde ziyaret eden farkl kiileri temsil eder. -
    -
    -Sitedeki bir sayfann ka kere grld (Tm ziyaretilerin tm ziyatlerinin toplam). -Bu say "hits" saysndan farkldr: sadece HTML dosyalar saylr, resim ve dier dosyalar saylmaz. -
    -
    -Sitedeki sayfa, resim, ve dosyalarn biri tarafndan ka kere indirlmi veya grlm olmas. -Bu bilgi kaynak olarak verilmitir. Genelde pazarlama alannda grntlenen sayfa says tercih edilir. -
    -
    -Bu say sitenizden tm resimler, sayfalar ve dosyalar dahil indirilen toplam bilgi miktarn belirtir. -
    -
    -#PROG# sitenize en popler #SearchEnginesArray# nternet dizini ve arama motorundan gelen eriimleri anlar. -
    -
    -Sitenize balant veren (ve giri yapmak iin kullanlan) d sayfalar (Sadece en ok kullanlan #MaxNbOfRefererShown# d sayfa gsterilmitir.) -Arama motorlar tarafndan kullanlan arama sonular bu listeye dahil de idir, nk bu tabloda bir st satrda bu bilgi verilmitir. -
    -
    -Bu tablo sitenizi nternet dizinlerinden ve arama motorlarndan bulmak iin en ok kullanlan anahtar szckleri gsterir. -(#PROG# en popler #SearchEnginesArray# nternet dizini ve arama motorundan kullanlan anahtar szckleri gsterir. -
    -
    -Robotlar (baska bir deyile rmcekler) sitenizi (1) dizinlemek ve sralamak, (2) istatistik toplamak, ve/veya (3) sitenizin iler durumda olduunu kontol etmek amacyla tarayan otomatik bilgisayar programlardr. -#PROG# #RobotArray#adet robotu tanr. -
    - -
    Bu hatann aklamas yok.
    -
    Sunucu isteinizi anlad fakat daha sonra ilem grecek.
    -
    Sunucu isteinizi yerine getirdi fakat yollanacak dosya yok.
    -
    Ksmi ierik.
    -
    stenilen belge cevapta verilen baka bir adrese tanmtr.
    -
    Bu hatann aklamas yok.
    -
    Szdizimi hatas, sunucu isteinizi anlamad.
    -
    Kulannc ad ve ifre gerektiren bir URLe ulald.
    Burada yksek bir say bir korsann sitenize girmeye altn belirtebilir.
    -
    ifre kullanarak bile ulalmas yasaklanm bir URL (rnen, "baklabilir" olarak tannlanmam bir klasr.).
    -
    Varolmayan bir URLLe ulamaya alld. Bu hata genellikle sitenizin bir yerinde geersiz bir balant olduunu veya ziyaretinin URLi yanl yazmasndan kaynaklanr.
    -
    Sunucu ileme cevap vermek iin ok fazla zaman harcad. Bu genellikle yava bir CGI programnn kalabalk bir veb sunucusunda durdurulmasndan kaynaklanr.
    -
    Dahiki hata. Bu hata genellikle bir CGI programnn beklenmeyen bir ekilde sonulanmas (ekirdek bellek dkm) ile oluur.
    -
    stenilen ilem bilinmiyor.
    -
    Ulalmaya allan sunucu cevap vermeyince a geidi olarak ileyen bir HTTP sunucunun belirttii hata.
    -
    Dahili sunucu hatas.
    -
    A geidi zaman am.
    -
    HTTPnin bu srm desteklenmiyor.
    +tt1=Yeni ziyareti, gemi #VisitTimeOut# dakika iinde sitenize balanmam ve o anda sitenize bakan kullancdr. +tt2=Sitenizi ziyaret eden ve en az bir sayfa gren bilgisayar (IP adresi) says. Bu say sitenizi bir gn iinde ziyaret eden farkl kiileri temsil eder. + +tt3=Sitedeki bir sayfann ka kere grld (Tm ziyaretilerin tm ziyatlerinin toplam). Bu say "hits" saysndan farkldr: sadece HTML dosyalar saylr, resim ve dier dosyalar saylmaz. + +tt4=Sitedeki sayfa, resim, ve dosyalarn biri tarafndan ka kere indirlmi veya grlm olmas. Bu bilgi kaynak olarak verilmitir. Genelde pazarlama alannda grntlenen sayfa says tercih edilir. + +tt5=Bu say sitenizden tm resimler, sayfalar ve dosyalar dahil indirilen toplam bilgi miktarn belirtir. + +tt13=#PROG# sitenize en popler #SearchEnginesArray# nternet dizini ve arama motorundan gelen eriimleri anlar. + +tt14=Sitenize balant veren (ve giri yapmak iin kullanlan) d sayfalar (Sadece en ok kullanlan #MaxNbOfRefererShown# d sayfa gsterilmitir.) Arama motorlar tarafndan kullanlan arama sonular bu listeye dahil de idir, nk bu tabloda bir st satrda bu bilgi verilmitir. + +tt15=Bu tablo sitenizi nternet dizinlerinden ve arama motorlarndan bulmak iin en ok kullanlan anahtar szckleri gsterir. (#PROG# en popler #SearchEnginesArray# nternet dizini ve arama motorundan kullanlan anahtar szckleri gsterir. + +tt16=Robotlar (baska bir deyile rmcekler) sitenizi (1) dizinlemek ve sralamak, (2) istatistik toplamak, ve/veya (3) sitenizin iler durumda olduunu kontol etmek amacyla tarayan otomatik bilgisayar programlardr. #PROG# #RobotArray#adet robotu tanr. + +tt201= Bu hatann aklamas yok. + +tt202= Sunucu isteinizi anlad fakat daha sonra ilem grecek. + +tt204= Sunucu isteinizi yerine getirdi fakat yollanacak dosya yok. + +tt206= Ksmi ierik. + +tt301= stenilen belge cevapta verilen baka bir adrese tanmtr. + +tt302= Bu hatann aklamas yok. + +tt400= Szdizimi hatas, sunucu isteinizi anlamad. + +tt401= Kulannc ad ve ifre gerektiren bir URLe ulald.
    Burada yksek bir say bir korsann sitenize girmeye altn belirtebilir. + +tt403= ifre kullanarak bile ulalmas yasaklanm bir URL (rnen, "baklabilir" olarak tannlanmam bir klasr.). + +tt404= Varolmayan bir URLLe ulamaya alld. Bu hata genellikle sitenizin bir yerinde geersiz bir balant olduunu veya ziyaretinin URLi yanl yazmasndan kaynaklanr. + +tt408= Sunucu ileme cevap vermek iin ok fazla zaman harcad. Bu genellikle yava bir CGI programnn kalabalk bir veb sunucusunda durdurulmasndan kaynaklanr. + +tt500= Dahiki hata. Bu hata genellikle bir CGI programnn beklenmeyen bir ekilde sonulanmas (ekirdek bellek dkm) ile oluur. + +tt501= stenilen ilem bilinmiyor. + +tt502= Ulalmaya allan sunucu cevap vermeyince a geidi olarak ileyen bir HTTP sunucunun belirttii hata. + +tt503= Dahili sunucu hatas. + +tt504= A geidi zaman am. + +tt505= HTTPnin bu srm desteklenmiyor. diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-tw.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-tw.txt index 149d41ccf..ec0a2d757 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-tw.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-tw.txt @@ -1,48 +1,52 @@ -
    -쬰[`ơAqۦP}sAɶjܤ#VisitTimeOut#~|AO@C -
    -
    -쬰[HơCHqPqsӼƨӭpHơC -
    -
    -쬰Ū`ơCuO(.html)ӼơC -
    -
    -쬰eŪ`ơA]tɡAϤɡAvɵC -
    -
    -쬰eŪ`eqjpA]tɡAϤɡAvɵC -
    -
    -쬰OϥΪ̱qǷjMiJCtη|۰ʤṞ`ϥΪ#SearchEnginesArray#jMC -
    -
    -ܨ䥦䤺esܥCC -tη|CX`se#MaxNbOfRefererShown#Ӻ}C -
    -
    -oӪܨϥΪ̦bjM`ϥΪrӵnJCtη|O̱`ϥΪ#SearchEnginesArray#ӷjMrC -
    -
    -jMC(Robots)|۰ʪMҦeC
    -O`ϥΪ#RobotArray#Ӻ徹MOC -
    - -
    So~Xyz
    -
    AFѨϥΪ̪ݨD
    -
    A|BzϥΪ̪ݨDAOoSǰeX
    -
    -
    Mwg䥦aAӥBHwgMF
    -
    䤣A{bwgbOaF
    -
    yk~AAFѨϥΪ̪ݨD
    -
    ճsܻݿJKX}ӵoͿ~
    -
    ճsܥ}s}ӵoͿ~
    -
    ճsܤsb}ӵoͿ~
    -
    AOӦhɶBzoӻݨD
    -
    AoͿ~A@O CGI {oͰD
    -
    FѻݨD
    -
    A] proxy ӥ^uϥΪ̪ݨD
    -
    AoͿ~
    -
    qThO
    -
    o HTTP S䴩
    +tt1=쬰[`ơAqۦP}sAɶjܤ#VisitTimeOut#~|AO@C + +tt2=쬰[HơCHqPqsӼƨӭpHơC + +tt3=쬰Ū`ơCuO(.html)ӼơC + +tt4=쬰eŪ`ơA]tɡAϤɡAvɵC + +tt5=쬰eŪ`eqjpA]tɡAϤɡAvɵC + +tt13=쬰OϥΪ̱qǷjMiJCtη|۰ʤṞ`ϥΪ#SearchEnginesArray#jMC + +tt14=ܨ䥦䤺esܥCC tη|CX`se#MaxNbOfRefererShown#Ӻ}C + +tt15=oӪܨϥΪ̦bjM`ϥΪrӵnJCtη|O̱`ϥΪ#SearchEnginesArray#ӷjMrC + +tt16=jMC(Robots)|۰ʪMҦeC
    O`ϥΪ#RobotArray#Ӻ徹MOC + +tt201= So~Xyz + +tt202= AFѨϥΪ̪ݨD + +tt204= A|BzϥΪ̪ݨDAOoSǰeX + +tt206= eŪ + +tt301= Mwg䥦aAӥBHwgMF + +tt302= 䤣A{bwgbOaF + +tt400= yk~AAFѨϥΪ̪ݨD + +tt401= ճsܻݿJKX}ӵoͿ~ + +tt403= ճsܥ}s}ӵoͿ~ + +tt404= ճsܤsb}ӵoͿ~ + +tt408= AOӦhɶBzoӻݨD + +tt500= AoͿ~A@O CGI {oͰD + +tt501= FѻݨD + +tt502= A] proxy ӥ^uϥΪ̪ݨD + +tt503= AoͿ~ + +tt504= qThO + +tt505= o HTTP S䴩 diff --git a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ua.txt b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ua.txt index 0a33e0a9c..fd4b37476 100644 --- a/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ua.txt +++ b/wwwroot/cgi-bin/lang/tooltips_w/awstats-tt-ua.txt @@ -1,81 +1,61 @@ -
    - i i, ' ( i i) ii , i ' i ".(#VisitTimeOut#)." . -
    -
    -ii i i (IP-), i ii i i i.
    -i i i, i i i . -
    -
    - ii i i i i ii i i ii.
    -i i ii i ii "" , i HTML-i, i, .. , i. -
    -
    -ii i, i, , i .
    -i i i ii , ii i i ii i. -
    -
    - ' , ii i i, i i. i i (), (), i (). -
    -
    -#PROG# i i #SearchEnginesArray# i i i ( Altavista, Lycos, Google, Voila, AllTheWeb, i.). -
    -
    - ii i, i . ( #MaxNbOfRefererShown# ii i, i iii).
    - i i, i i i. -
    -
    - i i i i , iii i . -( #PROG# i i #SearchEnginesArray# i i i, Altavista, Lycos, Google, Voila, i ..). - ii i i ii (i ii i i), , , . -
    -
    - ( ) — i 'i "iii", i i -
      -
    1. i i ii i
    2. -
    3. ( )
    4. -
    5. , [ ]
    6. -
    - i i #PROG# i i -#RobotArray# i. -
    -
    - , ' , i, - i. -
    -
    - i (i -i , i i i i, i - i) -
    -
    - i (i -i , i i i i, i - i) -
    -
    -i i ii 'i', - . i :
    -- i i, i .
    -- i (i 23:00) i -( ii #PROG# i i). -
    - -
    i .
    -
    i , ii.
    -
    , i ii.
    -
    i.
    -
    , , i i i , iii.
    -
    i .
    -
    , i .
    -
    URL, i' i .
    ii , (, ) i i.
    -
    URL, , i i i i .
    (, URL , Internet.).
    -
    i . , i i i i , ii i URL.
    -
    iii . i i CGI-, i .
    -
    i . i CGI-.
    -
    i i.
    -
    , HTTP-, i , i iii i.
    -
    i .
    -
    - .
    -
    i HTTP i.
    \ No newline at end of file +tt1= i i, ' ( i i) ii , i ' i ".(#VisitTimeOut#)." . + +tt2=ii i i (IP-), i ii i i i.
    i i i, i i i . + +tt3= ii i i i i ii i i ii.
    i i ii i ii "" , i HTML-i, i, .. , i. + +tt4=ii i, i, , i .
    i i i ii , ii i i ii i. + +tt5= ' , ii i i, i i. i i (), (), i (). + +tt13=#PROG# i i #SearchEnginesArray# i i i ( Altavista, Lycos, Google, Voila, AllTheWeb, i.). + +tt14= ii i, i . ( #MaxNbOfRefererShown# ii i, i iii).
    i i, i i i. + +tt15= i i i i , iii i . ( #PROG# i i #SearchEnginesArray# i i i, Altavista, Lycos, Google, Voila, i ..). ii i i ii (i ii i i), , , . + +tt16= ( ) — i 'i "iii", i i
    1. i i ii i
    2. ( )
    3. , [ ]
    i i #PROG# i i #RobotArray# i. + +tt17= , ' , i, i. + +tt18= i (i i , i i i i, i i) + +tt19= i (i i , i i i i, i i) + +tt20=i i ii 'i', . i :
    - i i, i .
    - i (i 23:00) i ( ii #PROG# i i). + +tt201= i . + +tt202= i , ii. + +tt204= , i ii. + +tt206= i. + +tt301=, , i i i , iii. + +tt302= i . + +tt400= , i . + +tt401= URL, i' i .
    ii , (, ) i i. + +tt403= URL, , i i i i .
    (, URL , Internet.). + +tt404= i . , i i i i , ii i URL. + +tt408= iii . i i CGI-, i . + +tt500=i . i CGI-. + +tt501= i i. + +tt502=, HTTP-, i , i iii i. + +tt503=i . + +tt504=- . + +tt505=i HTTP i. diff --git a/wwwroot/cgi-bin/lib/mime.pm b/wwwroot/cgi-bin/lib/mime.pm index 2fe1e492d..4f88e43e2 100644 --- a/wwwroot/cgi-bin/lib/mime.pm +++ b/wwwroot/cgi-bin/lib/mime.pm @@ -17,47 +17,47 @@ %MimeHashFamily = ( 'text', 'Text file', 'page', 'HTML or XML static page', -'script', 'Dynamic HTML page or Script file', -'pl', 'Dynamic Perl Script file', -'php', 'Dynamic PHP Script file', +'script', 'Dynamic HTML page or Script', +'pl', 'Dynamic Perl', +'php', 'Dynamic PHP', 'image', 'Image', 'document', 'Document', 'package', 'Package', 'archive', 'Archive', -'audio', 'Audio file', -'video', 'Video file', -'jscript', 'JavaScript file', -'json', 'JavaScript Object Notation file', -'vbs', 'Visual Basic script', -'conf', 'Config file', -'css', 'Cascading Style Sheet file', -'xsl', 'Extensible Stylesheet Language file', +'audio', 'Audio', +'video', 'Video', +'jscript', 'JavaScript', +'json', 'JavaScript Object Notation', +'vbs', 'Visual Basic', +'conf', 'Config', +'css', 'Cascading Style Sheet', +'xsl', 'Extensible Stylesheet Language', 'runtime', 'Binary runtime', 'library', 'Binary library', 'swf', 'Adobe Flash Animation', 'flv', 'Adobe Flash Video', 'dtd', 'Document Type Definition', -'csv', 'Comma Separated Value file', -'jnlp', 'Java Web Start launch file', +'csv', 'Comma Separated Value', +'jnlp', 'Java Web Start launch', 'lit', 'Microsoft Reader e-book', 'svg', 'Scalable Vector Graphics', -'ai', 'Adobe Illustrator file', -'phshop', 'Adobe Photoshop image file', -'ttf', 'TrueType scalable font file', -'fon', 'Font file', -'pdf', 'Adobe Acrobat file', +'ai', 'Adobe Illustrator', +'phshop', 'Adobe Photoshop image', +'ttf', 'TrueType scalable font', +'fon', 'Font', +'pdf', 'Adobe Acrobat', 'dotnet', 'Dot Net Dynamic Script or File', 'mdb', 'MS Database Object', 'crystal', 'Crystal Reports data or file', 'ooffice', 'Open Office Document', 'libreoffice', 'LibreOffice Document', 'encrypt', 'Encrypted document', -'gpx', 'GPS Exchange Format file', -'diskimage', 'Disc and media file extensions', +'gpx', 'GPS Exchange Format', +'diskimage', 'Disc and media', 'vm', 'Virtual Machine image', -'torrent', 'BitTorrent File', -'gis', 'GIS File', -'ebook', 'Ebook File' +'torrent', 'BitTorrent', +'gis', 'GIS', +'ebook', 'Ebook' ); # MimeHashLib diff --git a/wwwroot/cgi-bin/plugins/geoip.pm b/wwwroot/cgi-bin/plugins/geoip.pm index 57bb1db65..c46c4ce8e 100644 --- a/wwwroot/cgi-bin/plugins/geoip.pm +++ b/wwwroot/cgi-bin/plugins/geoip.pm @@ -139,14 +139,21 @@ sub GetCountryCodeByName_geoip { # UNIQUE: NO (Several plugins using this function can be loaded) # Function called to add additionnal columns to the Hosts report. # This function is called when building rows of the report (One call for each -# row). So it allows you to add a column in report, for example with code : -# print "This is a new cell for $param"; +# row). So it allows you to add a column in report. +# The returned string is the content of the cell, the cell is build by AWStats.pl +# return code example: ### return "This is a new content for $param"; +# # Parameters: Host name or ip #----------------------------------------------------------------------------- sub ShowInfoHost_geoip { my $param="$_[0]"; + my $noRes = $Message[56]; + # <----- - if ($param eq '__title__') { + if(!$param){ return $noRes; } + + if ($param eq '__title__') + { my $NewLinkParams=${QueryString}; $NewLinkParams =~ s/(^|&)update(=\w*|$)//i; $NewLinkParams =~ s/(^|&)output(=\w*|$)//i; @@ -161,45 +168,34 @@ sub ShowInfoHost_geoip { $NewLinkParams =~ tr/&/&/s; $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; if ($NewLinkParams) { $NewLinkParams="${NewLinkParams}&"; } - print ""; - print "GeoIP
    Country
    "; - print ""; - } - elsif ($param) { - my $ip=0; - my $key; - if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { # IPv4 address - $ip=4; - $key=$param; - } - elsif ($param =~ /^[0-9A-F]*:/i) { # IPv6 address - $ip=6; - $key=$param; - } - print ""; - if ($key && $ip==4) { - my $res = TmpLookup_geoip($param); - if (!$res){$res=lc($gi->country_code_by_addr($param)) if $gi;} - if ($Debug) { debug(" Plugin $PluginName: GetCountryByIp for $param: [$res]",5); } - if ($res) { print $DomainsHashIDLib{$res}?$DomainsHashIDLib{$res}:"$Message[0]"; } - else { print "$Message[0]"; } - } - if ($key && $ip==6) { - print "$Message[0]"; - } - if (! $key) { - my $res = TmpLookup_geoip($param); - if (!$res){$res=lc($gi->country_code_by_name($param)) if $gi;} - if ($Debug) { debug(" Plugin $PluginName: GetCountryByHostname for $param: [$res]",5); } - if ($res) { print $DomainsHashIDLib{$res}?$DomainsHashIDLib{$res}:"$Message[0]"; } - else { print "$Message[0]"; } - } - print ""; + return 'GeoIP Country'; } - else { - print " "; + + if ($param =~ /^[0-9A-F]*:/i) { return $noRes; } # IPv6 address + + if ($param !~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) + { # Not IPv4 address (hostname) + my $res = TmpLookup_geoip($param); + if (!$res){$res=lc($gi->country_code_by_name($param)) if $gi;} + if ($Debug) { debug(" Plugin $PluginName: GetCountryByHostname for $param: [$res]",5); } + return ( + ($res) + ? ($DomainsHashIDLib{$res} ? $DomainsHashIDLib{$res} : $noRes) + : $noRes + ); } - return 1; + + my $res = TmpLookup_geoip($param); + if (!$res){$res=lc($gi->country_code_by_addr($param)) if $gi;} + if ($Debug) { debug(" Plugin $PluginName: GetCountryByIp for $param: [$res]",5); } + + return ( + ($res) + ? ($DomainsHashIDLib{$res} ? $DomainsHashIDLib{$res} : $noRes) + : $noRes + ); + + return $noRes; # -----> } diff --git a/wwwroot/cgi-bin/plugins/geoip2_city.pm b/wwwroot/cgi-bin/plugins/geoip2_city.pm index 2f1580b86..cb0e45730 100644 --- a/wwwroot/cgi-bin/plugins/geoip2_city.pm +++ b/wwwroot/cgi-bin/plugins/geoip2_city.pm @@ -221,13 +221,19 @@ sub AddHTMLGraph_geoip2_city { # UNIQUE: NO (Several plugins using this function can be loaded) # Function called to add additionnal columns to the Hosts report. # This function is called when building rows of the report (One call for each -# row). So it allows you to add a column in report, for example with code : -# print "This is a new cell for $param"; +# row). So it allows you to add a column in report. +# The returned string is the content of the cell, the cell is build by AWStats.pl +# return code example: ### return "This is a new content for $param"; +# # Parameters: Host name or ip #----------------------------------------------------------------------------- sub ShowInfoHost_geoip2_city { my $param="$_[0]"; + my $noRes = $Message[56]; + # <----- + if(!$param){ return $noRes; } + if ($param eq '__title__') { my $NewLinkParams=${QueryString}; @@ -245,28 +251,20 @@ sub ShowInfoHost_geoip2_city { $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; if ($NewLinkParams) { $NewLinkParams="${NewLinkParams}&"; } -# print ""; # print "GeoIP2
    Country
    "; -# print ""; - print ""; - print "GeoIP2
    City
    "; - print ""; + return "GeoIP2 City"; } - elsif ($param) - { - my ($country, $city, $subdivision) = Lookup_geoip2_city($param); -# print ""; + + my ($country, $city, $subdivision) = Lookup_geoip2_city($param); # if ($country) { print $DomainsHashIDLib{$country}?$DomainsHashIDLib{$country}:"$Message[0]"; } # else { print "$Message[0]"; } -# print ""; - print ""; - if ($city) { print EncodeToPageCode($city); } - else { print "$Message[0]"; } - print ""; + + if ($city) + { + return EncodeToPageCode($city); } - else - { print " "; } - return 1; + + return $noRes; # -----> } diff --git a/wwwroot/cgi-bin/plugins/geoip2_country.pm b/wwwroot/cgi-bin/plugins/geoip2_country.pm index e3e1573c8..d0cc9e767 100644 --- a/wwwroot/cgi-bin/plugins/geoip2_country.pm +++ b/wwwroot/cgi-bin/plugins/geoip2_country.pm @@ -121,7 +121,11 @@ sub GetCountryCodeByName_geoip2_country { #----------------------------------------------------------------------------- sub ShowInfoHost_geoip2_country { my $param="$_[0]"; - # <----- + my $noRes = $Message[56]; + + # <----- + if(!$param){ return $noRes; } + if ($param eq '__title__') { my $NewLinkParams=${QueryString}; $NewLinkParams =~ s/(^|&)update(=\w*|$)//i; @@ -137,24 +141,16 @@ sub ShowInfoHost_geoip2_country { $NewLinkParams =~ tr/&/&/s; $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; if ($NewLinkParams) { $NewLinkParams="${NewLinkParams}&"; } - print ""; - print "GeoIP2
    Country
    "; - print ""; - } - elsif ($param) { - print ""; - my $res = Lookup_geoip2_country($param); - if ($res) { - $res = lc($res); - print $DomainsHashIDLib{$res}?$DomainsHashIDLib{$res}:"$Message[0]"; - } - else { print "$Message[0]"; } - print ""; - } - else { - print " "; - } - return 1; + return "GeoIP2 Country"; + } + + my $res = Lookup_geoip2_country($param); + if ($res) { + $res = lc($res); + return ($DomainsHashIDLib{$res} ? $DomainsHashIDLib{$res} : $noRes); + } + + return $noRes; # -----> } diff --git a/wwwroot/cgi-bin/plugins/geoip6.pm b/wwwroot/cgi-bin/plugins/geoip6.pm index 6be133331..edc4e314e 100644 --- a/wwwroot/cgi-bin/plugins/geoip6.pm +++ b/wwwroot/cgi-bin/plugins/geoip6.pm @@ -146,13 +146,19 @@ sub GetCountryCodeByName_geoip6 { # UNIQUE: NO (Several plugins using this function can be loaded) # Function called to add additionnal columns to the Hosts report. # This function is called when building rows of the report (One call for each -# row). So it allows you to add a column in report, for example with code : -# print "This is a new cell for $param"; +# row). So it allows you to add a column in report. +# The returned string is the content of the cell, the cell is build by AWStats.pl +# return code example: ### return "This is a new content for $param"; +# # Parameters: Host name or ip #----------------------------------------------------------------------------- sub ShowInfoHost_geoip6 { my $param="$_[0]"; + my $noRes = $Message[56]; + # <----- + if(!$param){ return $noRes; } + if ($param eq '__title__') { my $NewLinkParams=${QueryString}; $NewLinkParams =~ s/(^|&)update(=\w*|$)//i; @@ -168,44 +174,38 @@ sub ShowInfoHost_geoip6 { $NewLinkParams =~ tr/&/&/s; $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; if ($NewLinkParams) { $NewLinkParams="${NewLinkParams}&"; } - print ""; - print "GeoIP
    Country
    "; - print ""; + return "GeoIP Country"; } - elsif ($param) { - my $ip=0; - my $key; - if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { # IPv4 address - $ip=4; - $key='::ffff:'.$param; - } - elsif ($param =~ /^[0-9A-F]*:/i) { # IPv6 address - $ip=6; - $key=$param; - } - print ""; - if ($key) { - my $res = TmpLookup_geoip6($param); - if (!$res && $gi) { - $res=lc($gi->country_code_by_addr_v6($key)); - } - if ($Debug) { debug(" Plugin $PluginName: GetCountryByIp for $key: [$res]",5); } - if ($res) { print $DomainsHashIDLib{$res}?$DomainsHashIDLib{$res}:"$Message[0]"; } - else { print "$Message[0]"; } - } - else { - my $res = TmpLookup_geoip6($param); - if (!$res){$res=lc($gi->country_code_by_name_v6($param)) if $gi;} - if ($Debug) { debug(" Plugin $PluginName: GetCountryByHostname for $param: [$res]",5); } - if ($res) { print $DomainsHashIDLib{$res}?$DomainsHashIDLib{$res}:"$Message[0]"; } - else { print "$Message[0]"; } - } - print ""; + + my $key; + if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { # IPv4 address + $key='::ffff:'.$param; + } + elsif ($param =~ /^[0-9A-F]*:/i) { # IPv6 address + $key=$param; + } + + my $res = TmpLookup_geoip6($param); + + if ($key) + { + if (!$res && $gi) { + $res=lc($gi->country_code_by_addr_v6($key)); + } + if ($Debug) { debug(" Plugin $PluginName: GetCountryByIp for $key: [$res]",5); } } else { - print " "; + if (!$res){ + $res=lc($gi->country_code_by_name_v6($param)) if $gi; + } + if ($Debug) { debug(" Plugin $PluginName: GetCountryByHostname for $param: [$res]",5); } } - return 1; + + if ($res) { + return $DomainsHashIDLib{$res} ? $DomainsHashIDLib{$res} : $noRes; + } + + return $noRes; # -----> } diff --git a/wwwroot/cgi-bin/plugins/geoip_asn_maxmind.pm b/wwwroot/cgi-bin/plugins/geoip_asn_maxmind.pm index dc08d93b8..f7aba4fcf 100644 --- a/wwwroot/cgi-bin/plugins/geoip_asn_maxmind.pm +++ b/wwwroot/cgi-bin/plugins/geoip_asn_maxmind.pm @@ -233,13 +233,20 @@ sub AddHTMLGraph_geoip_asn_maxmind { # UNIQUE: NO (Several plugins using this function can be loaded) # Function called to add additionnal columns to the Hosts report. # This function is called when building rows of the report (One call for each -# row). So it allows you to add a column in report, for example with code : -# print "This is a new cell for $param"; +# row). So it allows you to add a column in report. +# The returned string is the content of the cell, the cell is build by AWStats.pl +# return code example: ### return "This is a new content for $param"; +# # Parameters: Host name or ip #----------------------------------------------------------------------------- sub ShowInfoHost_geoip_asn_maxmind { my $param="$_[0]"; + my $noRes = $Message[56]; + my $asn = 0; + # <----- + if(!$param){ return $noRes; } + if ($param eq '__title__') { my $NewLinkParams=${QueryString}; $NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i; @@ -256,74 +263,59 @@ sub ShowInfoHost_geoip_asn_maxmind { $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; if ($NewLinkParams) { $NewLinkParams="${NewLinkParams}&"; } - print ""; - print "GeoIP
    ASN
    "; - print ""; + return "GeoIP ASN"; } - elsif ($param) { - my $ip=0; - my $key; - if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { # IPv4 address - $ip=4; - $key=$param; - } - elsif ($param =~ /^[0-9A-F]*:/i) { # IPv6 address - $ip=6; - $key=$param; - } - print ""; - my $asn = 0; - if ($key && $ip==4) { - $asn = TmpLookup_geoip_asn_maxmind($param); - if (!$asn && $type eq 'geoippureperl') - { - # Function org_by_addr does not exists in PurePerl but org_by_name do same - $asn=$geoip_asn_maxmind->org_by_name($param) if $geoip_asn_maxmind; - } - elsif (!$asn) - { - $asn=$geoip_asn_maxmind->org_by_addr($param) if $geoip_asn_maxmind; - } - if ($Debug) { debug(" Plugin $PluginName: GetASNByIp for $param: [$asn]",5); } - } - if ($key && $ip==6) { - debug(" Plugin $PluginName: IPv6 not supported by MaxMind Free DBs: $key",3); - } - if (! $key) { - $asn = TmpLookup_geoip_asn_maxmind($param); - if (!$asn && $type eq 'geoippureperl') - { - $asn=$geoip_asn_maxmind->org_by_name($param) if $geoip_asn_maxmind; - } - elsif (!$asn) - { - $asn=$geoip_asn_maxmind->org_by_name($param) if $geoip_asn_maxmind; - } - if ($Debug) { debug(" Plugin $PluginName: GetOrgByHostname for $param: [$asn]",5); } - } - if (length($asn)>0) { - my $link = ''; - my $idx = index(trim($asn), ' '); - if ($LookupLink){ - if ($idx < 0 && $asn =~ m/^A/){ $link .= $LookupLink.$asn; } - elsif (substr($asn, 0, $idx) =~ m/^A/){$link .= $LookupLink.substr($asn, 0, $idx); } - } - if ($link){ $link = "";} - if ($idx > -1 ) {$asn = substr(trim($asn), $idx+1);} - if (length($asn) <= $MAXLENGTH) { - print "$link$asn".($link ? "" : ""); - } - else { - print $link.substr($asn,0,$MAXLENGTH).'...'.($link ? "" : ""); - } - } - else { print "$Message[0]"; } - print ""; + + if ($param =~ /^[0-9A-F]*:/i) { debug(" Plugin $PluginName: IPv6 not supported by MaxMind Free DBs: $key",3); return $noRes; } # IPv6 address + + $asn = TmpLookup_geoip_asn_maxmind($param); + + if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) + { # IPv4 address + if (!$asn && $type eq 'geoippureperl') + { + # Function org_by_addr does not exists in PurePerl but org_by_name do same + $asn=$geoip_asn_maxmind->org_by_name($param) if $geoip_asn_maxmind; + } + elsif (!$asn) + { + $asn=$geoip_asn_maxmind->org_by_addr($param) if $geoip_asn_maxmind; + } + if ($Debug) { debug(" Plugin $PluginName: GetASNByIp for $param: [$asn]",5); } } - else { - print " "; + else + { #hostname + if (!$asn && $type eq 'geoippureperl') + { + $asn=$geoip_asn_maxmind->org_by_name($param) if $geoip_asn_maxmind; + } + elsif (!$asn) + { + $asn=$geoip_asn_maxmind->org_by_name($param) if $geoip_asn_maxmind; + } + if ($Debug) { debug(" Plugin $PluginName: GetOrgByHostname for $param: [$asn]",5); } + } + + if (length($asn)>0) + { + my $link = ''; + my $idx = index(trim($asn), ' '); + if ($LookupLink){ + if ($idx < 0 && $asn =~ m/^A/){ $link .= $LookupLink.$asn; } + elsif (substr($asn, 0, $idx) =~ m/^A/){$link .= $LookupLink.substr($asn, 0, $idx); } + } + if ($link){ $link = "";} + if ($idx > -1 ) {$asn = substr(trim($asn), $idx+1);} + if (length($asn) <= $MAXLENGTH) { + return "$link$asn".($link ? "" : ""); + } + else + { + return $link.substr($asn,0,$MAXLENGTH).'...'.($link ? "" : ""); + } } - return 1; + + return $noRes; # -----> } diff --git a/wwwroot/cgi-bin/plugins/geoip_city_maxmind.pm b/wwwroot/cgi-bin/plugins/geoip_city_maxmind.pm index bd244e69b..73aa9237e 100644 --- a/wwwroot/cgi-bin/plugins/geoip_city_maxmind.pm +++ b/wwwroot/cgi-bin/plugins/geoip_city_maxmind.pm @@ -4531,13 +4531,19 @@ sub GetCountryCodeByName_geoip_city_maxmind { # UNIQUE: NO (Several plugins using this function can be loaded) # Function called to add additionnal columns to the Hosts report. # This function is called when building rows of the report (One call for each -# row). So it allows you to add a column in report, for example with code : -# print "This is a new cell for $param"; +# row). So it allows you to add a column in report. +# The returned string is the content of the cell, the cell is build by AWStats.pl +# return code example: ### return "This is a new content for $param"; +# # Parameters: Host name or ip #----------------------------------------------------------------------------- sub ShowInfoHost_geoip_city_maxmind { my $param="$_[0]"; + my $noRes = $Message[56]; + # <----- + if(!$param){ return $noRes; } + if ($param eq '__title__') { my $NewLinkParams=${QueryString}; @@ -4555,102 +4561,66 @@ sub ShowInfoHost_geoip_city_maxmind { $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; if ($NewLinkParams) { $NewLinkParams="${NewLinkParams}&"; } -# print ""; -# print "GeoIP
    Country
    "; -# print ""; - print ""; - print "GeoIP
    City
    "; - print ""; + return 'GeoIP City'; } - elsif ($param) - { - # try loading our override file if we haven't yet - my $ip=0; - my $key; - if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { # IPv4 address - $ip=4; - $key=$param; - } - elsif ($param =~ /^[0-9A-F]*:/i) { # IPv6 address - $ip=6; - $key=$param; - } - if ($key && $ip==4) { - my $country; - my $city; - my @res = TmpLookup_geoip_city_maxmind($param); - if (@res){ - $country = $res[0]; - $city = $res[4]; - } - elsif ($type eq 'geoippureperl') - { - my @record = (); - @record=$geoip_city_maxmind->get_city_record($param) if $geoip_city_maxmind; - if ($Debug) { debug(" Plugin $PluginName: GetCityByIp for $param: [@record]",5); } - $country=$record[0] if @record; - $city=$record[4] if @record; - } - else - { - my $record=(); - $record=$geoip_city_maxmind->record_by_addr($param) if $geoip_city_maxmind; - if ($Debug) { debug(" Plugin $PluginName: GetCityByIp for $param: [$record]",5); } - $country=$record->country_code if $record; - $city=$record->city if $record; - } -# print ""; -# if ($country) { print $DomainsHashIDLib{$country}?$DomainsHashIDLib{$country}:"$Message[0]"; } -# else { print "$Message[0]"; } -# print ""; - print ""; - if ($city) { print EncodeToPageCode($city); } - else { print "$Message[0]"; } - print ""; + + if ($param =~ /^[0-9A-F]*:/i) { debug ("Plugin $PluginName: IPv6 not supported by GeoIP: $key"); return $noRes; } # IPv6 address + + my $country; + my $city; + my @res = TmpLookup_geoip_city_maxmind($param); + + if ($param !~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) + { # Not IPv4 address (hostname) + + if (@res){ + $country = $res[0]; + $city = $res[4]; } - if ($key && $ip==6) { - debug (" Plugin $PluginName: IPv6 not supported by GeoIP: $key"); - print ""; - print "$Message[0]"; - print ""; + elsif ($type eq 'geoippureperl') + { + my @record = (); + @record=$geoip_city_maxmind->get_city_record($param) if $geoip_city_maxmind; + if ($Debug) { debug(" Plugin $PluginName: GetCityByHostname for $param: [@record]",5); } + $country=$record[0] if @record; + $city=$record[4] if @record; } - if (! $key) { - my $country; - my $city; - my @res = TmpLookup_geoip_city_maxmind($param); - if (@res){ - $country = $res[0]; - $city = $res[4]; - } - elsif ($type eq 'geoippureperl') - { - my @record = (); - @record=$geoip_city_maxmind->get_city_record($param) if $geoip_city_maxmind; - if ($Debug) { debug(" Plugin $PluginName: GetCityByHostname for $param: [@record]",5); } - $country=$record[0] if @record; - $city=$record[4] if @record; - } - else - { - my $record=(); - $record=$geoip_city_maxmind->record_by_name($param) if $geoip_city_maxmind; - if ($Debug) { debug(" Plugin $PluginName: GetCityByHostname for $param: [$record]",5); } - $country=$record->country_code if $record; - $city=$record->city if $record; - } -# print ""; -# if ($country) { print $DomainsHashIDLib{$country}?$DomainsHashIDLib{$country}:"$Message[0]"; } -# else { print "$Message[0]"; } -# print ""; - print ""; - if ($city) { print EncodeToPageCode($city); } - else { print "$Message[0]"; } - print ""; + else + { + my $record=(); + $record=$geoip_city_maxmind->record_by_name($param) if $geoip_city_maxmind; + if ($Debug) { debug(" Plugin $PluginName: GetCityByHostname for $param: [$record]",5); } + $country=$record->country_code if $record; + $city=$record->city if $record; } } + + # try loading our override file if we haven't yet + my $ip=0; + my $key; + + if (@res){ + $country = $res[0]; + $city = $res[4]; + } + elsif ($type eq 'geoippureperl') + { + my @record = (); + @record=$geoip_city_maxmind->get_city_record($param) if $geoip_city_maxmind; + if ($Debug) { debug(" Plugin $PluginName: GetCityByIp for $param: [@record]",5); } + $country=$record[0] if @record; + $city=$record[4] if @record; + } else - { print " "; } - return 1; + { + my $record=(); + $record=$geoip_city_maxmind->record_by_addr($param) if $geoip_city_maxmind; + if ($Debug) { debug(" Plugin $PluginName: GetCityByIp for $param: [$record]",5); } + $country=$record->country_code if $record; + $city=$record->city if $record; + } + + return (($city) ? EncodeToPageCode($city) : $noRes); # -----> } diff --git a/wwwroot/cgi-bin/plugins/geoip_isp_maxmind.pm b/wwwroot/cgi-bin/plugins/geoip_isp_maxmind.pm index e7a1751fb..336fdd6fb 100644 --- a/wwwroot/cgi-bin/plugins/geoip_isp_maxmind.pm +++ b/wwwroot/cgi-bin/plugins/geoip_isp_maxmind.pm @@ -210,13 +210,19 @@ sub AddHTMLGraph_geoip_isp_maxmind { # UNIQUE: NO (Several plugins using this function can be loaded) # Function called to add additionnal columns to the Hosts report. # This function is called when building rows of the report (One call for each -# row). So it allows you to add a column in report, for example with code : -# print "This is a new cell for $param"; +# row). So it allows you to add a column in report. +# The returned string is the content of the cell, the cell is build by AWStats.pl +# return code example: ### return "This is a new content for $param"; +# # Parameters: Host name or ip #----------------------------------------------------------------------------- sub ShowInfoHost_geoip_isp_maxmind { my $param="$_[0]"; + my $noRes = $Message[56]; + # <----- + if(!$param){ return $noRes; } + if ($param eq '__title__') { my $NewLinkParams=${QueryString}; $NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i; @@ -233,75 +239,46 @@ sub ShowInfoHost_geoip_isp_maxmind { $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; if ($NewLinkParams) { $NewLinkParams="${NewLinkParams}&"; } - print ""; - print "GeoIP
    ISP
    "; - print ""; + return "GeoIP ISP"; } - elsif ($param) { - my $ip=0; - my $key; - if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { # IPv4 address - $ip=4; - $key=$param; - } - elsif ($param =~ /^[0-9A-F]*:/i) { # IPv6 address - $ip=6; - $key=$param; - } - print ""; - if ($key && $ip==4) { - my $isp = TmpLookup_geoip_isp_maxmind($param); - if (!$isp && $type eq 'geoippureperl') - { - # Function isp_by_addr does not exists in PurePerl but isp_by_name do same - $isp=$geoip_isp_maxmind->isp_by_name($param) if $geoip_isp_maxmind; - } - elsif (!$isp) - { - # Function isp_by_addr does not exits, so we use org_by_addr - $isp=$geoip_isp_maxmind->org_by_addr($param) if $geoip_isp_maxmind; - } - if ($Debug) { debug(" Plugin $PluginName: GetIspByIp for $param: [$isp]",5); } - if ($isp) { - if (length($isp) <= $MAXLENGTH) { - print "$isp"; - } - else { - print substr($isp,0,$MAXLENGTH).'...'; - } - } - else { print "$Message[0]"; } - } - if ($key && $ip==6) { - print "$Message[0]"; - } - if (! $key) { - my $isp = TmpLookup_geoip_isp_maxmind($param); - if (!$isp && $type eq 'geoippureperl') - { - $isp=$geoip_isp_maxmind->isp_by_name($param) if $geoip_isp_maxmind; - } - elsif (!$isp) - { - $isp=$geoip_isp_maxmind->isp_by_name($param) if $geoip_isp_maxmind; - } - if ($Debug) { debug(" Plugin $PluginName: GetIspByHostname for $param: [$isp]",5); } - if ($isp) { - if (length($isp) <= $MAXLENGTH) { - print "$isp"; - } - else { - print substr($isp,0,$MAXLENGTH).'...'; - } - } - else { print "$Message[0]"; } - } - print ""; + + if ($param =~ /^[0-9A-F]*:/i) { return $noRes; } # IPv6 address + + my $isp = TmpLookup_geoip_isp_maxmind($param); + + if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) + { # IPv4 + if (!$isp && $type eq 'geoippureperl') + { + # Function isp_by_addr does not exists in PurePerl but isp_by_name do same + $isp=$geoip_isp_maxmind->isp_by_name($param) if $geoip_isp_maxmind; + } + elsif (!$isp) + { + # Function isp_by_addr does not exits, so we use org_by_addr + $isp=$geoip_isp_maxmind->org_by_addr($param) if $geoip_isp_maxmind; + } + if ($Debug) { debug(" Plugin $PluginName: GetIspByIp for $param: [$isp]",5); } + } - else { - print " "; + else + { #hostname + if (!$isp && $type eq 'geoippureperl') + { + $isp=$geoip_isp_maxmind->isp_by_name($param) if $geoip_isp_maxmind; + } + elsif (!$isp) + { + $isp=$geoip_isp_maxmind->isp_by_name($param) if $geoip_isp_maxmind; + } + if ($Debug) { debug(" Plugin $PluginName: GetIspByHostname for $param: [$isp]",5); } + } + + if ($isp) { + return ((length($isp) <= $MAXLENGTH) ? "$isp" : substr($isp,0,$MAXLENGTH).'...'); } - return 1; + + return $noRes; # -----> } diff --git a/wwwroot/cgi-bin/plugins/geoip_org_maxmind.pm b/wwwroot/cgi-bin/plugins/geoip_org_maxmind.pm index c2d0ab927..f6a028863 100644 --- a/wwwroot/cgi-bin/plugins/geoip_org_maxmind.pm +++ b/wwwroot/cgi-bin/plugins/geoip_org_maxmind.pm @@ -210,13 +210,19 @@ sub AddHTMLGraph_geoip_org_maxmind { # UNIQUE: NO (Several plugins using this function can be loaded) # Function called to add additionnal columns to the Hosts report. # This function is called when building rows of the report (One call for each -# row). So it allows you to add a column in report, for example with code : -# print "This is a new cell for $param"; +# row). So it allows you to add a column in report. +# The returned string is the content of the cell, the cell is build by AWStats.pl +# return code example: ### return "This is a new content for $param"; +# # Parameters: Host name or ip #----------------------------------------------------------------------------- sub ShowInfoHost_geoip_org_maxmind { my $param="$_[0]"; + my $noRes = $Message[56]; + # <----- + if(!$param){ return $noRes; } + if ($param eq '__title__') { my $NewLinkParams=${QueryString}; $NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i; @@ -233,74 +239,45 @@ sub ShowInfoHost_geoip_org_maxmind { $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; if ($NewLinkParams) { $NewLinkParams="${NewLinkParams}&"; } - print ""; - print "GeoIP
    Org
    "; - print ""; + return "GeoIP Org"; } - elsif ($param) { - my $ip=0; - my $key; - if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { # IPv4 address - $ip=4; - $key=$param; - } - elsif ($param =~ /^[0-9A-F]*:/i) { # IPv6 address - $ip=6; - $key=$param; - } - print ""; - if ($key && $ip==4) { - my $org = TmpLookup_geoip_org_maxmind($param); - if (!$org && $type eq 'geoippureperl') - { - # Function org_by_addr does not exists in PurePerl but org_by_name do same - $org=$geoip_org_maxmind->org_by_name($param) if $geoip_org_maxmind; - } - elsif(!$org) - { - $org=$geoip_org_maxmind->org_by_addr($param) if $geoip_org_maxmind; - } - if ($Debug) { debug(" Plugin $PluginName: GetOrgByIp for $param: [$org]",5); } - if ($org) { - if (length($org) <= $MAXLENGTH) { - print "$org"; - } - else { - print substr($org,0,$MAXLENGTH).'...'; - } - } - else { print "$Message[0]"; } - } - if ($key && $ip==6) { - print "$Message[0]"; - } - if (! $key) { - my $org = TmpLookup_geoip_org_maxmind($param); - if (!$org && $type eq 'geoippureperl') - { - $org=$geoip_org_maxmind->org_by_name($param) if $geoip_org_maxmind; - } - elsif(!$org) - { - $org=$geoip_org_maxmind->org_by_name($param) if $geoip_org_maxmind; - } - if ($Debug) { debug(" Plugin $PluginName: GetOrgByHostname for $param: [$org]",5); } - if ($org) { - if (length($org) <= $MAXLENGTH) { - print "$org"; - } - else { - print substr($org,0,$MAXLENGTH).'...'; - } - } - else { print "$Message[0]"; } - } - print ""; + + if ($param =~ /^[0-9A-F]*:/i) { return $noRes; } # IPv6 address + + my $org = TmpLookup_geoip_org_maxmind($param); + + if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) + { # IPv4 address + if (!$org && $type eq 'geoippureperl') + { + # Function org_by_addr does not exists in PurePerl but org_by_name do same + $org=$geoip_org_maxmind->org_by_name($param) if $geoip_org_maxmind; + } + elsif(!$org) + { + $org=$geoip_org_maxmind->org_by_addr($param) if $geoip_org_maxmind; + } + if ($Debug) { debug(" Plugin $PluginName: GetOrgByIp for $param: [$org]",5); } } - else { - print " "; + else + { #hostname + if (!$org && $type eq 'geoippureperl') + { + $org=$geoip_org_maxmind->org_by_name($param) if $geoip_org_maxmind; + } + elsif(!$org) + { + $org=$geoip_org_maxmind->org_by_name($param) if $geoip_org_maxmind; + } + if ($Debug) { debug(" Plugin $PluginName: GetOrgByHostname for $param: [$org]",5); } } - return 1; + + if ($org) + { + return ((length($org) <= $MAXLENGTH) ? "$org" : substr($org,0,$MAXLENGTH).'...'); + } + + return $noRes; # -----> } diff --git a/wwwroot/cgi-bin/plugins/geoip_region_maxmind.pm b/wwwroot/cgi-bin/plugins/geoip_region_maxmind.pm index f6dd4a680..5cdddad4d 100644 --- a/wwwroot/cgi-bin/plugins/geoip_region_maxmind.pm +++ b/wwwroot/cgi-bin/plugins/geoip_region_maxmind.pm @@ -353,13 +353,19 @@ sub GetCountryCodeByName_geoip_region_maxmind { # UNIQUE: NO (Several plugins using this function can be loaded) # Function called to add additionnal columns to the Hosts report. # This function is called when building rows of the report (One call for each -# row). So it allows you to add a column in report, for example with code : -# print "This is a new cell for $param"; +# row). So it allows you to add a column in report. +# The returned string is the content of the cell, the cell is build by AWStats.pl +# return code example: ### return "This is a new content for $param"; +# # Parameters: Host name or ip #----------------------------------------------------------------------------- sub ShowInfoHost_geoip_region_maxmind { my $param="$_[0]"; + my $noRes = $Message[56]; + # <----- + if(!$param){ return $noRes; } + if ($param eq '__title__') { my $NewLinkParams=${QueryString}; $NewLinkParams =~ s/(^|&|&)update(=\w*|$)//i; @@ -376,91 +382,60 @@ sub ShowInfoHost_geoip_region_maxmind { $NewLinkParams =~ s/^&//; $NewLinkParams =~ s/&$//; if ($NewLinkParams) { $NewLinkParams="${NewLinkParams}&"; } - print ""; - print "GeoIP
    Region
    "; - print ""; + return "GeoIP Region"; } - elsif ($param) { - # try loading our override file if we haven't yet - if (!$LoadedOverride){&LoadOverrideFile_geoip_region_maxmind();} - my $ip=0; - my $key; - if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { # IPv4 address - $ip=4; - $key=$param; - } - elsif ($param =~ /^[0-9A-F]*:/i) { # IPv6 address - $ip=6; - $key=$param; - } - print ""; - if ($key && $ip==4) { - my ($res1,$res2,$countryregion)=(); - my @res = TmpLookup_geoip_region_maxmind($param); - if (@res){ - $res1 = $res[0]; - $res2 = $res[1]; - }else{ - ($res1,$res2)=$geoip_region_maxmind->region_by_name($param) if $geoip_region_maxmind; - } - if ($Debug) { debug(" Plugin $PluginName: GetRegionByIp for $param: [${res1}_${res2}]",5); } - if (! $PluginsLoaded{'init'}{'geoip'}) { - # Show country - if ($res1 =~ /\w\w/) { print $DomainsHashIDLib{lc($res1)}||uc($res1); } - else { print "$Message[0]"; } - # Show region - if ($res1 =~ /\w\w/ && $res2 =~ /\w\w/) { - print " ("; - print $region{lc($res1)}{uc($res2)}; - print ")"; - } - } - else { - # Show region - if ($res1 =~ /\w\w/ && $res2 =~ /\w\w/) { - print $region{lc($res1)}{uc($res2)}; - } - else { print "$Message[0]"; } - } - } - if ($key && $ip==6) { - print "$Message[0]"; - } - if (! $key) { - my ($res1,$res2,$countryregion)=(); - my @res = TmpLookup_geoip_region_maxmind($param); - if (@res){ - $res1 = $res[0]; - $res2 = $res[1]; - }else{ - ($res1,$res2)=$geoip_region_maxmind->region_by_name($param) if $geoip_region_maxmind; - } - if ($Debug) { debug(" Plugin $PluginName: GetRegionByName for $param: [${res1}_${res2}]",5); } - if (! $PluginsLoaded{'init'}{'geoip'}) { - # Show country - if ($res1 =~ /\w\w/) { print $DomainsHashIDLib{lc($res1)}||uc($res1); } - else { print "$Message[0]"; } - # Show region - if ($res1 =~ /\w\w/ && $res2 =~ /\w\w/) { - print " ("; - print $region{lc($res1)}{uc($res2)}; - print ")"; - } - } - else { - # Show region - if ($res1 =~ /\w\w/ && $res2 =~ /\w\w/) { - print $region{lc($res1)}{uc($res2)}; - } - else { print "$Message[0]"; } - } - } - print ""; - } - else { - print " "; + + if ($param =~ /^[0-9A-F]*:/i) { return $noRes; } # IPv6 address + + my ($res1,$res2,$countryregion)=(); + my @res = TmpLookup_geoip_region_maxmind($param); + + # try loading our override file if we haven't yet + if (!$LoadedOverride){&LoadOverrideFile_geoip_region_maxmind();} + + if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) + { # IPv4 address + if (@res){ + $res1 = $res[0]; + $res2 = $res[1]; + }else{ + ($res1,$res2)=$geoip_region_maxmind->region_by_name($param) if $geoip_region_maxmind; + } + if ($Debug) { debug(" Plugin $PluginName: GetRegionByIp for $param: [${res1}_${res2}]",5); } } - return 1; + else + { + if (@res){ + $res1 = $res[0]; + $res2 = $res[1]; + }else{ + ($res1,$res2)=$geoip_region_maxmind->region_by_name($param) if $geoip_region_maxmind; + } + if ($Debug) { debug(" Plugin $PluginName: GetRegionByName for $param: [${res1}_${res2}]",5); } + } + + if (! $PluginsLoaded{'init'}{'geoip'}) + { # Show country + my $html = ''; + if ($res1 =~ /\w\w/) + { + $html .= $DomainsHashIDLib{lc($res1)}||uc($res1); + } + + # Show region + if ($res1 =~ /\w\w/ && $res2 =~ /\w\w/) { + $html .= " (" . $region{lc($res1)}{uc($res2)} . ")"; + } + + return $html; + } + + # Show region + if ($res1 =~ /\w\w/ && $res2 =~ /\w\w/) { + return $region{lc($res1)}{uc($res2)}; + } + + return $noRes; # -----> } diff --git a/wwwroot/cgi-bin/plugins/hostinfo.pm b/wwwroot/cgi-bin/plugins/hostinfo.pm index 1f0ac6994..355daadbc 100644 --- a/wwwroot/cgi-bin/plugins/hostinfo.pm +++ b/wwwroot/cgi-bin/plugins/hostinfo.pm @@ -96,32 +96,34 @@ EOF #----------------------------------------------------------------------------- sub ShowInfoHost_hostinfo { my $param="$_[0]"; + my $noRes = $Message[56]; + my $keyforwhois; + # <----- + if(!$param){ return $noRes; } + if ($param eq '__title__') { - print "$Message[114]"; + return $Message[114]; } - elsif ($param) { - my $keyforwhois; - if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { # IPv4 address - $keyforwhois=$param; - } - elsif ($param =~ /^[0-9A-F]*:/i) { # IPv6 address - $keyforwhois=$param; - } - else { # Hostname - $param =~ /([-\w]+\.[-\w]+\.(?:au|uk|jp|nz))$/ or $param =~ /([-\w]+\.[-\w]+)$/; - $keyforwhois=$1; - } - print ""; -# if ($keyforwhois) { print "?"; } - if ($keyforwhois) { print "?"; } - else { print " " } - print ""; + + if ($param =~ /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/) { # IPv4 address + $keyforwhois=$param; } - else { - print " "; + elsif ($param =~ /^[0-9A-F]*:/i) + { # IPv6 address + $keyforwhois=$param; } - return 1; + else + { # Hostname + $param =~ /([-\w]+\.[-\w]+\.(?:au|uk|jp|nz))$/ or $param =~ /([-\w]+\.[-\w]+)$/; + $keyforwhois=$1; + } + + return ( + ($keyforwhois) + ? '?' + : $noRes + ); # -----> } diff --git a/wwwroot/cgi-bin/plugins/tooltips.pm b/wwwroot/cgi-bin/plugins/tooltips.pm index 254d219ce..c73e1b19a 100644 --- a/wwwroot/cgi-bin/plugins/tooltips.pm +++ b/wwwroot/cgi-bin/plugins/tooltips.pm @@ -16,26 +16,24 @@ no strict "refs"; - #----------------------------------------------------------------------------- # PLUGIN VARIABLES #----------------------------------------------------------------------------- # <----- # ENTER HERE THE MINIMUM AWSTATS VERSION REQUIRED BY YOUR PLUGIN # AND THE NAME OF ALL FUNCTIONS THE PLUGIN MANAGE. -my $PluginNeedAWStatsVersion="6.1"; -my $PluginHooksFunctions="AddHTMLStyles AddHTMLBodyHeader"; +my $PluginNeedAWStatsVersion="8.0"; +my $PluginHooksFunctions="AddHTMLStyles getTooltip"; # -----> # <----- # IF YOUR PLUGIN NEED GLOBAL VARIABLES, THEY MUST BE DECLARED HERE. use vars qw/ -$TOOLTIPWIDTH +$TOOLTIPLIST /; # -----> - #----------------------------------------------------------------------------- # PLUGIN FUNCTION: Init_pluginname #----------------------------------------------------------------------------- @@ -47,14 +45,13 @@ sub Init_tooltips { # ENTER HERE CODE TO DO INIT PLUGIN ACTIONS debug(" Plugin tooltips: InitParams=$InitParams",1); $TOOLTIPON=1; - $TOOLTIPWIDTH=380; # Width of tooltips + $TOOLTIPLIST = &_ReadAndOutputTooltipFile($Lang); # -----> return ($checkversion?$checkversion:"$PluginHooksFunctions"); } - #----------------------------------------------------------------------------- # PLUGIN FUNCTION: AddHTMLStyles_pluginname # UNIQUE: NO (Several plugins using this function can be loaded) @@ -62,102 +59,28 @@ sub Init_tooltips { #----------------------------------------------------------------------------- sub AddHTMLStyles_tooltips { # <----- - print "div { font: 12px 'Arial','Verdana','Helvetica', sans-serif; text-align: justify; }\n"; - print ".CTooltip { position:absolute; top: 0px; left: 0px; z-index: 2; width: ${TOOLTIPWIDTH}px; visibility:hidden; font: 8pt 'MS Comic Sans','Arial',sans-serif; background-color: #FFFFE6; padding: 8px; border: 1px solid black; }\n"; - return 1; + return '.CTooltip { position:absolute; top: 0px; left: 0px; z-index: 2; width: ${TOOLTIPWIDTH}px; visibility:hidden; background-color: #FFFFE6; padding: 8px; border: 1px solid black; }'; # -----> } #----------------------------------------------------------------------------- -# PLUGIN FUNCTION: AddHTMLBodyHeader_pluginname +# PLUGIN FUNCTION: getTooltip_pluginname # UNIQUE: NO (Several plugins using this function can be loaded) -# Function called to Add HTML code at beginning of BODY section. +# Function called to get the tooltip by number. #----------------------------------------------------------------------------- -sub AddHTMLBodyHeader_tooltips { +sub getTooltip_tooltips { # <----- - if ($FrameName ne 'mainleft') { - - # GET AND WRITE THE TOOLTIP STRINGS - #--------------------------------------------------------------------- - &_ReadAndOutputTooltipFile($Lang); - - # WRITE TOOLTIPS JAVASCRIPT CODE - #--------------------------------------------------------------------- - # Position .style.pixelLeft/.pixelHeight/.pixelWidth/.pixelTop IE OK Opera OK - # .style.left/.height/.width/.top IE456 OK Netscape67 OK XHTML OK - # document.getElementById IE456 OK Opera OK Netscape67 OK XHTML OK - # document.body.offsetWidth|document.body.style.pixelWidth IE OK Opera OK Netscape OK XHTML KO Visible width of container - # document.documentElement.offsetWidth XHTML OK Visible width of container - # tooltipOBJ.offsetWidth|tooltipOBJ.style.pixelWidth IE OK Opera OK Netscape OK Width of an object - # event.clientXY IE OK Opera OK Netscape KO XHTML KO Position of mouse - # window.innerHeight IE OK Netscape OK Height of container - - # window.pageYOffset ? - # document.body.scrollTop IE OK Opera OK Netscape OK XHTML KO Vertical position of scrollbar - - my $docwidth="document.body.offsetWidth"; - my $doctop="document.body.scrollTop"; - if ($BuildReportFormat eq 'xhtml' || $BuildReportFormat eq 'xml') { - $docwidth="document.documentElement.offsetWidth"; - $doctop="document.documentElement.scrollTop"; - } - - print < -function ShowTip(fArg) -{ - var tooltipOBJ = (document.getElementById) ? document.getElementById('tt' + fArg) : eval("document.all['tt" + fArg + "']"); - if (tooltipOBJ != null) { - var tooltipLft = ($docwidth?$docwidth:document.body.style.pixelWidth) - (tooltipOBJ.offsetWidth?tooltipOBJ.offsetWidth:(tooltipOBJ.style.pixelWidth?tooltipOBJ.style.pixelWidth:$TOOLTIPWIDTH)) - 30; - var tooltipTop = 10; - if (navigator.appName == 'Netscape') { - tooltipTop = ($doctop>=0?$doctop+10:event.clientY+10); - tooltipOBJ.style.top = tooltipTop+"px"; - tooltipOBJ.style.left = tooltipLft+"px"; - } - else { - tooltipTop = ($doctop>=0?$doctop+10:event.clientY+10); - tooltipTop = (document.body.scrollTop>=0?document.body.scrollTop+10:event.clientY+10); -EOF - # Seul IE en HTML a besoin de code suppl�mentaire. IE en xhtml est OK - if ($BuildReportFormat ne 'xhtml' && $BuildReportFormat ne 'xml') { -print < tooltipLft) && (event.clientY < (tooltipOBJ.scrollHeight?tooltipOBJ.scrollHeight:tooltipOBJ.style.pixelHeight) + 10)) { - tooltipTop = ($doctop?$doctop:document.body.offsetTop) + event.clientY + 20; - } -EOF - } -print < - -EOF - - } - return 1; + my $tooltipnb = shift; + return $TOOLTIPLIST{'tt' . $tooltipnb}; # -----> } - #------------------------------------------------------------------------------ -# Function: Get the tooltip texts for a specified language and write it +# Function: Get the tooltip texts for a specified language and set it global # Parameters: LanguageId # Input: $DirLang $DIR -# Output: Full tooltips text +# Output: None # Return: None #------------------------------------------------------------------------------ sub _ReadAndOutputTooltipFile { @@ -169,6 +92,7 @@ sub _ReadAndOutputTooltipFile { my $FileLang=''; my $logtype=lc($LogType ne 'S'?$LogType:'W'); + foreach my $dir (@PossibleLangDir) { my $searchdir=$dir; if ($searchdir && (!($searchdir =~ /\/$/)) && (!($searchdir =~ /\\$/)) ) { $searchdir .= "/"; } @@ -191,6 +115,7 @@ sub _ReadAndOutputTooltipFile { my $aws_NbOfSearchEngines = scalar keys %SearchEnginesHashLib; while () { if ($_ =~ /\ + + + Algeria + + + Switzerland + + + Cameroon + + + North Macedonia, Republic of + + + Botswana + + + Kenya + + + Jordan + + + Mexico + + + + + + + + + + + + + + + + + + United Arab Emirates + + + + + Belize + + + + + Brazil + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sierra Leone + + + + + Mali + + + Congo, Democratic Republic of the + + + Italy + + + + + + + + Somalia + + + Somaliland + + + + Afghanistan + + + Bangladesh + + + + + + + + + + + + + + Dominican Republic + + + + + Guinea-Bissau + + + + + + + + + + + Ghana + + + Austria + + + Sweden + + + + + + + + + + + + + + + Turkey + + + + + + Uganda + + + Mozambique + + + + + + + + New Zealand + + + + + + + + + + + + Cuba + + + + + + + + + + + Venezuela, Bolivarian Republic of + + + + + + + + + + + + + + + + Portugal + + + + + + + + + + + Colombia + + + Mauritania + + + + + Angola + + + + + Germany + + + + + + + + Thailand + + + + + + + + + + + + Papua New Guinea + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Iraq + + + Croatia + + + + + + + + + + + + + + + + + + + + + Greenland + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Niger + + + Denmark + + + + + + + + + + + + + + + + + + Latvia + + + Romania + + + Zambia + + + Myanmar + + + + + + + + + + + + + + + + + + + + + + + Ethiopia + + + Guatemala + + + Suriname + + + Czech Republic + + + Chad + + + Albania + + + Finland + + + + + + + + + + + + + + + + + + + + + + Syrian Arab Republic + + + Kyrgyzstan + + + Solomon Islands + + + + + + + + + + + + + + + + + + + + + + + + + + + Oman + + + + + + Panama + + + + + + + + Argentina + + + + + + + + United Kingdom + + + + + + + + + + + + + + + + + + + + + + + + + + + + Costa Rica + + + + + Paraguay + + + Guinea + + + + + Ireland + + + + + + Nigeria + + + + + + Tunisia + + + + + Poland + + + Namibia + + + South Africa + + + Egypt + + + Tanzania, United Republic of + + + + + + + Saudi Arabia + + + + + + + + Vietnam, Socialist Republic of + + + + + + + + + + + + + Russian Federation + + + + + + + + + + + + + + Southern Kuril Islands + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Crimea + + + + Haiti + + + + + + + Bosnia and Herzegovina + + + India + + + + + + + + + + + + + + + Canada + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + El Salvador + + + Guyana + + + Belgium + + + Equatorial Guinea + + + + + Lesotho + + + Bulgaria + + + Burundi + + + Djibouti + + + Azerbaijan + + + + + + Artsakh, Republic of + + + + + + Iran, Islamic Republic of + + + + + + + Malaysia + + + + + + + + + + + + + + + + + + Philippines + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Uruguay + + + Congo, Republic of the + + + Estonia + + + + + + + + Rwanda + + + Armenia + + + Senegal + + + Togo + + + Spain + + + + + + + + + + + + + + + Gabon + + + + + Hungary + + + Malawi + + + Tajikistan + + + Cambodia + + + + + + + Korea, Republic of + + + + + + + + + + + + Honduras + + + + + Iceland + + + Nicaragua + + + Chile + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Morocco + + + + Western Sahara + + + Sahrawi Arab Democratic Republic + + + + + Liberia + + + Central African Republic + + + Slovakia + + + Lithuania + + + Zimbabwe + + + Sri Lanka + + + + + + Israel + + + + State of Palestine + + + Gaza Strip + + + West Bank + + + + + + Lao People's Democratic Republic + + + Korea, Democratic People's Republic of + + + Greece + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Turkmenistan + + + Ecuador + + + + + + + + + + + + + Benin + + + Slovenia + + + Norway + + Svalbard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Moldova, Republic of + + + Transnistria + + + + + + Ukraine + + + Donetsk People's Republic + + + + + Luhansk People's Republic + + + + + + Nepal + + + Eritrea + + + + + United States of America + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Kazakhstan + + + + + French Southern Territories + + + + + Uzbekistan + + + Mongolia + + + Bhutan + + + Antarctica + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Australia + + + + + + + + + + + + + + + + + + + + + + + Christmas Island + + + + + Cocos (Keeling) Islands + + + + + Heard Island and McDonald Islands + + + + + Norfolk Island + + + + + + China + + China, People's Republic of + + + + + + + + + + + + + + + + + + + + + + + Hong Kong + + + + + + + + + Macao + + + + + Taiwan + + + + + + + + + + France + + + + + + + + + + French Guiana + + + Guadeloupe + + + + + + + + + Martinique + + + + + Reunion + + + + + Mayotte + + + + + + Netherlands + + + + + + + + + + + + Bonaire, Sint Eustatius and Saba + + + + + + + + + + Lebanon + + + + + Montenegro + + + + + Eswatini + + + + + New Caledonia + + + + + + + + + + + + Fiji + + + + + + + + + + + + + + Kuwait + + + + + + + + Timor-Leste + + + + + + + + Bahamas + + + + + + + + + + + + + + + + + + + + + + + + Vanuatu + + + + + + + + + + + + + + + + + + + + Falkland Islands (Islas Malvinas) + + + + + + + + + + + + + + South Georgia and the South Sandwich Islands + + + + + Gambia + + + + + Qatar + + + + + Jamaica + + + + + Cyprus + + + Northern Cyprus + + + + + + + Puerto Rico + + + + + Brunei + + + + + + + + Trinidad and Tobago + + + + + + + + Cape Verde + + + + + + + + + + + + + + French Polynesia + + + + + + + + + + + + + + Samoa + + + + + + + + Luxembourg + + + + + Comoros + + + + + + + + + Mauritius + + + + + Faroe Islands + + + + + + + + + + + + Sao Tome and Principe + + + + + + + + Virgin Islands, U.S. + + + + + + + + Curaçao + + + + + Sint Maarten (Dutch Part) + + + + + Dominica + + + + + Tonga + + + + + + + + + Kiribati + + + + + + + + Micronesia, Federated States of + + + + + Bahrain + + + + + + Northern Mariana Islands + + + + + Palau + + + + + Seychelles, Republic of + + + + + British Indian Ocean Territory + + + + + Antigua and Barbuda + + + + + + + + Barbados + + + + + Turks and Caicos Islands + + + + + + + + + Saint Vincent and the Grenadines + + + + + Saint Lucia + + + + + Grenada + + + + + Malta + + + + + Maldives, Republic of + + + + + Cayman Islands + + + + + Saint Kitts and Nevis + + + + + + + + Montserrat + + + + + Saint Barthélemy + + + + + Niue + + + + + Saint Pierre and Miquelon + + + + + Cook Islands + + + + + Wallis and Futuna + + + + + American Samoa + + + + + Marshall Islands, Republic of the + + + + + Aruba + + + + + Liechtenstein + + + + + Virgin Islands, British + + + + + + + + Saint Helena, Ascension and Tristan da Cunha + + + + + Jersey + + + + + Anguilla + + + + + Saint Martin (French Part) + + + + + Guernsey + + + + + San Marino + + + + + Bermuda + + + + + Tuvalu + + + + + Nauru + + + + + Gibraltar + + + + + Pitcairn Islands + + + + + Monaco + + + + + Vatican City + + + + + Isle of Man + + + + + Guam + + + + + Singapore + + + + + Tokelau + + + + + + + + \ No newline at end of file