rmagic-2.21/INSTALL 0100644 0001750 0001001 00000016465 07642525574 012745 0 ustar kilroy None INSTALLING REPORT MAGIC
Installation
The first time you install Report Magic can be somewhat complicated. Please
read through the instructions on this page completely before starting so you
have a good idea of what will be required. Because much of Report Magic is
built with reusable code, upgrades will be simple. For upgrade notes, see the
docs/whatsnew.html page. These instructions and the included Install.PL script
assume you are using a Unix-like system. If not, it is up to you to make the
necessary translations in the instructions and the Install.PL file to reflect
you computer's file system.
To run Report Magic, you need to have Perl 5.004 or newer installed on your
system. You can find the version of Perl that you have by typing 'perl -v' at
the prompt. If the system says 'unknown command' you either do not have Perl
installed or it is not on your path. If you don't have it see
http://www.perl.com/ for details on getting the Perl interpreter. Compiled
binaries for Perl are available for almost every platform.
Before installing for the first time, you will need to install some system
libraries if they aren't already installed. To generate the graphs, Report
Magic needs three libraries - zlib, libpng and libgd. If you want TrueType font
support in your graphs, you can also install the lttf TrueType library from
FreeType.
zlib
The zlib compression library can be acquired from http://www.gzip.org/zlib/.
Download the source code archive and extract it. Read the
installation documentation and the license. On most systems (Solaris is an
exception) you will not have to build the zlib library if you don't want.
When you build libpng, it incorporates the source files rather than the
actual lib files. If you choose to build and install zlib (or your system
requires that you do) Then do the standard install procedure:
$ ./configure
$ make
# make install (as root)
libpng
Installing libpng is a little more complicated. You can acquire the latest
version from http://download.sourceforge.net/libpng/. Look for something like
'libpng-x.x.x.tar.gz', where x.x.x is the newest (i.e. highest) version
number. Download this and extract it. Read the installation documentation
and the license. You need to have the zlib, that you just uncompressed, on
the same level as the libpng directory and they should both be named
without their versions. Your directory structure should look like this:
|
+- zlib
|
+- libpng
Something like this should do it, but may differ from system to system.
You'll have to remove the archive before doing this (rm *.tar or
rm *.tar.gz depending on your tar version). You should choose one of the
makefiles in the libpng/scripts directory according to your system (e.g.
scripts/makefile.linux for Linux or scripts/makefile.sunos for Solaris).:
$ mv zlib* zlib
$ mv libpng* libpng
$ cd libpng
$ cp scripts/makefile.stf Makefile
$ make
# make install (as root)
freetype (Optional)
If you want to allow support for TrueType fonts in your graphs you can
install freetype. This library is not required for installation, but may be
useful. (If you intend to output in Japanese or Polish, you will need this
library installed. It is also helpful for Italian ouput.) You can download
lttf from http://freetype.sourceforge.net/download.html. After reading the
installation instructions and license, you can build it with the standard
techinique:
$ ./configure
$ make
# make install (as root)
jpeg-6b
The jpeg-6b library may already be installed on your system. Check /lib,
/usr/lib, and /usr/local/lib or your system's equivalents. If not it can
be downloaded from the Independent JPEG Group at
ftp://ftp.uu.net/graphics/jpeg/. After reading the installation
instructions and license, you can build it with the following commands:
$ ./configure --enable-shared
$ make
$ make test
# make install (as root)
libgd
Installing libgd should then be straight-forward. Download the latest
version from link at the top of http://www.boutell.com/gd/ and extract it.
Read the installation documentation and the license. You will need to
edit the Makefile to have it include support for jpeg or freetype. You may
also have to add -I/usr/local/include/freetype to the INCLUDEDIRS= line to
make it work with freetype-1.3.1. You can then build the library with the
standard:
$ make
# make install (as root)
If all system libraries installed successfully, then the rest should be quite
simple. To install change to root user, change directory into the rmagic
directory where you uncompressed the Report Magic archive and type the
following command:
perl Install.PL
If all goes well, this will load all the necessary Perl modules (that aren't
already loaded and up-to-date), install Report Magic in the directory
/usr/local/etc/httpd/rmagic/ (or similar directory with version number) and
install the documentation below that.
If you want to install Report Magic elsewhere, simply edit the configuration
settings in the top of the Install.PL file.
Autoloading the required perl modules from CPAN may require several more steps.
First, this uses the CPAN module to load modules from CPAN. You will need to
configure this the first time it runs by answering serveral questions. It also
requires that you are connected to the Internet (or a local CPAN mirror if you
have such and your CPAN module has been configured for such). Second, using
this may be a security risk. There is no signature system for CPAN code. It is
possible (though unlikely) that CPAN downloads may have been tampered with. If
this bothers you, don't run this part of the install. Instead install all the
modules by hand (see below). (Although, this still could contain tampered
modules, but at least you can look at all the sources first before you put them
in your Perl site library.)
When configuring your CPAN setup, you will be asked for the URL of your
favorite CPAN site. On some systems this includes a list to choose from, on
some it doesn't. If no list is presented, you can type in
'ftp://ftp.cpan.org/CPAN'.
While the install script is running, watch carefully for any errors. The script
will continue to try to install all necessary Perl even if some fail. This may
mean that other will fail later (because of dependencies). Also, the latest
version of GD will ask you some question about the way libgd was installed on
your system.
If you don't want to auto-load the latest version of the necessary Perl modules,
use this instead:
perl Install.PL -no_modules
If you just want to auto-load the latest version of the necessary Perl modules,
but don't want to move Report Magic (i.e. you will run it from the directory
you unarchived it into) use this instead:
perl Install.PL -only_modules
For instructions on manually install Perl modules, see docs/inst_src.html.
rmagic-2.21/Install.PL 0100755 0001750 0001001 00000023245 07642525574 013554 0 ustar kilroy None #!/usr/bin/perl
############################################################
#
# File: Install.PL
#
# Description:
# This script will automatically install or update all the
# necessary modules required by Report Magic, install Report
# Magic in the destination directory, along with documentaion.
# NOTE: This will update all modules on your system that
# Report Magic uses to the latest stable version available.
#
# Arguments:
# -no_modules Will not do the CPAN Perl module update
# -only_modules Will just do the CPAN Perl module update
#
# Created: 1999.Oct.18 by Jeremy Wadsack for Wadsack-Allen Digital Group
# Copyright (C) 1999, 2002 Wadsack-Allen. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the Artistic License as described in
# docs/license.html
############################################################
# Date Modification Author
# ----------------------------------------------------------
# 1999NOV18 First working version JW
# 1999DEC16 Rearranged notice to be proper order JW
# 2000JAN11 Converted to full install script JW
# 2000FEB14 Update for RM 1.3 JW
# 2000MAR08 Patched for RM 1.31 JW
# 2000MAR30 Added error checking to copy function JW
# 2000MAR30 Added install support for GDGraph3d JW
# 2000APR04 Added wadg::* libraries to install JW
# 2000JUL19 Changed W/WA/WADG/... to GD::Graph3d JW
# 2000Jul24 Changed IniConf to Config::IniFiles JW
# 2000Aug24 Changed default install to something logical JW
# 2000Sep29 Fixed for 2.0 changes JW
# 2000Nov28 Added error handling and CPAN autoload JW
# 2001Feb05 Changed $DEST on --only-modules mode JW
# 20Dec2001 Disabled CPAN auto-update (gets Perl 5.6.1) JW
# 08Aug2002 Changed logos to PNG format JW
# 21Mar2003 Added File::Temp to modules list JW
# 24Mar2003 Patched to make sure .root is installed JW
############################################################
use strict;
use File::Copy;
use File::Path;
use Cwd;
use vars qw( $DEST $DOC $FILE_MODE $EXEC_MODE );
#
# The following configurations may be made to modify the install
# on your system.
#
#
# Where do you want Report Magic to be installed
# You can use the pattern $(VERSION) as in this
# example to use the version number in your path.
# Make sure this remains in single quotes.
#
$DEST = '/usr/local/bin/rmagic-$(VERSION)/';
#
# Where do you want documentation to be installed?
# You can use string concatenation, as in this example,
# to install the docs below the program.
$DOC = $DEST . 'docs/';
#
# These set the permissions for all installed files.
# FILE_MODE is the default mode for all installed files
# including docs, configuration files and libraries.
# EXEC_MODE is used for the script.
#
$FILE_MODE = 0644;
$EXEC_MODE = 0755;
#
# #################### END OF CONFIGURATION ####################
# [You should not need to change anything below here]
# ##############################################################
my @modules;
@modules = qw( GD Config::IniFiles File::Spec HTML::Tagset HTML::Parser GD::Text GD::Graph GD::Graph3d File::Temp );
my @no_up;
@no_up = qw( GD File::Spec HTML::Parser );
my $cnt = 0;
my $VERSION = '2.21';
my %args;
my $err_cnt = 0;
# Parse command line
foreach ( @ARGV ) {
if( /^--?([^=]+)=?(.*)$/ ) {
my( $k, $v ) = ($1, $2);
$k =~ s/-/_/;
$args{$k} = $v;
} else {
$DEST = $_;
$DOC = $DEST . 'docs/';
} # end if
} # end foreach
# Convert DEST, DOC
$DEST =~ s/\$\(VERSION\)/$VERSION/g;
$DOC =~ s/\$\(VERSION\)/$VERSION/g;
if( $DEST !~ m#/$# ) {
$DEST .= '/';
} # end if
if( $DOC !~ m#/$# ) {
$DOC .= '/';
} # end if
# Get CWD for later ('cause CPAN module is poorly behaved!)
my $cwd = cwd;
# Output header
print qq[
------------------------------------------------------
Report Magic $VERSION installation script
------------------------------------------------------
];
# Install c libraries.
#print qq[
#In order to install Report Magic for Analog, several system libraries
#must be installed. These include zlib, libpng, and libgd. This script
#will not install the True Type Fonts library lttf. If you want support
#for True Type fonts in Report Magic, please install this library by
#hand from http://www.freetype.org/, then rerun the install script.
#To continue with library installation press [ENTER].];
#getc; print "\n\n";
# zlib http://www.cdrom.com/pub/infozip/zlib/
# ftp://ftp.cdrom.com/pub/infozip/zlib/zlib.tar.gz
# make install
# libpng http://www.cdrom.com/pub/png/
# http://www.cdrom.com/pub/png/src/libpng-1.0.5.tar.gz
# mv ../zlib* zlib
# cd ..; mv libpng* libpng; cd libpng
# cp scripts/makefile.stf Makefile
# make install
# libgd http://www.boutell.com/gd/
# ftp://ftp.boutell.com/pub/boutell/gd/gd-1.7.3.tar.gz
# Install Perl Modules
unless( defined $args{no_modules} || $err_cnt ) {
print "This script will install or upgrade the following modules:\n";
print map( "\t$_\n", @modules );
print qq{
The CPAN interface will now attempt to locate your nearest archive
and install modules from there. If this is the first time you have
run the CPAN shell, you will need to provide some configuration
information. If, when asked for your favorite CPAN site, you are not
given a list to choose from you can type in 'ftp://ftp.cpan.org/CPAN'.
Press [ENTER] to continue.};
getc; print "\n\n";
require CPAN;
# Update the CPAN module
my $cpan = CPAN::Shell->expand( 'Bundle', 'Bundle::CPAN' );
# unless( $cpan->uptodate ) {
# $cpan->install;
# CPAN::Shell->reload( 'cpan' );
# } # end unless
my @packages = map( CPAN::Shell->expand( 'Module', $_ ), @modules );
print qq[
The CPAN shell has located your nearest archive and will begin
installing the necessary Perl modules now.
];
my $mod;
for $mod ( @packages ) {
if( CPAN::Shell->format_result( 'Module', $mod->id ) =~ /INST_VERSION\s+\d+/ ) {
my $id = $mod->id;
if( grep( /$id/, @no_up ) ) {
print "\n" . $mod->id . " is installed; not upgrading.\n";
} elsif( $mod->uptodate ) {
print "\n" . $mod->id . " is up to date.\n";
} else {
print "\nUpgrading module " . $mod->id . "...\n";
$mod->install;
unless( $mod->uptodate ) {
$err_cnt++;
last;
} # end if
} # end unless
} else {
print "\nAdding module " . $mod->id . "...\n";
$mod->install;
unless( $mod->uptodate ) {
$err_cnt++;
last;
} # end unless
} # end if
$cnt++;
} # end for
print "$cnt module installed or updated.\n" if $cnt == 1;
print "$cnt modules installed or updated.\n" if $cnt > 1;
print "$err_cnt module failed to install!\n" if $err_cnt == 1;
print "$err_cnt modules failed to install!\n" if $err_cnt > 1;
} # end unless
#
# Now install Report Magic
#
unless( defined $args{only_modules} || $err_cnt ) {
chdir( $cwd );
print "Installing Report Magic files in $DEST.\n";
# make sure $DEST exisits
if( !-d $DEST ) {
print "... Path does not exits, making it.\n";
mkpath( $DEST );
} # end if
&install( $FILE_MODE, 'README', $DEST ) || $err_cnt++;
print "... Installing Report Magic image files.\n";
&install( $FILE_MODE, 'rmlogo.png', $DEST ) || $err_cnt++;
&install( $FILE_MODE, 'analogo.png', $DEST ) || $err_cnt++;
print "... Installing Report Magic sample files.\n";
&install( $FILE_MODE, 'samples/', $DEST.'samples/' ) || $err_cnt++;
&install( $EXEC_MODE, 'rmagic.sample', $DEST ) || $err_cnt++;
&install( $EXEC_MODE, 'sample.dat', $DEST ) || $err_cnt++;
print "... Installing Report Magic language files.\n";
&install( $FILE_MODE, 'lang/', $DEST.'lang/' ) || $err_cnt++;
print "... Installing Report Magic program files.\n";
&install( $EXEC_MODE, 'rmagic.pl', $DEST ) || $err_cnt++;
&install( $FILE_MODE, 'wadg/', $DEST.'wadg/' ) || $err_cnt++;
#
# Now install Report Magic Documentation
#
print "Installing documentation in $DOC.\n";
&install( $FILE_MODE, 'docs/', $DOC ) || $err_cnt++;
&install( $FILE_MODE, 'docs/images/', $DOC.'images/' ) || $err_cnt++;
} # end unless
if( $err_cnt ) {
print "\n*** Installation Failed! ***\n";
print "Please review the output of the installation above \n";
print "to determine where the problem occurred and try to \n";
print "correct the situation. Often, by reading the error \n";
print "messages you can determine what needs to be changed.\n";
} else {
$DOC = 'docs/' if defined $args{only_modules};
print "\nInstallation complete.\n";
print "For help on using Report Magic see $DOC"."index.html.\n";
print "You must agree to the license agreement at $DOC"."license.html before using Report Magic.\n";
} # end if
exit $err_cnt;
#
# Install (copy) files from one place to another, setting mode
# NOTE: $src CANNOT be an absolute filename. It should be
# relative to the $dest directory if $dest is a directory.
#
sub install {
my( $mode, $src, $dest ) = @_;
my $rc = 1;
if( -d $src ) {
# make sure $dest exisits
if( !-d $dest ) {
mkpath( $dest );
} # end if
# copy each file, recursing subdirectories
my $file;
opendir(DIR, $src) || die "Error: Can not read directory $src: $!";
foreach $file (readdir(DIR)) {
next if $file eq '.' || $file eq '..';
$file =~ s/\.dir$// if $^O eq 'VMS' && -d "$src/$file";
&install( $mode, "$src/$file", "$dest/$file" );
} # end foreach
closedir DIR;
} else {
if( -d $dest ) {
$dest .= $src;
} # end if
if( copy( $src, $dest ) ) {
chmod( $mode, $dest );
} else {
print "\t***Error: Can not copy $src to $dest. $!.\n";
$rc = 0;
} # end if
} # end if
return $rc;
} # end install
rmagic-2.21/README 0100644 0001750 0001001 00000003247 07642525574 012566 0 ustar kilroy None Report Magic for Analog 2.21 Readme File
Copyright (C) 1999-2003 Wadsack-Allen. All Right Reserved.
Portions copyright (C) 1999 DNS.
Report Magic for Analog is an add-on formatting utility for Analog
web site statistics software. Report Magic uses the statistics generated
by Analog and formatting options set by you to make readable, presentable
reports of your Web site data.
LICENSE
-------
Please see docs/license.html for details.
DOCUMENTATION
-------------
Please see the documentation starting at docs/index.html for complete
instructions on using Report Magic for Analog.
INSTALLATION
------------
Installation instructions are located in the files docs/inst_src.html,
docs/inst_win.html and docs/inst_mac/html. They are also available on
the Web at http://www.reportmagic.org/.
OTHER OPTIONS
-------------
[Shameless plugs] If you would like help installing Report Magic or
don't want the hassle of managing your entire statistics system,
the authors provide both a hosted solution, http://stats.reportmagic.com/
(nice for one or two reports) and installation and configuration
services. These are both commercial (i.e. paid) alternatives.
See http://www.reportmagic.com/ for all options.
KNOWN BUGS
----------
There is a BUGS page on the website. Check there for the most
recently found problems:
http://www.reportmagic.org/bugs.html
LATEST VERSION
--------------
The latest version of Report Magic can always be found at at
http://www.reportmagic.org/.
FEEDBACK
--------
Comments, questions and suggestions are always appreciated. Feedback on
Report Magic for Analog can be sent via email to dgsupport@wadsack-allen.com.
rmagic-2.21/Time/ 0040755 0001750 0001001 00000000000 07642616036 012573 5 ustar kilroy None rmagic-2.21/Time/Local.pm 0100644 0001750 0001001 00000017504 07642525574 014175 0 ustar kilroy None package Time::Local;
require 5.000;
require Exporter;
use Carp;
@ISA = qw( Exporter );
@EXPORT = qw( timegm timelocal );
@EXPORT_OK = qw( timegm_nocheck timelocal_nocheck );
# Set up constants
$SEC = 1;
$MIN = 60 * $SEC;
$HR = 60 * $MIN;
$DAY = 24 * $HR;
# Determine breakpoint for rolling century
my $thisYear = (localtime())[5];
$nextCentury = int($thisYear / 100) * 100;
$breakpoint = ($thisYear + 50) % 100;
$nextCentury += 100 if $breakpoint < 50;
my %options;
sub timegm {
my (@date) = @_;
if ($date[5] > 999) {
$date[5] -= 1900;
}
elsif ($date[5] >= 0 && $date[5] < 100) {
$date[5] -= 100 if $date[5] > $breakpoint;
$date[5] += $nextCentury;
}
$ym = pack(C2, @date[5,4]);
$cheat = $cheat{$ym} || &cheat(@date);
$cheat
+ $date[0] * $SEC
+ $date[1] * $MIN
+ $date[2] * $HR
+ ($date[3]-1) * $DAY;
}
sub timegm_nocheck {
local $options{no_range_check} = 1;
&timegm;
}
sub timelocal {
my $t = &timegm;
my $tt = $t;
my (@lt) = localtime($t);
my (@gt) = gmtime($t);
if ($t < $DAY and ($lt[5] >= 70 or $gt[5] >= 70 )) {
# Wrap error, too early a date
# Try a safer date
$tt += $DAY;
@lt = localtime($tt);
@gt = gmtime($tt);
}
my $tzsec = ($gt[1] - $lt[1]) * $MIN + ($gt[2] - $lt[2]) * $HR;
if($lt[5] > $gt[5]) {
$tzsec -= $DAY;
}
elsif($gt[5] > $lt[5]) {
$tzsec += $DAY;
}
else {
$tzsec += ($gt[7] - $lt[7]) * $DAY;
}
$tzsec += $HR if($lt[8]);
$time = $t + $tzsec;
@test = localtime($time + ($tt - $t));
$time -= $HR if $test[2] != $_[2];
$time;
}
sub timelocal_nocheck {
local $options{no_range_check} = 1;
&timelocal;
}
sub cheat {
$year = $_[5];
$month = $_[4];
unless ($options{no_range_check}) {
croak "Month '$month' out of range 0..11" if $month > 11 || $month < 0;
croak "Day '$_[3]' out of range 1..31" if $_[3] > 31 || $_[3] < 1;
croak "Hour '$_[2]' out of range 0..23" if $_[2] > 23 || $_[2] < 0;
croak "Minute '$_[1]' out of range 0..59" if $_[1] > 59 || $_[1] < 0;
croak "Second '$_[0]' out of range 0..59" if $_[0] > 59 || $_[0] < 0;
}
$guess = $^T;
@g = gmtime($guess);
$lastguess = "";
$counter = 0;
while ($diff = $year - $g[5]) {
croak "Can't handle date (".join(", ",@_).")" if ++$counter > 255;
$guess += $diff * (363 * $DAY);
@g = gmtime($guess);
if (($thisguess = "@g") eq $lastguess){
croak "Can't handle date (".join(", ",@_).")";
#date beyond this machine's integer limit
}
$lastguess = $thisguess;
}
while ($diff = $month - $g[4]) {
croak "Can't handle date (".join(", ",@_).")" if ++$counter > 255;
$guess += $diff * (27 * $DAY);
@g = gmtime($guess);
if (($thisguess = "@g") eq $lastguess){
croak "Can't handle date (".join(", ",@_).")";
#date beyond this machine's integer limit
}
$lastguess = $thisguess;
}
@gfake = gmtime($guess-1); #still being sceptic
if ("@gfake" eq $lastguess){
croak "Can't handle date (".join(", ",@_).")";
#date beyond this machine's integer limit
}
$g[3]--;
$guess -= $g[0] * $SEC + $g[1] * $MIN + $g[2] * $HR + $g[3] * $DAY;
$cheat{$ym} = $guess;
}
1;
__END__
=head1 NAME
Time::Local - efficiently compute time from local and GMT time
=head1 SYNOPSIS
$time = timelocal($sec,$min,$hours,$mday,$mon,$year);
$time = timegm($sec,$min,$hours,$mday,$mon,$year);
=head1 DESCRIPTION
These routines are the inverse of built-in perl fuctions localtime()
and gmtime(). They accept a date as a six-element array, and return
the corresponding time(2) value in seconds since the Epoch (Midnight,
January 1, 1970). This value can be positive or negative.
It is worth drawing particular attention to the expected ranges for
the values provided. While the day of the month is expected to be in
the range 1..31, the month should be in the range 0..11.
This is consistent with the values returned from localtime() and gmtime().
The timelocal() and timegm() functions perform range checking on the
input $sec, $min, $hours, $mday, and $mon values by default. If you'd
rather they didn't, you can explicitly import the timelocal_nocheck()
and timegm_nocheck() functions.
use Time::Local 'timelocal_nocheck';
{
# The 365th day of 1999
print scalar localtime timelocal_nocheck 0,0,0,365,0,99;
# The twenty thousandth day since 1970
print scalar localtime timelocal_nocheck 0,0,0,20000,0,70;
# And even the 10,000,000th second since 1999!
print scalar localtime timelocal_nocheck 10000000,0,0,1,0,99;
}
Your mileage may vary when trying these with minutes and hours,
and it doesn't work at all for months.
Strictly speaking, the year should also be specified in a form consistent
with localtime(), i.e. the offset from 1900.
In order to make the interpretation of the year easier for humans,
however, who are more accustomed to seeing years as two-digit or four-digit
values, the following conventions are followed:
=over 4
=item *
Years greater than 999 are interpreted as being the actual year,
rather than the offset from 1900. Thus, 1963 would indicate the year
Martin Luther King won the Nobel prize, not the year 2863.
=item *
Years in the range 100..999 are interpreted as offset from 1900,
so that 112 indicates 2012. This rule also applies to years less than zero
(but see note below regarding date range).
=item *
Years in the range 0..99 are interpreted as shorthand for years in the
rolling "current century," defined as 50 years on either side of the current
year. Thus, today, in 1999, 0 would refer to 2000, and 45 to 2045,
but 55 would refer to 1955. Twenty years from now, 55 would instead refer
to 2055. This is messy, but matches the way people currently think about
two digit dates. Whenever possible, use an absolute four digit year instead.
=back
The scheme above allows interpretation of a wide range of dates, particularly
if 4-digit years are used.
Please note, however, that the range of dates that can be actually be handled
depends on the size of an integer (time_t) on a given platform.
Currently, this is 32 bits for most systems, yielding an approximate range
from Dec 1901 to Jan 2038.
Both timelocal() and timegm() croak if given dates outside the supported
range.
=head1 IMPLEMENTATION
These routines are quite efficient and yet are always guaranteed to agree
with localtime() and gmtime(). We manage this by caching the start times
of any months we've seen before. If we know the start time of the month,
we can always calculate any time within the month. The start times
themselves are guessed by successive approximation starting at the
current time, since most dates seen in practice are close to the
current date. Unlike algorithms that do a binary search (calling gmtime
once for each bit of the time value, resulting in 32 calls), this algorithm
calls it at most 6 times, and usually only once or twice. If you hit
the month cache, of course, it doesn't call it at all.
timelocal() is implemented using the same cache. We just assume that we're
translating a GMT time, and then fudge it when we're done for the timezone
and daylight savings arguments. Note that the timezone is evaluated for
each date because countries occasionally change their official timezones.
Assuming that localtime() corrects for these changes, this routine will
also be correct. The daylight savings offset is currently assumed
to be one hour.
=head1 BUGS
The whole scheme for interpreting two-digit years can be considered a bug.
Note that the cache currently handles only years from 1900 through 2155.
The proclivity to croak() is probably a bug.
=cut
rmagic-2.21/analogo.png 0100644 0001750 0001001 00000001014 07642525574 014022 0 ustar kilroy None PNG
IHDR 6 6 ~kw PLTE tRNS @f tEXtSoftware gif2png 2.3.2Q IDATx}A E- # $_eMԧ̧ju.Zfue&-ϵiIy+; Report Magic can get quite complicated and has many advanced options for
users who want to learn. Below is a brief introduction to each option and
some resources where you can find more information. You can change the hours used to compute and display 'Work Hours' and
'After Hours' in the Hourly Summary by setting the In the above, the numbers in brackets are the hours to cover for each Summary
(these are comma-separated lists of numbers or ranges of numbers). The text after
the " Notice that the hours are inclusive, so the Work Hours, 10-18, includes
every thing from the beginning of the hour 10 (10:00:00) to the end of the
hour 18 (18:59:59 or 6:59:59pm). To change hyperlinks in reports, you can set the Of course, this does depend on your definition of what a page is. Several settings for Report Magic can accept insertion codes: codes
that tell Report Magic to insert specific text in the ouput. All filenames
can accept insertion codes (such as
Insertion codes take two forms The rest of the insertion codes insert values from the current run of Report
Magic. The complete list of these codes is as follows: Using the When using stylesheets, any style settings you add to your settings file
(such as When Report Magic creates your report files, it writes all the HTML codes to
a single line. This saves as much as 15% of the filesize, making the reports load
faster and reducing the bandwidth they consume. Sometimes, though, you want to
change the files or perhaps compare two files with As described in the Report Settings page, you
can create report-specific sections in your settings file and override report
definitions to change display and text. The settings that you can change are
those defined in the The files in these language directories, The files in the language directories contain some (albeit minimal) documentation
for what all the setting are. Additional help for translators is available in the
'Developers and Translators' page on the
Report Magic website. Report Magic can use custom reports instead of the predefined reports that
ship with it. To create a custom report, you need to be familiar with Perl. You
create a Perl module that inherits from Report Magic can be run as a CGI application. This means you can create a
form on your web site that users can select option from and Report Magic will
build reports on-the-fly. To do this it runs Analog in the background to process
your log files (or cache files). It is assumed you know how to configure your
web server to run CGI applications and that you are familiar with setting
permissions for them. To run Report Magic as a CGI application, you must install it in your CGI
folder on your web server. This folder is often called Next copy the basic form Now add a Analog and Report Magic will ignore some command from the CGI interface. The
defaults on this are safe but may not be as secure as you'd wish them. See the CGI
section of Building You Settings File for details on
how to limit other commands and additional settings. Once you have all this configured, you should be able to enter the values you
want in the form and run the report. Depending on the size of your log files this
could take a while to run. If you want charts in your CGI-produced reports, then you need to tell Report
Magic where to store them. You can do this with the For changes that resulted in the current version see
What's New.
Advanced Settings
Setting the Work Hours for the Hourly Summary
Summary1
and
Summary2
settings for the [HOURLY]
report. The
default configuration uses something like this (localized for your langauge):
[HOURLY]
Summary1 = [8-16],Work Hours (8:00am-4:59pm)
Summary2 = [0-7,17-23],After Hours (5:00pm-7:59am)
],
" is displayed on the reports. So, for example, to start the
workday at 10:00am and end at 7:00pm you would put something like this into your
settings file:
[HOURLY]
Summary1 = [10-18],Work Hours (10:00am-6:59pm)
Summary2 = [0-9,19-23],After Hours (7:00pm-9:59am)
Changing links in reports
IncludeLinks
setting for each individual report in your settings file. IncludeLinks
,
takes a comma-separated list of patterns that, when matched will be linked. For
example, to link only pages in the request report you would use something like
[REQUEST]
IncludeLinks=*/,*.htm,*.html,*.asp,*.php
Insertion codes
[statistics]File_In
or
[reports]File_Out
) as well as the [website]Title
setting and the content that Analog puts into reports from its HEADER
and FOOTER
commands.%date format%
and
${something}
. The date format is applied to the current date for
[statistics]File_In
and [statistics]Log_File
and to
end date of the report for the all other settings. (This allows you to run reports
for the end of the previous month on the first of each month and have filenames
and titles reflect the proper period.) Date formats follow the formatting syntax
as described in the Date Format References.
${infile} This is the name of the input file (from [statistics]File_In)
${XX} Where XX is any row in the General Summary (listed here)
${GenerationTime} This is the General Summary PS row, formatted for your locale
${DataStart} This is the General Summary FR row, formatted for your locale
${DataEnd} This is the General Summary LR row, formatted for your locale
${AnalogVersion} This a synonym for the General Summary VE row
Stylesheet format
Stylesheet
setting in the [navigation]
and [reports]
sections, you can start setting styles instead of
using settings like BG_Color
and Font
. Using stylesheets
makes it easier to manage your styles and keep them consistent with the rest
of your site. The stylesheet is used in the following manner:
h1 The title at the top of each report file
h2 The title of each individual report
h4 Navigation page title
th Header columns on the data tables
td.alt1 First color option for tabled data
td.alt2 Second color option for tabled data
th.total Style options for summary rows at bottom of tables
.fineprint Style for time and range of report
.smallfont Style for 'SmallFonts' option in Simple reports
[reports] Font
will override the styles defined in the
stylesheets. If you only want to use the styles in your stylsheets, then remove
all the other style settings from your settings file.Notes on the HTML in report files
diff
. If you want
to make the HTML more readable try the excellent tidy utility from W3C. You can
download it from here, precompiled
for many platforms. This will produce a more readable HTML format than any other
option could do.Customizing report text
rdata.ini
of the current language (plus any
inherited from the English -- or default, see below -- language settings). Each
rdata.ini
file in the language subdirectories (e.g. lang/en
)
contains comments in the local language to help you understand what the settings
mean and what can be done with them.Creating new language files
rdata.ini
,
cdata.ini
and lang.ini
provide localizations
for Report Magic. Specifically, they include interface, descriptions, reporting
and graphing options for the reports created by Analog. These also contain all
the text used in the report files created by Report Magic for Analog. If you are
interested in creating a new language version or changing some of the text of
the output, your can modify these files. But keep a backup, because you could
easily make changes the Report Magic won't understand. Report Magic looks in a
subdirectory of lang
as specified in the [statistics]
Language
setting for language files. So if you are creating custom versions
of an existing language you could create your own directory (such as
'my_es
') under lang
and then specify that directory as
your language setting. e.g. "Language=my_es
"Creating custom reports
wadg::rm::Report
, and then
specify your new class as the ReportType
for any report you want
to have use it. The Report.pm
contains documentation with each method
describing what the method is used for. However, the API may change in
a future release of Report Magic. This doesn't mean you shouldn't make custom
reports, if you're so inclined. Rather, if you do, please join the
Report Magic Announce list to
hear of any pending changes and/or communicate with
Wadsack-Allen Digital Group if you have any changes you'd like to request in the API.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/cgi.html 0100644 0001750 0001001 00000014264 07642525574 014267 0 ustar kilroy None
Running Report Magic Under CGI
cgi-bin
on
Unix servers and Scripts
on IIS servers. When running in CGI mode
Report Magic will only read the rmagic.ini
file located in the
same directory as the Report Magic application. For security reasons, you cannot
specify an alternate file from the command-line.rmform.html
from the distribution
to a readable location on your web site (often files in the CGI folder can be run or
executed, but not read). If you want, you can also create your own form. In either
case you will need to edit the file to specify the URL to your Report Magic
application.[CGI]
section to your rmagic.ini
settings
file and an item, Analog
that tells Report Magic where to find you
Analog executable. This section might look like this:
[CGI]
Analog = /usr/local/analog/analog
Charts
Path_To
and
URL_To
settings in the [graphs]
seciton of your settings
file. Path_To
tells Report Magic which folder on the server to write
the images to. URL_To
tells your browser where to find them. See
the Graphs section of Report Settings for more
details on these commands.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/changes.html 0100644 0001750 0001001 00000071060 07642525574 015132 0 ustar kilroy None
History of Changes in 2.x
2.16
New Features
Top_Logo
setting in the [navigation] section allows a
logo (or other HTML) to be placed at the top of the navigation page.Bugs Fixed
GraphType
, ActiveColumn
and
graphing details.2.15
Bugs Fixed
Active_Column
was not
present in data set for the report.Company_Logo
is present
to be less conspicuous.2.14
Bugs Fixed
Reverse_Time
in rmagic.sample.
(reported by Blake Kadatz, Dave Green, Tim Mrock and Andre S. Burton)INSTALL
file in Source Edition to match documentation.
(reported by David Simmons)docs/inst_src.html
and
INSTALL
.Bullet_image
setting would cause a broken image icon.
(reported by Heinz Toedter)Stylesheet
setting in the [navigation]
section of a settings file included with the Include
setting would not be
loaded if there was already a Stylesheet
defined for the [reports]
section.
(reported by Michael Check)2.13
Bugs Fixed
2.12
New Features
Bugs Fixed
Version 2.11
New Features
div
tags in navigation to make it more compliant.navitem
class.Bugs Fixed
lang/en/lang.ini
and de
to iso-8859-1.Config-IniFiles-2.26
(or later) is needed for warning-free use.lang/en/cdata.ini
with non-comment on Width line in [f].Version 2.10
New Features
Bugs Fixed
GraphType
caused space in filenames.Active_Column
is set, then it uses the sort order of the report.Version 2.05
Bugs Fixed
-reports_File_In=%yyyymmdd%/
.Install.PL
now properly shows the location of
documentation when installed with -only_modules
option. It also supports
command line parameters in the format --only-modules
.
Version 2.04
Bugs Fixed
Graph_Level
setting in the [reports]
section of your settings filedocs/inst_src.html
to show enable_shared
not
with_shared
as the jpeg configuration option.Reverse_Time
in [reports]
section../Install.PL /usr/local/rmagic-$(VERSION)/
.' You can include the
$(VERSION)
key on the command line as well as in the file. If you
specify a destination this way, documentation will be installed in
$DEST/docs/
regardless of the settings at the top of Install.PL.[graphs] Format
is now correctly case insensitive.[graphs] Format
JPEG and JPG are eqivalent.[statistics] Log_File
now properly support date insertion and ${infile}
insertion.
It DOES NOT support other ${XX}
insertions. It also uses the current system date
for date insertions (as the [statistics] File_In
does) not the end date of the data.lines2d
' to force just that report to use 2d
graphs. 'line2d
' or 'line3d
' specifies an absolute. 'line
'
is determined by the [graphs] 3d
setting.rmagic.sample
and sample.dat
. This will run with default
settings and produce a report in reports/
. You can customize this by copying
it to rmagic.ini and adjusting your settings as desired.[DIRECTORY]IncludeLinks = */,[root directory]
"
to your settings file.${infile} This is the new way to specify the name of the input file. ${XX} Where XX is the any field on the General Summary ${GenerationTime} This is the Analog PS field, but formatted with lang.ini value [Text]O0008 ${DataStart} This is the Analog FR field, but formatted with lang.ini value [Text]O0008 ${DataEnd} This is the Analog LR field, but formatted with lang.ini value [Text]O0008 ${AnalogVersion} This a synonym for the Analog VE field
For changes that resulted in versions 1.X see Changes 1.X.
Send questions or comments to Wadsack-Allen Digital Group Support.![]() |
![]() |
History of Changes - Pre-Release |
For changes that resulted in the current version see What's New.
For changes that resulted in the 1.x versions before the current version see Changes.
![]() |
![]() |
For changes that resulted in the current version see What's New.
Graph_Font
in the [report]
section
of the settings files.[statistics]
Log_File
, [statistics]
Include
, [statistics]
File_In
and
[website]
Title
.[statistics]
Frame_File_Out
will default to
'index.html', assuming a frameset is being built.[reports]
File_Out
is a directory, then
Report Magic will build each report in its own file in this directory. If it
is a filename then Report Magic will put all the reports in this one file.[statistics]
One_File
is deprecated.[statistics]
File_In
.[reports]
File_Out
to the filename '-'.[statistics]
General_Summary
and Summary_Rows
.PNG_Graphs
option from [statistics]
section of settings files. This is autodetermined by Report Magic based on
the capability of the installed library (or binary distribution).One_File
option from [statistics]
section of the settings files. Report Magic determines this based on the
setting Out_File
in the [reports]
section.Log_File
and is under the
[statistics]
tells Report Magic to write all error or
notification messages to a file instead of the display.Always_Quit
in the
[statistics]
section tells Report Magic to quit the program
whenever any error occurs. (Normally it leaves the "console" window up so
you can see any messages.) If you are using the logging option (above) it
will also quit the program on errors. This option has no effect on non-Mac
platforms.No_Robots
in the [statistics]
section tells Report Magic to add a NO_ROBOTS Meta tag to each output file.
This tells robots who are spidering your site (and obey these robot
exclusion rules extensions) not to index these pages.Company_Logo
in the [statistics]
section allows you to include your company logo or other statements in each
report file. Using this option will hide the normal logos replacing them
with the contents of the filename you provide.Image_Dir
under the [reports]
section
gives the location (directory) of the images in URL syntax. This can be a
relative (e.g. '../images') or absolute (e.g.
'http://www.hostserver.com/images/stats/') URL location.Language
to the [statistics]
section can be set to the language for that report. Report Magic looks in the
lang
directory under the directory it was installed in for a
directory containing each language's set of files.Verbose
under [statistics]
allows
you to control what kind of messages Report Magic tells when running. The
valid values are N for Notices, W for Warnings and E for errors. The default
is to output all. To tell Report Magic to be absolutely quiet use the keyword
NONE.Include
in the [statistics]
section. This
takes the name of a settings file whose values will be included.%yymmdd%
where the current date should be
inserted. Everything between the '%' symbols is used as a date format
specifier. See the Date Format Reference for
details on the format string.%infile%
to
inserting the name of the input filename in the output file's name. Note
that %infile%
is the input file name without the extension.
reports_Text_Color
). The support
is minimal (because of limitations in the GIFgraph module) but should help,
especially when using a black background. You can use any text color that
happens to be predefined by GIFgraph. This includes 'black' and 'white' as
well as the following hex-code colors: Title
was moved from the [reports]
section to the [website]
section. Exisiting settings files
don't need to be changed -- Report Magic will read it either way. This
just seems like a more logical place for it.ColSpan
option in rdata.ini
has been deprecated.
Report Magic now knows inherently how to span columns based on the type
if report.N0001
, N0003
and E0010
in lang.ini
.lang.ini
.S0009
under [Text]
in
lang.ini
has been deprecated in favor of a more
internationlaized solution: There is now a new item in rdata.ini
for each report. 'MostActive
' provides the description used for
the report by the Quick Summary. This way each report can be handled
properly with respect to gender and case.rdata.ini
, cdata.ini
and lang.ini
files to use the symbol 'n' for minutes. This
allows any character to separate times (as in italian 'h,nn').lang
directorystatistics_Meta_Refresh
added to expire pagesstatistics_Reverse_Time
added to
flip chart data in Time Reports.For changes that resulted in pre-1.x versions see Changes 0.X.
Send questions or comments to Wadsack-Allen Digital Group Support.![]() |
![]() |
Report Magic Columns Reference |
What follows is a reference for the codes you can use in your configuration file to specify which columns to show in various report.
Code Letter | Meaning |
---|---|
HN | Host name |
HU | Host URL |
PS | Program start time |
FR | Time of first request |
LR | Time of last request |
L7 | Time last 7 days starts after (Old versions of Analog, only) |
E7 | Time last 7 days lasts until |
SR | Successful server requests |
S7 | Successful requests in last 7 days |
PR | Successful requests for pages |
P7 | Successful requests for pages in last 7 days |
FL | Failed requests |
F7 | Failed requests in last 7 days |
RR | Redirected requests |
R7 | Redirected requests in last 7 days |
NC | Lines without status code |
C7 | Lines without status code in last 7 days |
NF | Distinct files requested |
N7 | Distinct files requested in last 7 days |
NH | Distinct hosts served |
H7 | Distinct hosts served in last 7 days |
CL | Corrupt lines in the logfile |
UL | Unwanted lines in the logfile |
BT | Total data transferred |
B7 | Total data transferred in last 7 days |
VE | Analog version string |
Code Letter | Meaning |
---|---|
R | Number and/or percentage of requests |
r | |
P | Number and/or percentage of page requests |
p | |
B | Number and/or percentage of bytes transferred |
b | |
D | Date and time of last access |
d | Date of last access |
![]() |
![]() |
Running Report Magic |
Report Magic for Analog is available in pre-compiled binary format or a source package that you run through your Perl interpreter. A Perl interpreter is available for virtually every platform. For more information on Perl see http://www.perl.com.
If you have the Source Package and if Perl is on your path, type the following to run Report Magic for Analog. If it's not on your path just insert the right directory in front of the "perl" below to tell the system where to find it.
perl rmagic.pl
If you have a Windows Binary version of Report Magic for Analog, it is easiest to open a DOS Prompt Window, change directory to the directory where Report Magic is installed and type this:
rmagic
Users of the Mac Binary package can just double-click the Report Magic icon.
Report Magic for Analog looks for a configuration file with the name like "rmagic.ini" ("Report Magic.ini" on the Mac). (Actually, you can put anything you want after the ".", including "conf", "cfg" or "settings".) Report Magic looks for this file in the directory that it is run from (the current directory, not the Report Magic directory; not your /usr/local/etc directory). This settings file gives Report Magic for Analog all the settings it needs to make your reports. (For more information on making the settings file, see Building your Settings File.)
Alternately, you can specify, via the command line (if you're system has
such -- this doesn't apply on the Mac), a different
configuration file to use. For example, if you had a configuration file
called mystats.ini
you could have Report Magic use these
settings instead of it's defaults by typing one of these (depending on your
system):
rmagic mystats.ini
or
perl rmagic.pl mystats.ini
For GUI systems that support drag-and-drop (especially Mac) you need only
drop the mystats.ini
file on the Report Magic icon. That's it.
Once it runs, you should have a nice set of report files in your output
directory.
Every settings file option can be overriden from the command-line (if your
system has one). This means you can create a settings file with default values
for all your reports and, for example, specify the input and output files
from the command-line. The format of the command-line parameters is the same
as the name in the settings file but each parameter starts with a '-' followed
by the section name, an '_', and the parameter name. For items that require
values, you then add an '=', and the value. For example, to set the input file
(the item File_In
in the [statistics]
section) to
/usr/bin/analog/report.dat
from the command-line you would use
something like this:
./rmagic.pl -statistics_File_In=/usr/bin/analog/report.dat
Values with spaces in them must be quoted. For example, to set the title of the reports in a given run you could use something like this:
./rmagic.pl -website_Title="My Client's Website Statistics"
Settings that only set a true or false value (or 1 or 0) can be added to the command-line without a value to make them true. For example, if you decided to include a ROBOTS meta tag in one of your runs, you could add it at the command line like this:
./rmagic.pl -statistics_No_Robots
This is equivalent to setting No_Robots = 1
in the
[statistics]
section of your settings file.
![]() |
![]() |
Building your Settings File |
Report Magic for Analog's settings are separated into at least five
sections, statistics
, navigation
and
website
and the graphs
, reports
and related sections.
The statistics
section covers general settings for creating the
reports. The navigation
section tells Report Magic for Analog how
to format and display the navigation page or naviagtion menu (if on the same page).
The website
section has some options for linking website data and feedback.
The graphs
section allows you to define many formatting options for graphs
and the reports
section provide formatting settings for how the report
pages should look. You can also create a section for each specific report to customize
settings for that report alone.
Below are sample settings for the first three section and a description of what each
setting means. The graphs
, reports
and related sections are
covered on a separate page.
statistics
Section[statistics] File_In = report.dat Frame_File_Out = index.html Frame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = en Verbose = NWE Include = standard.ini Format = XHTML 1.0
File_In
File_Out
in the [reports]
section, below.Frame_File_Out
(Optional)report_File_Out
, below, is used for all
files.) This option supports the %infile% and %dateformat% codes descibed
under File_Out
in the [reports]
section, below. If
no value is given, and Report Magic is producing a frameset, then this will
defaut to 'index.html'.Frame_Border
(Optional)No_Robots
(Optional)Log_File
(Optional)File_Out
in the [reports]
section, below.Always_Quit
(Optional, Mac only)Language
(Optional)lang
directory under the directory
where you installed Report Magic. There is a directory for each set of
language files. So, for example, to set the report to German you would use
'de'. Rembemer that if you are setting the language in Report Magic for a
set of reports to also set the langauge in the Analog config file or your
Daily Summary will show every day as Sunday.Verbose
(Optional)Include
(Optional)File_Out
in the
[reports]
section, below.Format
(Optional)navigation
Section[navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/flag_bg.gif Font_Color = #000000 Font = Verdana, Arial Bullet_Image = images/bar1.gif Stylesheet = styles.css Top_Logo = logo.html
File_Out
(Optional)File_Out
in the [reports]
section, above.BG_Color
(Optional)Background
(Optional)Font_Color
(Optional)Font
(Optional)Bullet_Image
(Optional)Stylesheet
(Optional)<FONT>
and other tags based on the
styles defined in the stylesheet. For details on the format for a stylesheet,
see the entry on the advanced settings page.Top_Logo
(optional)*Note: All colors can be a standard browser color name or a 6-digit hex color code preceded by a number sign. (e.g. "black" or #000000).
CGI
Section[CGI] Analog = /usr/bin/analog Analog_Forbidden = LOGFORMAT APACHELOGFORMAT DEFAULTLOGFORMAT APACHEDEFAULTLOGFORMAT HEADERFILE FOOTERFILE UNCOMPRESS OUTFILE CACHEOUTFILE LOCALCHARTDIR ERRFILE DNS CGI SETTINGS PROGRESSFREQ LANGFILE DESCFILE Analog_Allowed = Forbidden = statistics_File_In statistics_Include statistics_Log_File statistics_Frame_File_Out graphs_Path_To graphs_URL_To reports_File_Out navigation_File_Out navigation_Top_Logo website_Company_Logo Allowed =
Analog
Analog_Forbidden
Analog_Allowed
Forbidden
Allowed
website
Section[website] Title = My Web Site Report Webmaster = webmaster@flaglink.com Base_URL = http://www.flaglink.com Company_Logo = logofile.htm
Title
[reports]File_Out
in the report
settings page and in the advanced settings.BaseURL
(Optional)Webmaster
(Optional)Company_Logo
(Optional)![]() |
![]() |
Date Format Specification |
Report Magic uses date formats in several places. Most of them are in the
internationalization/advanced-settings files, rdata.ini
,
cdata.ini
and lang.ini
. You can also specify a
date format in the name of output files and log files in your settings. All
of these formats use the same syntax, which allows the date in question
(the current date for output and log file names, the data value date for
other files) to be formatted any way you like.
Each part of a date (or time) is represented by a mnemonic letter. You can use 'm' for months, 'd' for days, 'y' for years, 'h' for hours or 'n' for minutes and 'w' for day of the week. In general one or two repeated codes (e.g. 'mm') gives a numerical result of at least that many digits (e.g. '09' for September). Numbers will always use all digits in the number. That is, if your format has 'm' and the month is December, then the output will be '12'. Three letters gives an abbreviation for the month or day of the week (the abreviation may not be three letters in all languages). Four letters gives a full month or weekday name. Here are some specifics and examples to help.
The following codes produce results as follows (with english text):
Code | Format | Notes |
---|---|---|
m | 1,2,3,...,10,11,12 | |
mm | 01,02,03,...,10,11,12 | |
mmm | Jan,Feb,Mar,...,Dec |
This will give the standard abbreviation for the
language (as specified in lang.ini ) which may or may
not be three letters.
|
mmmm | January,February,March,...,December | |
d | 1,2,3,...31 | |
dd | 01,02,03,...31 | |
y | 0,1,2,3,...,99 | |
yy | 00,01,02,03,...,99 | |
yyy | 000,001,002,003,...,1999, 2000, 2001,... | This isn't a very useful option |
yyyy | 0000,0001,0002,0003,...,1999, 2000, 2001,... | |
w | 1,2,3,...,7 | |
ww | Su,Mo,Tu,...,Sa | This will always give a two-letter abbreviation of whatever the standard abbreviation is for the language. In some languages, this is the same as 'www'. |
www | Sun,Mon,Tue,...,Sat |
This will give the standard abbreviation for the
language (as specified in lang.ini ) which may or may
not be three letters.
|
wwww | Sunday,Monday,Tuesday,...,Saturday | |
h | 0,1,2,3,...24 | |
hh | 00,01,02,03,...24 | |
n | 0,1,2,3,...24 | |
nn | 00,01,02,03,...24 | |
s | 0,1,2,3,...24 | |
ss | 00,01,02,03,...24 | |
am pm |
This will add the appropiate text ('am' or 'pm') in the position specified. It will also format the hours in 12-hour format. If you use lower case letters then the output will be lower case. If you use uppercase letters then the output will be uppercase. |
The following examples may help to clarify the format specification. Assume an input date of Saturday March 7th, 1998 15:05:32:
Format | Output value |
---|---|
mmm d, yyyy | Mar 7, 1998 |
www dd.mm.yy | Sat 07.03.98 |
wwww mmmm d, yyyy | Saturday March 7, 1998 |
yyyy.m.d | 1998.3.7 |
yyyymmdd | 19980307 |
hh:nn | 15:05 |
hh:nn pm | 3:05 pm |
hh:nn AM | 3:05 PM |
h,nn | 15,05 |
yyyymmddhhnn | 199803071505 |
![]() |
![]() |
Frequently Asked Questions |
Look at the Analog documentation. It's there. Really. If you can't figure it out or can't find it, try joining the Analog-help mailing list and posting your question there.
As described in the Source Package Installation instructions,you must install libgd before you can install GD (the Perl module). You must install GD before Report Magic will run. When installing libgd, you will likely need to edit the Makefile for the gd library to tell it which optional components (TTF support, Jpeg support, XPM support) should be added. When you build GD, it now asks you which of these options you built libgd with. Please remeber the options and answer accordingly. It should build without issue thereafter.
The Most Active entry will list the last line of the report whether or not it appears to be most active, if you have set your Active_Column to a column that is not in the report. For example, if your report only show columns for page request (P) and percent of page requests (p), then set the Active_Column for that report (or all your reports) to P or p.
When configuring Report Magic, you set the column that you consider
the most important as the Active_Column
in your settings file.
That is, if you are concerned about the number of pages requested and sent
on your servers, you would set [reports]
Active_Column
to 'P'. This tells Report Magic what column to
graph, in each report that has a graph, and what column to track for
summaries in the Quick Summary report. If you aren't getting pie charts
then Analog isn't producing 'Percent of page' (or Percent of Request or Percent
of Bytes) data. Change this either by adding a Active_Column
section specific to the offending report in that report's section, or by
modifying your Analog config file to include both 'P' and 'p'
(or 'R' and 'r' or 'B' and 'b') in the *COLS commands for the reports in
question.
Report Magic determines it's charts based on the
GraphType
setting, the ActiveColumn
setting and the available columns
of data.
GraphType
takes a comma-separated list of types of
graphs that you want Report Magic to produce for the report. Valid
values are pie
, bar
and line
.
ActiveColumn
takes a single character representing
the column to chart: P, B, or R.
The value of ActiveColumn
is case-insensitive. So if
you set it to p, b, or r, you should get the same charts you do when
set to P, B, or R.
To get both a bar and a line chart, simply set your GraphType
value like this:
GraphType = bar,pie
If your data contains both the count and percent values for the column
you have chosen in your ActiveColumn (e.g. if you have ActiveColumn=R
and your data has both R and r columns) then you will get both charts. Otherwise
it will only plot the chart that it has data for.
The bullets are images specified by the Bullet_Image
setting in the [navigation]
section of your configuration file.
This setting should point, virtually, to the bullet image, relative to the
completed navigation page. In other words, whatever you put in here
(say, "image/bar1.gif") end up as the SRC attribute of the IMG tag for the
bullet. So when the navigation page is loaded by your browser it looks for the
file relative to that page. (If the navigation page is in "/stats/navfile.html"
as specified by the File_Out
setting in the [navigation]
section, then the image above should be in your website area in "/stats/images/bar1.gif".)
For questions not answered here or in the docs or suggestions for future versions, please try the Report Magic Help mailing list. See the Report Magic mailing lists page for information on joining.
Send questions or comments to Wadsack-Allen Digital Group Support.![]() |
![]() |
Report Magic File Formats |
Report Magic for Analog's settings file use an ".ini" file, that works
like any standard ".ini" file or profile (such as those used extensively on
Windows systems). The file contains sections, whose names are delimited by
square brackets (e.g. [MySection]
) followed by a series of
name=value
pairs, one to a line, that set values for the named
setting within the scope of that section. For example, the following sets
some of the settings Report Magic uses when generating the statistics
reports.
[statistics] File_In = report.dat Frame_File_Out = reports/index.html
Comments may be included in this format by starting a comment line with ';' or '#'. Any line that begins with these is ignored by Report Magic. Whitespace (spaces and tabs) is optional and ignored before or after the brackets ('[', ']') or between the brackets and the section name. Whitespace is optional and ignore before a setting name, between the name and the '=', between the '=' and the value and after the value. Whitespace within a section name, setting name and value is preserved.
Note that unlike most ".ini" files, case matters! You must type the names of sections and settings exactly as they appear in the documentation (or use the samples provided in the language directories).
Send questions or comments to Wadsack-Allen Digital Group Support.