6.2\r
\r
New features/improvements:\r
-- New: awstats_updateall.pl: Added -excludeconf option\r
+- awstats_updateall.pl: Added -excludeconf option\r
+- Allow plugins to add entry in menu.\r
+- Allow plugins to add charts with its own way to compile data inside\r
+the update process.\r
+- maillogconvert.pl: Support postfix 2.1 that change its log\r
+format using NOQUEUE string instead of a number for mails rejected\r
+before being queued.\r
+- Added support for plugin geoip_region_maxmind (plugin not included\r
+in default distrib. You can download it from AWStats web site).\r
+- Little speed improvments.\r
\r
Fixes:\r
-- Fix not recognized %time3 tag in LogFormat\r
+- Fix not recognized %time3 tag in LogFormat. This tag allows to process\r
+all FTP xferlog file format.\r
- Fix bad html generated with buildpdf option.\r
- maillogconvert.pl: Added patch to work correctly with sendmail\r
when recipient is redirected through a pipe.\r
\r
Other/Documentation:\r
-- Some changes to allow plugins to add new charts.\r
-- Better log message in plugins.\r
+- Better log messages in plugins.\r
- Updated documentation.\r
- Renamed configure.pl into awstats_configure.pl.\r
+- Reduce code size.\r
\r
\r
6.1\r
#
#LoadPlugin="hostinfo"
+# Plugin: ClusterInfo
+# Perl modules required: None
+# Add a text (for example a full hostname) in cluster reports for each cluster
+# number.
+# A text file called clusterinfo.myconfig.txt, with two fields (first is
+# cluster number, second is text to show) separated by a tab char. must be
+# created into DirData directory.
+# Note this plugin is useless if ShowClusterStats is set to 0 or if you don't
+# use a personalized log format that contains %cluster tag.
+#
+#LoadPlugin="clusterinfo"
+
# Plugin: UrlAliases
# Perl modules required: None
# Add a text (Page title, description...) in URL reports before URL value.
# A text file called urlalias.myconfig.txt, with two fields (first is URL,
-# second is text to show, separated by a tab char) must be created in DirData
-# directory.
+# second is text to show, separated by a tab char) must be created into
+# DirData directory.
#
#LoadPlugin="urlalias"
}
}
+#------------------------------------------------------------------------------
+# Function: Write other cluster info (with help of plugin)
+# Parameters: $clusternb
+# Input: $SiteConfig
+# Output: Cluster info
+# Return: None
+#------------------------------------------------------------------------------
+sub ShowClusterInfo {
+ my $user=shift;
+ # Call to plugins' function ShowInfoCluster
+ foreach my $pluginname (keys %{$PluginsLoaded{'ShowInfoCluster'}}) {
+ my $function="ShowInfoCluster_$pluginname('$user')";
+ eval("$function");
+ }
+}
+
#------------------------------------------------------------------------------
# Function: Write other host info (with help of plugin)
# Parameters: $host
print "$Center<a name=\"clusters\"> </a><br />\n";
my $title="$Message[155]";
&tab_head("$title",19,0,'clusters');
- print "<tr bgcolor=\"#$color_TableBGRowTitle\"><th colspan=\"2\">$Message[155]</th>";
+ print "<tr bgcolor=\"#$color_TableBGRowTitle\"><th>$Message[155]</th>";
+ &ShowClusterInfo('__title__');
if ($ShowClusterStats =~ /P/i) { print "<th bgcolor=\"#$color_p\" width=\"80\">$Message[56]</th><th bgcolor=\"#$color_p\" width=\"80\">$Message[15]</th>"; }
if ($ShowClusterStats =~ /H/i) { print "<th bgcolor=\"#$color_h\" width=\"80\">$Message[57]</th><th bgcolor=\"#$color_h\" width=\"80\">$Message[15]</th>"; }
if ($ShowClusterStats =~ /B/i) { print "<th bgcolor=\"#$color_k\" width=\"80\">$Message[75]</th><th bgcolor=\"#$color_k\" width=\"80\">$Message[15]</th>"; }
my $p_h=int($_cluster_h{$key}/$total_h*1000)/10;
my $p_k=int($_cluster_k{$key}/$total_k*1000)/10;
print "<tr>";
- print "<td class=\"aws\" colspan=\"2\">Computer $key</td>";
+ print "<td class=\"aws\">Computer $key</td>";
+ &ShowClusterInfo($key);
if ($ShowClusterStats =~ /P/i) { print "<td>".($_cluster_p{$key}?$_cluster_p{$key}:" ")."</td><td>$p_p %</td>"; }
if ($ShowClusterStats =~ /H/i) { print "<td>$_cluster_h{$key}</td><td>$p_h %</td>"; }
if ($ShowClusterStats =~ /B/i) { print "<td>".Format_Bytes($_cluster_k{$key})."</td><td>$p_k %</td>"; }
--- /dev/null
+#!/usr/bin/perl
+#-----------------------------------------------------------------------------
+# ClusterInfo AWStats plugin
+# This plugin allow you to add information on cluster chart from
+# a text file. Like full cluster hostname.
+# You must create a file called clusterinfo.configvalue.txt wich contains 2
+# columns separated by a tab char, and store it in DirData directory.
+# First column is cluster number and second column is text you want to add.
+#-----------------------------------------------------------------------------
+# Perl Required Modules: None
+#-----------------------------------------------------------------------------
+# $Revision$ - $Author$ - $Date$
+
+
+# <-----
+# ENTER HERE THE USE COMMAND FOR ALL REQUIRED PERL MODULES
+#if (!eval ('require "TheModule.pm";')) { return $@?"Error: $@":"Error: Need Perl module TheModule"; }
+# ----->
+use strict;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.2";
+my $PluginHooksFunctions="ShowInfoCluster";
+# ----->
+
+# <-----
+# IF YOUR PLUGIN NEED GLOBAL VARIABLES, THEY MUST BE DECLARED HERE.
+use vars qw/
+$clusterinfoloaded
+%ClusterInfo
+/;
+# ----->
+
+
+
+#-----------------------------------------------------------------------------
+# PLUGIN FUNCTION: Init_pluginname
+#-----------------------------------------------------------------------------
+sub Init_clusterinfo {
+ my $InitParams=shift;
+ my $checkversion=&Check_Plugin_Version($PluginNeedAWStatsVersion);
+
+ # <-----
+ # ENTER HERE CODE TO DO INIT PLUGIN ACTIONS
+ debug(" Plugin clusterinfo: InitParams=$InitParams",1);
+ $clusterinfoloaded=0;
+ %ClusterInfo=();
+ # ----->
+
+ return ($checkversion?$checkversion:"$PluginHooksFunctions");
+}
+
+
+
+#-----------------------------------------------------------------------------
+# PLUGIN FUNCTION: ShowInfoCluster_pluginname
+# UNIQUE: NO (Several plugins using this function can be loaded)
+# Function called to add additionnal columns to Cluster 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 "<TD>This is a new cell</TD>";
+# Parameters: Cluster number
+#-----------------------------------------------------------------------------
+sub ShowInfoCluster_clusterinfo {
+ my $param="$_[0]";
+ # <-----
+ my $filetoload='';
+ if ($param && $param ne '__title__' && ! $clusterinfoloaded) {
+ # Load clusterinfo file
+ if ($SiteConfig && open(CLUSTERINFOFILE,"$DirData/clusterinfo.$SiteConfig.txt")) { $filetoload="$DirData/clusterinfo.$SiteConfig.txt"; }
+ elsif (open(CLUSTERINFOFILE,"$DirData/clusterinfo.txt")) { $filetoload="$DirData/clusterinfo.txt"; }
+ else { error("Couldn't open ClusterInfo file \"$DirData/clusterinfo.txt\": $!"); }
+ # This is the fastest way to load with regexp that I know
+ %ClusterInfo = map(/^([^\s]+)\s+(.+)/o,<CLUSTERINFOFILE>);
+ close CLUSTERINFOFILE;
+ debug(" Plugin clusterinfo: ClusterInfo file loaded: ".(scalar keys %ClusterInfo)." entries found.");
+ $clusterinfoloaded=1;
+ }
+ if ($param eq '__title__') {
+ print "<th>$Message[114]</th>";
+ }
+ elsif ($param) {
+ print "<td class=\"aws\">";
+ if ($ClusterInfo{$param}) { print "$ClusterInfo{$param}"; }
+ else { print " "; } # Undefined cluster info
+ print "</td>";
+ }
+ else {
+ print "<td> </td>";
+ }
+ return 1;
+ # ----->
+}
+
+
+1; # Do not remove this line
# UserInfo AWStats plugin
# This plugin allow you to add information on authenticated users chart from
# a text file. Like full user name and lastname.
-# You must create a file called userinfo.configvalue.txt and store it in
-# plugin directory that contains 2 columns separated by a tab char.
-# First column is authenticated user login and second column is text
-# you want add.
+# You must create a file called userinfo.configvalue.txt wich contains 2
+# columns separated by a tab char, and store it in DirData directory.
+# First column is authenticated user login and second column is text you want
+# to add.
#-----------------------------------------------------------------------------
# Perl Required Modules: None
#-----------------------------------------------------------------------------