File: graphapplet.pm

package info (click to toggle)
awstats 8.0-3
  • links: PTS
  • area: main
  • in suites: forky, sid
  • size: 13,244 kB
  • sloc: perl: 40,711; xml: 1,785; javascript: 1,493; java: 359; sh: 152; makefile: 40; php: 29
file content (129 lines) | stat: -rw-r--r-- 5,028 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/perl
#-----------------------------------------------------------------------------
# GraphApplet AWStats plugin
# Allow AWStats to replace bar graphs with an Applet (awgraphapplet) that draw
# 3D graphs instead.
#-----------------------------------------------------------------------------
# Perl Required Modules: None
#-----------------------------------------------------------------------------


# <-----
# ENTER HERE THE USE COMMAND FOR ALL REQUIRED PERL MODULES
# ----->
#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.0";
my $PluginHooksFunctions="ShowGraph";
# ----->

# <-----
# IF YOUR PLUGIN NEED GLOBAL VARIABLES, THEY MUST BE DECLARED HERE.
use vars qw/
$DirClasses
/;
# ----->


#-----------------------------------------------------------------------------
# PLUGIN FUNCTION: Init_pluginname
#-----------------------------------------------------------------------------
sub Init_graphapplet {
	my $InitParams=shift;
	my $checkversion=&Check_Plugin_Version($PluginNeedAWStatsVersion);

	# <-----
	# ENTER HERE CODE TO DO INIT PLUGIN ACTIONS
	$DirClasses=$InitParams;
	# ----->

	return ($checkversion?$checkversion:"$PluginHooksFunctions");
}


#-------------------------------------------------------
# PLUGIN FUNCTION: ShowGraph_pluginname
# UNIQUE: YES (Only one plugin using this function can be loaded)
# Add the code for call to applet awgraphapplet
# Parameters:	$title $type $showmonthstats \@blocklabel,\@vallabel,\@valcolor,\@valmax,\@valtotal
# Input:        None
# Output:       HTML code for awgraphapplet insertion
# Return:		0 OK, 1 Error
#-------------------------------------------------------
sub ShowGraph_graphapplet() {
	my $title=shift;
	my $type=shift;
	my $showmonthstats=shift;
	my $blocklabel=shift;
	my $vallabel=shift;
	my $valcolor=shift;
	my $valmax=shift;
	my $valtotal=shift;
	my $valaverage=shift;
	my $valdata=shift;

	my $graphwidth=780;
	my $graphheight=400;
	my $blockspacing=5;
	my $valspacing=1;
	my $valwidth=5;
	my $barsize=0;
	my $blockfontsize=11;
	if ($type eq 'month') 			{ $graphwidth=540; $graphheight=160; $blockspacing=8; $valspacing=0; $valwidth=6; $barsize=$BarHeight; $blockfontsize=11; }
	elsif ($type eq 'daysofmonth')  { $graphwidth=640; $graphheight=160; $blockspacing=3; $valspacing=0; $valwidth=4; $barsize=$BarHeight; $blockfontsize=9; }
	elsif ($type eq 'daysofweek') 	{ $graphwidth=300; $graphheight=160; $blockspacing=10; $valspacing=0; $valwidth=6; $barsize=$BarHeight; $blockfontsize=10; }
	elsif ($type eq 'hours') 		{ $graphwidth=600; $graphheight=160; $blockspacing=4; $valspacing=0; $valwidth=6; $barsize=$BarHeight; $blockfontsize=11; }
	else { debug("Unknown type parameter in ShowGraph_graphapplet function: $type", 1); return 0; }

#	print "<applet code=\"AWGraphApplet.class\" codebase=\"/classes\" width=\"$graphwidth\" height=\"$graphheight\">\n";
	print "<applet name=\"$type\" archive=\"awgraphapplet.jar\" code=\"AWGraphApplet.class\" codebase=\"".($DirClasses||"/")."\" width=\"$graphwidth\" height=\"$graphheight\" alt= \"Your browser does not support Java correctly. Change browser or disable AWStats graphapplet plugin.\">\n";
print <<EOF;
<param name="title" value="$title" />
<param name="special" value="$type" />
<param name="orientation" value="vertical" />
<param name="barsize" value="$barsize" />
<param name="background_color" value="$color_Background" />
<param name="border_color" value="$color_Background" />
<param name="special_color" value="$color_weekend" />
EOF
	print "<param name=\"nbblocks\" value=\"".(scalar @$blocklabel)."\" />\n";
	print "<param name=\"b_fontsize\" value=\"$blockfontsize\" />\n";
	foreach my $i (1..(scalar @$blocklabel)) {
		print "<param name=\"b${i}_label\" value=\"".@$blocklabel[$i-1]."\" />\n";
	}
	print "<param name=\"nbvalues\" value=\"".(scalar @$vallabel)."\" />\n";
	foreach my $i (1..(scalar @$vallabel)) {
		print "<param name=\"v${i}_label\" value=\"".@$vallabel[$i-1]."\" />\n";
		print "<param name=\"v${i}_color\" value=\"".@$valcolor[$i-1]."\" />\n";
		print "<param name=\"v${i}_max\" value=\"".@$valmax[$i-1]."\" />\n";
		print "<param name=\"v${i}_total\" value=\"".@$valtotal[$i-1]."\" />\n";
		print "<param name=\"v${i}_average\" value=\"".@$valaverage[$i-1]."\" />\n";
	}
print <<EOF;
<param name="blockSpacing" value="$blockspacing" />
<param name="valSpacing" value="$valspacing" />
<param name="valwidth" value="$valwidth" />
EOF
	foreach my $j (1..(scalar @$blocklabel)) {
		my $b='';
		foreach my $i (0..(scalar @$vallabel)-1) { $b.=@$valdata[($j-1)*(scalar @$vallabel)+$i]." "; }
		$b=~s/\s$//;
		print "<param name=\"b${j}\" value=\"$b\" />\n";
	}
	print "</applet><br />\n";

	return 0;
}



1;	# Do not remove this line