rmagic-2.21/INSTALL0100644000175000010010000001646507642525574012745 0ustar kilroyNoneINSTALLING 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.PL0100755000175000010010000002324507642525574013554 0ustar kilroyNone#!/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/README0100644000175000010010000000324707642525574012566 0ustar kilroyNoneReport 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/0040755000175000010010000000000007642616036012573 5ustar kilroyNonermagic-2.21/Time/Local.pm0100644000175000010010000001750407642525574014175 0ustar kilroyNonepackage 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.png0100644000175000010010000000101407642525574014022 0ustar kilroyNonePNG  IHDR66~kwPLTEtRNS@ftEXtSoftwaregif2png 2.3.2QIDATx}A E- # $_eMԧ̧ju.Zfue&-ϵiIy+;iu\ύV<=OU&|6ƥ{?O ytQs#!)陓$zS2f9~>e)?{ӣt6e=:,"tYb02rB&HJ\%IJ:kyƗ#FnG8sS_voݺ?~# 4)AͲIENDB`rmagic-2.21/docs/0040755000175000010010000000000007642616032012621 5ustar kilroyNonermagic-2.21/docs/advanced.html0100644000175000010010000002755307642525574015277 0ustar kilroyNone Report Magic for Analog Documentation - Advanced Settings
Report Magic for Analog Documentation

Advanced Settings

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.

Setting the Work Hours for the Hourly Summary

You can change the hours used to compute and display 'Work Hours' and 'After Hours' in the Hourly Summary by setting the 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)

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 "]," 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)

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).

Changing links in reports

To change hyperlinks in reports, you can set the 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

Of course, this does depend on your definition of what a page is.

Insertion codes

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 [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.

Insertion codes take two forms %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.

The rest of the insertion codes insert values from the current run of Report Magic. The complete list of these codes is as follows:

     ${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

Using the 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

When using stylesheets, any style settings you add to your settings file (such as [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

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 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

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 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

The files in these language directories, 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"

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.

Creating custom reports

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 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.

[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/cgi.html0100644000175000010010000001426407642525574014267 0ustar kilroyNone Report Magic for Analog Documentation - Running Report Magic Under CGI
Report Magic for Analog Documentation

Running Report Magic Under CGI

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 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.

Next copy the basic form 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.

Now add a [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

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.

Charts

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 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.

[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/changes.html0100644000175000010010000007106007642525574015132 0ustar kilroyNone Report Magic for Analog Documentation - History of Changes in 2.x
Report Magic for Analog Documentation

History of Changes in 2.x

For changes that resulted in the current version see What's New.

2.16

New Features

Bugs Fixed

2.15

Bugs Fixed

2.14

Bugs Fixed

2.13

Bugs Fixed

2.12

New Features

Bugs Fixed

Version 2.11

New Features

Bugs Fixed

Version 2.10

New Features

Bugs Fixed

Version 2.05

Bugs Fixed

Version 2.04

Bugs Fixed

Version 2.03

Version 2.02

Version 2.01

Version 2.0

Version 1.99Beta2

Version 1.99Beta1

For changes that resulted in versions 1.X see Changes 1.X.

[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/changes0.html0100644000175000010010000001677207642525574015223 0ustar kilroyNone Report Magic for Analog Documentation - History of Changes - Pre-Release
Report Magic for Analog Documentation

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.

Version 0.9

Version 0.8

Version 0.7

Version 0.6

Version 0.5

Version 0.4

Version 0.3

Version 0.2

Version 0.1

[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/changes1.html0100644000175000010010000005204307642525574015213 0ustar kilroyNone Report Magic for Analog Documentation -
Report Magic for Analog Documentation

For changes that resulted in the current version see What's New.

Version 1.42 Service Release

Version 1.41 Service Release

Version 1.4 General Release

Version 1.31 Service Release

Version 1.3 General Release

Version 1.2 General Release

Version 1.11 Service Release

Version 1.1 General Release

Version 1.0 General Release

Version 1.0 BETA 3

Version 1.0 BETA 2

Version 1.0 BETA 1

For changes that resulted in pre-1.x versions see Changes 0.X.

[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/columns.html0100644000175000010010000001465107642525574015205 0ustar kilroyNone Report Magic for Analog Documentation - Report Magic Columns Reference
Report Magic for Analog Documentation

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.

General Summary Rows

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

Active Column

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
[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/commands.html0100644000175000010010000001713407642525574015325 0ustar kilroyNone Report Magic for Analog Documentation - Running Report Magic
Report Magic for Analog Documentation

Running Report Magic

Binary or Source Package?

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.

Using an Alternate Settings File

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.

Changing settings from the command line

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.

[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/config.html0100644000175000010010000003667307642525574015002 0ustar kilroyNone Report Magic for Analog Documentation - Building your Settings File
Report Magic for Analog Documentation

Building your Settings File

Report Magic for Analog Settings

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
This is the location of the computer readable output from Analog. It can include a path name (including a drive letter or network path). This is relative to the directory from which Report Magic for Analog was run.
The special filename '-' can be used to tell Report Magic to read the input from the standard input (STDIN) (i.e. your keyboard or a pipe, '|', on a command line). This option supports the %infile% and %dateformat% codes descibed under File_Out in the [reports] section, below.
Frame_File_Out (Optional)
This is the name of the frameset page. It no longer uses a path name or drive letter. (You can put a path in here, but it will be ignored. The path specified in 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)
This sets the width of the separator between the navigation and report frames. If you set this to '0' then no separator will be drawn (and the frames will not be resizable).
No_Robots (Optional)
This option, if set to 1, will add a META tag to each output file to tell robots not to index the files.
Log_File (Optional)
This option gives the name of a file to which Report Magic will send all messages (errors or notices). This is useful for automated jobs, especially on a Mac platform where you don't have redirection. By default, if no logfile is given (if this option is not used), all notification and error messages are written to STDERR (your console screen). Errors are appended to (added to the end of) the logfile. The name of the logfile can include the %infile% and %dateformat% codes descibed under File_Out in the [reports] section, below.
Always_Quit (Optional, Mac only)
For the Mac platform only, this option tells Report Magic to quit the program whenever any error occurs. (Normally it leaves the "console" window up so you can see any messages.) This is especially useful when running Report Magic as a scheduled task with the 'cron' utility (or other task scheduler). If you are using the logging option (above) it will also quit the program on errors and on completion, so this is redundant when logging is enabled. This option has no effect on non-Mac platforms.
Language (Optional)
This will set the language to be used for the current report. Valid languages are listed in the 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.
Note If you are running Analog 3.x and want the output in German, rename the file lang/de/lang_3.ini to lang/de/lang.ini.
Verbose (Optional)
This 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 (Optional)
You can include the contents of another setting file in a given file. This setting takes the name of a settings file whose values will be included. The settings in the current file will override anything in the included file. This is an easy way for an ISP to include a standard file and customize just the necessary settings for each client. This option supports the %infile% and %dateformat% codes descibed under File_Out in the [reports] section, below.
Format (Optional)
This specifies the output file format for the reports. Currently undertood formats are 'XHTML 1.0' (which converts reports formating choices into CSS style sheets) and 'HTML 3.2' (which uses lots of tags). Default is 'XHTML 1.0'.

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)
This is the name of the file for the navigation page. This option supports the %infile% and %dateformat% codes descibed under File_Out in the [reports] section, above.
If this setting is not specified, then Report Magic will create the reports without the frameset. Instead of a navigation frame, each report will have a navigation menu to the right.
BG_Color (Optional)
This is an optional setting that specifies the background color* of the navigation page.
Background (Optional)
This is an optional image for the navigation page background
Font_Color (Optional)
This is the color* of the output text on the navigation page. All text (normal and hyperlinked) will be this color.
Font (Optional)
This is the name of the desired typeface for the text on the navigation page. This can be a comma-separated list of typeface options, such as "Arial, Helvetica, sans-serif".
Bullet_Image (Optional)
This is a virtual link to the image used for a bullet for navigation items. Report Magic for Analog neither checks for the existence of this image nor copies it from anywhere, so make sure this image exists as specified. This name is a virtual (i.e. on the website) reference relative to the navigation page.
Stylesheet (Optional)
This points to a file contianing a stylesheet for Report Magic to use for styles. If your output format is 'XHTML 1.0' then the reports will contain a link to this sheet. In this case, this should be a URL and you need to make the stylesheet available to the web page when you publish the reports. If your output format is 'HTML 3.2' then this should be a local filename and the reports will be built with <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)
Use this to give the name of a file (relative to the working directory) that contains a snippet of HTML to insert at the top of the page. If this is provided it replaces the "Report Navigation" text.

*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
This is the text title of the entire statistics report and frameset. It appears at the top of each report file and as the title for the frameset (i.e. in the browser titlebar). This would be something like "Web Statistics for My Website". This option supports the insertion codes (like ${infile} and %mmm d, yyyy%) as descibed under [reports]File_Out in the report settings page and in the advanced settings.
BaseURL (Optional)
This is the base URL of the site for which these statistics were made. If you don't include this setting then links pertaining to the website for which the statistics were compiled will be relative to root of the site that the reports are hosted on. (In other words, if your hosting the stats on a different website than they came from, include this setting.)
Webmaster (Optional)
This is email address to contact for questions on the reports. If you don't include this setting, the "Contact us" feedback message will not be included.
Company_Logo (Optional)
With this option you can specify the name of a file that Report Magic will load to insert at the bottom of each report. This file should contain a snippet of HTML (that is, something like "<FONT SIZE=1>Hosted by mycompany.com</FONT>") that can include your hosting company name, your logo (through an IMG tag) or anything else you want in the footer of each report. Using this option will also cause the logo images for Analog, Wadsack-Allen Digital Group and DNS Websites to be removed. This can save bandwidth and storage, especially when hosting a large number of client sites.
[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/datefmts.html0100644000175000010010000001776707642525574015347 0ustar kilroyNone Report Magic for Analog Documentation - Date Format Specification
Report Magic for Analog Documentation

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
[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/faq.html0100644000175000010010000002132407642525574014267 0ustar kilroyNone Report Magic for Analog Documentation - Frequently Asked Questions
Report Magic for Analog Documentation

Frequently Asked Questions

How do I do (some feature) in Analog?

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.

I get a GD error when I try to run Report Magic

or, GD won't build when I try to install Report Magic

or, libgd won't build. It can't find 'jpeg' (or other resource).

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" quantity in my time reports not right

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.

Why don't I get any pie charts?

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.

I'm still confused about how Report Magic decides what charts to build. Can you elaborate?

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.

Why don't my bullets show up in the navigation page?

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".)

Other Questions

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.

[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/filefmts.html0100644000175000010010000001211107642525574015323 0ustar kilroyNone Report Magic for Analog Documentation - Report Magic File Formats
Report Magic for Analog Documentation

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).

[Introduction] [Documentation map] [Index] [Frequently Asked Questions] [License]
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/FTL.txt0100644000175000010010000001501407642525574014017 0ustar kilroyNone The FreeType Project LICENSE ---------------------------- 2000-Feb-08 Copyright 1996-2000 by David Turner, Robert Wilhelm, and Werner Lemberg Introduction ============ The FreeType Project is distributed in several archive packages; some of them may contain, in addition to the FreeType font engine, various tools and contributions which rely on, or relate to, the FreeType Project. This license applies to all files found in such packages, and which do not fall under their own explicit license. The license affects thus the FreeType font engine, the test programs, documentation and makefiles, at the very least. This license was inspired by the BSD, Artistic, and IJG (Independent JPEG Group) licenses, which all encourage inclusion and use of free software in commercial and freeware products alike. As a consequence, its main points are that: o We don't promise that this software works. However, we will be interested in any kind of bug reports. (`as is' distribution) o You can use this software for whatever you want, in parts or full form, without having to pay us. (`royalty-free' usage) o You may not pretend that you wrote this software. If you use it, or only parts of it, in a program, you must acknowledge somewhere in your documentation that you have used the FreeType code. (`credits') We specifically permit and encourage the inclusion of this software, with or without modifications, in commercial products. We disclaim all warranties covering The FreeType Project and assume no liability related to The FreeType Project. Legal Terms =========== 0. Definitions -------------- Throughout this license, the terms `package', `FreeType Project', and `FreeType archive' refer to the set of files originally distributed by the authors (David Turner, Robert Wilhelm, and Werner Lemberg) as the `FreeType Project', be they named as alpha, beta or final release. `You' refers to the licensee, or person using the project, where `using' is a generic term including compiling the project's source code as well as linking it to form a `program' or `executable'. This program is referred to as `a program using the FreeType engine'. This license applies to all files distributed in the original FreeType Project, including all source code, binaries and documentation, unless otherwise stated in the file in its original, unmodified form as distributed in the original archive. If you are unsure whether or not a particular file is covered by this license, you must contact us to verify this. The FreeType Project is copyright (C) 1996-2000 by David Turner, Robert Wilhelm, and Werner Lemberg. All rights reserved except as specified below. 1. No Warranty -------------- THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL ANY OF THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES CAUSED BY THE USE OR THE INABILITY TO USE, OF THE FREETYPE PROJECT. 2. Redistribution ----------------- This license grants a worldwide, royalty-free, perpetual and irrevocable right and license to use, execute, perform, compile, display, copy, create derivative works of, distribute and sublicense the FreeType Project (in both source and object code forms) and derivative works thereof for any purpose; and to authorize others to exercise some or all of the rights granted herein, subject to the following conditions: o Redistribution of source code must retain this license file (`LICENSE.TXT') unaltered; any additions, deletions or changes to the original files must be clearly indicated in accompanying documentation. The copyright notices of the unaltered, original files must be preserved in all copies of source files. o Redistribution in binary form must provide a disclaimer that states that the software is based in part of the work of the FreeType Team, in the distribution documentation. We also encourage you to put an URL to the FreeType web page in your documentation, though this isn't mandatory. These conditions apply to any software derived from or based on the FreeType Project, not just the unmodified files. If you use our work, you must acknowledge us. However, no fee need be paid to us. 3. Advertising -------------- Neither the FreeType authors and contributors nor you shall use the name of the other for commercial, advertising, or promotional purposes without specific prior written permission. We suggest, but do not require, that you use one or more of the following phrases to refer to this software in your documentation or advertising materials: `FreeType Project', `FreeType Engine', `FreeType library', or `FreeType Distribution'. As you have not signed this license, you are not required to accept it. However, as the FreeType Project is copyrighted material, only this license, or another one contracted with the authors, grants you the right to use, distribute, and modify it. Therefore, by using, distributing, or modifying the FreeType Project, you indicate that you understand and accept all the terms of this license. 4. Contacts ----------- There are two mailing lists related to FreeType: o freetype@freetype.org Discusses general use and applications of FreeType, as well as future and wanted additions to the library and distribution. If you are looking for support, start in this list if you haven't found anything to help you in the documentation. o devel@freetype.org Discusses bugs, as well as engine internals, design issues, specific licenses, porting, etc. o http://www.freetype.org Holds the current FreeType web page, which will allow you to download our latest development version and read online documentation. You can also contact us individually at: David Turner Robert Wilhelm Werner Lemberg --- end of LICENSE.TXT --- rmagic-2.21/docs/images/0040755000175000010010000000000007642616032014066 5ustar kilroyNonermagic-2.21/docs/images/logo.gif0100644000175000010010000003072107642525574015527 0ustar kilroyNoneGIF89a)))111999BBBJJJccckkk{{{ƽkkBB99BB99911))1111k))J))!!)k{Rks1)1)1)1)1){1!sB1c1!R!c9)cB1R1J1RRJ))19!)BJ{!9R!Z!)R!JRc)JZ!1ZJRJ!s1R!{1k)B{Z!R1k1J!c)R!k)Bs)c1B{!s19s{1)R1k!BR!Z1B!!1c9{R1{J)R9s!!JZJkJ{JRkJJ11)J!ZJB9ZRJ{J9k9!1c9)Z1)R1!J)JkR1cBs){9999Z)9c1Z!s9c9)RBZ9!B9J9RZZJZZ)RR1cc11999B)JR!9B!!BZ1R!)11R!R!B1c)1B)!R!!B!1s1kJZ!{csﵵss{kksccsss{{RRsccJJkkkBBcBBk))Jcc11ZBB{JJZZ11cJJ))c11{)))k9911!!c)){))B){cBZk{)1BZk{1R1J9RBJB1R91!c9{9{1!1!)!,@ HpK 0Ц;?H| CId(b& /\ b+Zt&?ܹkvHvZIݺULl#4iAH&. Yp„i.[xhGnV[x$-Hn(!*KPQq(W\r3^LM$AyDL1D#Hd̒-Lū7/\Zzݽ I.ktQEb$TQlL%PR&P0~e˔)ѻI3% 0Adt7ԩc@]0,(:RËI(W;[p|3p!T PHABJ51uYQJWx;NDC)Т*wVYmDmf_Ip#h ȋ-M;0ߘI?c B"9qw)T8缂ateYP-H!e棏J&,T9nq7V^htK ;oAf;@P"4԰ڸv--4jTRHrkLRDJYXvE<&]AeUƄIln:ц(sN9p9u9u*ԁJw\8f8< N;4,~S8rɵ#^$fAxEvwF1g$qMNh(_^93˓=|#3|>"{? HKA:栓N:s9:3KWXSog8-oOaY}zMA꤂m`,Q P1PA&@& /t 3[ ձx","%c׿U6p@%8G5(nˠ5~x f@|SRc$dZ3`Uذ89Ct/8 p@zG>&> :*F XA T r l"f`};V  Ԍű\29 UaB(-:[p<|E5LP48c?Ruғ*%3Dh<DQhR 0CX#9@qxC~:\W pi@Pnvc"IJvp{$06,Z0+d5r o GK?qP8HАLBGTĂfbљI#tC@q!&QH^ a$ `rLi?wOHtٲ68!ԥ&KDXm\c=FX 0i?uu\PXu$pkQ;Wy4 a!-+v",q@6JV:rd>cF-bS4$y/A tf*&0U+W^cT] rp^8ڍYcz<`,~:;2"`K*.p 8>ԅ x ˎCq>׼.q% /| S|B8{ ! A!aiZvFʜ ^_{a IMXU0F;bblxF7Mo@eJP# G69x d,)&p@Bg@`Li=8#/rc8p ! a*QIft8 M MUF>T%:{s~2! B^cbGơ7kT*ap9^!BM9ŽobZСB'^U(QPH*Ztb fѼMt jR;0P*i9+"aHk8 -&j50A F(ZQć.qQu֠%9!yÿ1J>PH=wTJ4`lȳVh*_gesZj Z0">6K3#gAtߎQ4 L`X o fk:kQך̄3a NtNKR2{2AҢ Ɓ24oYF W̹\$$<ޜ4mS8fZqNTɌ`G,,hXulJe[2 A0 DP Sx8"(9? a:j9!qN^15XEDͣCNn 3V`,'Sp>48~C~  D0 hZa*kurin?X?PLDJtA̓DߔM73$' &K EHC pD Ą TFONCD7NDΣJDJF8=0@[E ytH Xb”0PS@CBx8THUILCS?}P8!&Iv!TH=VI !XV* נ=A@ UT(0Cn֡((7 l7`p& ;AqK@IPg[ %Y)r{SS % @鵳p:i{n?@z2Pq_qjVL f+ ".aagc*/7J+?+Ku03h f @ Km;G'B FFj͑f6-(PΡ-?E PZS S49W5'VA%|6Mm I }D @5C.FCN^$R5ܰ0E/jc?cW`  ZpDSp2@ fP0]wNLPBk.B#}A4S^* 0 :/n9jRAc0߄S5rOT>88 2G@2}`MWP.6b}Iz7vcs~sA Y`{E-uppcF*piLB̰C,( k00h6W0iBqyT\n~d B 57`Y%0nWCiyru)4/şXHA6{Tf2:M&v gE7 pk~`Ŏ& }J1 &E;!Dx?qR>[ ȧB4_TP`bBn6i!-yF2Ri, 0v ZɰY!@G.t1[|c@񀕮ch@*CpX0tH! Q‹,  k&4aB{7eEx4y7.Dh-p,@`7xS"CH\ĂcOxKUcB M ܲ㸂&@A 4SS|C#pp) /HEQъ b RX&rB#BF""z;}:H.;JL n#5?t*@7Fq".\ic wՎ ?>=|%()Q q8@;.7Y!OiGC[Օ]>;Nd Hg+appqXaL %. Œ{!c8Iܛd;{4a$h@-Z4`arg`X.Y"ѝrL%4u_L7qD0yA^#3:+ñ1(: /4"9JҤ:'w#PtHxd hjАTw9@#82}`"2&*YqZW vXR"/ؽ3HIb/p$ʄuxTІeb莂ZS8:+66ɂs1Hm»3@#*(#%0 ?Hs$"" ;uxRy![("HJk rjc   pѰ`RipP.=ĺ[ 9 !#23=#!(7 1@t@5X-*ܚ)<KV䱻 7Y22 YXm! ?z:vxi>@%b22(#2&e*,;"&p&2#&t XvP7p,/pPZzRP6p sx @P u@S > [HH\4@gx(ژ)qX,Ȃc 2h#:CC2,+(&<"%2gڂ$H",L@:kU0tr@l9p\JhHuv@t`ȂkQ +JI,oD$ez&Tݻ: h*#8'hZx)1Q)!((sl̈ԬZ9Mv#26CB&{&` ]"g"-iʪҒ&/p&PA8Rx@*lz0 θHȇpQxQ88u6O )8$B<#"N>;j/< =(έ)hP `H ~@ ~0ς׈SX8tWJQqu30$RZ+ tsPrH]G/hAHrhue xh 6 {ч(VxsRSqS1jB>[<&؂,1/h'ۚGZ,[$(hPWP8yU퀧` }8Qtɏ}P t;SZ@ <*h$&-I|Bu{$06/P-DKLR` #YYX V hQH0P @W5Z `8tHV \-;V@@t-0m$/FT؋B m[k(27LHJ U hH XUtMp PYHZD @hM?s@p(EZu$PB(2@/A9]o5Mޠ \t&xM^ 2d$7pHUؿt thpRAx$,>BFU _{桢6 ( Z%~פ0hteW]v4O^"< Z\W@Z"p ׾aGNE44䨔SDCtt @`%^0MWȀ ru(>XIC2WG; Q] P :7E[NqS7.{HbFX\~  ĸJ4Vp7V?SV;t8MC D\<‰z~ř@WЕ`E^u&'U@pz!(@BQt 76atWƐ$ h~@ HȄL1Hڦ T\x e^\ pzZxP0bV p.W0\XBx;mg p` ؁%&VjHEE]uu=˺ a d J@ p nxV[xfʆjFtj0jtUst5%݀h8 .up9us#Z9Ab)afѾPV+K@<,UX 7"fF2! .U!<x-r dD#wU08(C 5 h!1ұv;rmagic-2.21/docs/images/title.gif0100644000175000010010000000434107642525574015707 0ustar kilroyNoneGIF89a BJJRRZZkkk\`!, BI8ͻ`(dihlp,tmx|pH,Ȥrl:ШtJZجvz8Y(h1'Ken0~xwqzw|hm,q ps2f)q/ivp- (M{ %{w  xN} &܎pkҬ٧f3`P %0<#ᠤ=aߧ :>Ԇ 0@/c]6t' %: 0(ipT6 DIE/JH4c WPr8S#/Ӧ - J«Tk 'Ga; b*gI 0 9#p_fg@}{AfLv*rZz\xXƳ-,ue/:Lg < ŘoK:'0Xl =鲯QѠ@n 6=bvXvliBo栥 c@zXdt! iwu-wrt~)'"6a4 QzDŽ'U=pT`h)(eb4|AxFH%%l\|[`2%(x!K)!A6䥋WVڥ 2{Qa sjhzǧܢf\G^?|=*^Ɂ"8Gnfn  kDhP:#\A]dkQX4"wȞًU\zծ*eR+ƩA$4 ћpn(W kFK0h+t3o-+qlˠ57'1 G*p[~lm*On*5cd6L4>jF;%{GGXΙT1qOc Z{~( .)x&o]$<aa'uliqrhsv$W Ok:i+ֲyĺ_եdJIzƐͺd{ȱ]7Pwzj_yR@h?ɫ5fRA/]أKXu/1~+Yh!09%'y_" ~i65=NOăIvLgL Mmة *}&BA[̀6/|#EI| '3yc,Nzp@:% `F3>"b puQY7&?1˄ ';|':oCxq{xVsܣB 1Hb(],dUϰ2phCYѠn> $JXr $\&H &RQ*L% 5Z %HD")2#J|0)Lt#M0T拚<Ӏ" d ѡ`9[biF:2J"Q"KM-#a %YdTNFR$\wΒ,wy. N%TV[0L/Ҧ)> ,t TH&WC^(`J 9UBn %LIRT%Z%ӫU%ײRĊq,|ծ=Skpsk Z3rx +V7kF> vdNٺ"]J"{"c43ue$+/4N+BJWqG{$F(Q RCkF쵭_YbyPm{'^6zXo}cʅn}tLa!\ lxl^%\b nrQ|3إB|&X-jľw#:]![A/caci]FnZ'`2mw]3u&PW,V-\66q{g ֍yFF@rbg=o WCK3^ծ8ur}9EuV*T]xʣ. TXlvkej}/ʦ*Ÿεi[J|!`jrBXv;rmagic-2.21/docs/index.html0100644000175000010010000002001607642525574014624 0ustar kilroyNone Report Magic for Analog Documentation - Documentation
Report Magic for Analog Documentation

Documentation

Release 2.21
Copyright © 1999-2003 Wadsack-Allen.
Portions copyright © 1999 DNS.
All Rights Reserved. See the license information

Introduction

With Report Magic for Analog, everyone can create great looking website statistics reports. Report Magic for Analog uses the Computer Readable Output format created by Analog, the most popular logfile analyser in the world. Using this and some simple settings you provide, Report Magic formats beautiful reports with tables, descriptions and graphs.

Using Report Magic for Analog, you can easily maintain a consistent company image with all your reports. By designing the report format to mimic your site's colors and graphics, you can have Analog's statistics reports seem to "fit-in" with the rest of your website. Report Magic for Analog lets you set things like font, foreground and background colors, background images, color themes, and more, thus ensuring a perfect fit with your already desiged site.

This documentation is divided into several section, that are briefly highlighted below.

Quick Start

To learn more about Report Magic for Analog, especially if this is your first time using it, start here. This gives you a step-by-step guide to setting up Report Magic to format your website statistics reports.

What's New

What's New gives a brief overview of the new features the latest versions has to offer. Look this over if you're upgrading to see what has been changed.

Changing the Language

Report Magic can produce reports in several languages. To configure Report Magic to run in a different langauge set the Language setting in the [statistics] section of your settings file for the reports you're running.

Running From CGI

You can run Report Magic as a CGI program to provide instant response from a web-based form. To do this you will have to configure some options, including telling it where to find Analog.

Samples

If you prefer to learn by example, then check out the samples folder in the distribution. These settings files and stylesheets can help you learn some tricks for improving the integration of your statistics with your website.

Last-Minute

If you have not already read the Readme File be sure to check it for last minute changes and notices.

Troubleshooting

If you're having problems with Report Magic and you think everything is set up right, take a look at the FAQ for solutions to some common problems. If that doesn't solve it, go to the Bugs Page online to see if a patch is available or a quick solution. If neither of these works, you can sign up for the Report Magic Help mailing list and post your questions there.

References

The configuration commands used in your settings file are listed and described in Building your Settings File. The letters (and letter combinations) used for some of the settings to specify columns or report are listed in the Columns Reference. An overview of the formats for the settings file are in the File Formats Reference and a detailed discussion of the date formats used in the settings file and the language and definition files is in the Date Format Reference.

Advanced Options

If you're familiar with Report Magic and want to do more, check out the advanced options page for more technical ideas.

Acknowledgments

Many people have helped to make Report Magic portable, international, fast and possbile. In fact, there's a whole page devoted just to them. See here.

Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/inst_mac.html0100644000175000010010000001156307642525574015321 0ustar kilroyNone Report Magic for Analog Documentation - Installing the Macinstosh Binary Package
Report Magic for Analog Documentation

Installing the Macinstosh Binary Package

Saving and Extracting

When you download the Macintosh Binary Package, save the file to a your hard drive. Your browser may automatically expand it to a folder called Report Magic on your desktop or in your download folder, otherwise use Stuff-It ExpanderTM (or a similar uncompressing utility) to open the archive and decompress it to your hard-drive.

Documentation

Within the Report Magic folder will be another folder called docs. From your web browser, open the file index.html in this folder to learn how to use Report Magic for Analog. In the Report Magic folder is also a file called readme.txt. Please see this file for last minute changes.

Installation

The Macintosh Binary Package is ready-to-run. If you have Analog installed and configured, you can procede to "Building you Setting File" in the Report Magic documentation. Remember that it may be useful to put your report.dat file in your Report Magic folder before running Report Magic.

Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/inst_osx.html0100644000175000010010000001333207642525574015366 0ustar kilroyNone Report Magic for Analog Documentation - Installing the Source Package on Mac OS X
Report Magic for Analog Documentation

Installing the Source Package on Mac OS X

Installing Report Magic on Mac OS X Server

It should be fairly easy to install Report Magic from source on Mac OS X 10.2 and later. You can use the fink command to install all the necessary packages including Report Magic itself.

To start with you need to download the Report Magic fink script from the Report Magic Add-on's page.

You will have to enable support for "unstable" packaged to allow this to work, as the lastest gd-pm package (used for graphics) are not classified as stable. You can do this from Fink Commander by selecting the "use unstable preferences" option under the "fink" tab. If you are not using Fink Commander, you can probably achieve this by adding "unstable/main" to the list on the "Trees:" line in your /sw/etc/fink.conf file.

Now use fink to install with this simple command:

	fink install rmagic

That should install all the dependent packages and have a working copy of Report Magic for you.

Testing The Installation

To test your installation, from the Command Prompt, change to the directory where Report Magic was installed and run it:

	./rmagic.pl

This should build a set of sample reports in the folder reports/ using the sample configuration and data included in the package. Check for any error messages and look at the reports in your browser to make sure they look right. If everything is as expected, you can begin building your own configuration.

Documentation

Within the archive are documentation files in a folder called docs. From your web browser open the file index.html to learn how to use Report Magic. In the Report Magic directory is also a file called README. Please see this file for last-minute changes.

Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/inst_osx1.html0100644000175000010010000002743607642525574015461 0ustar kilroyNone Report Magic for Analog Documentation -
Report Magic for Analog Documentation

Supplemental steps to install Report Magic on Mac OS X v0.1

Note: This process was documented using Report Magic 2.05 on Mac OS X 10.0.3 Server and was written by Jim Powell. OS X server 10.1 and 10.2 are configured differently and require different approaches. See Installing Report Magic on Mac OS X Server for more recent instructions.

Disclaimer: I am not an expert at this. This information is mainly based on my experience with trying to install Report Magic on my own system so I can't guarantee that this is the best way of going about this. If you have any recommendations on how to improve this documentation please send them to Wadsack-Allen Digital Group Support.

I would highly recommend installing the Developer Tools packages if you have not already done so. I don't know of any dependencies however so it isn't required.

This is a command line process so if you have not familiarized yourself in some fashion with Terminal, the command line, and at least one text editor like vi, emacs, pico, etc. then you should probably do so before hand, but hopefully this guide will invlove minimal effort

Preparation:

Enable root user using NetInfo Manager if you have not done so already. Download the latest Report Magic Source Package from http://www.reportmagic.org/ (or your nearest mirror) and follow the online installation documentation and refer to this document for any changes that need to be made for compiling on OS X.

The following components will need to be installed (in this order):

System Libraries:

zlib
libpng
jpeg-6b
libgd

Perl Modules:

GD
GD::Text
GD::Graph
GD::Graph3d
Config::IniFiles
HTML::Tagset
HTML::Parser
File::Spec

Installation specifics:

Use tar -xzf <archive name> to decompress the downloaded archives.

System Libraries

zlib:
Despite zlib being included in Mac OS X, it does not include the library files so you will need to download and install zlib. I used the original zlib-1.1.3 source instead of the Darwin port that is listed, but you should technically be able to use either.
libpng:
Untar libpng-1.0.12.tar.gz in the same directory you untared your zlib source and then rename the directories using the following:
        mv zlib-1.1.3 zlib
        mv libpng-1.0.12 libpng
Move or delete the .tar.gz archives before installing. cd to libpng. Copy the appropriate makefile:
        cp ./scripts/makefile.macosx ./Makefile
jpeg-6b:
After running ./configure edit the resulting Makefile so that LIBTOOL = /usr/bin/glibtool
libgd:
This one involves a little editing of the default Makefile so it can find the correct libraries and include files. My settings were as follows:
CFLAGS=-O -DHAVE_LIBPNG -DHAVE_LIBJPEG
LIBS=-lgd -lpng -lz  -lm (I have not gotten the inclusion of -ljpeg to work at the time I write this)
INCLUDEDIRS=-I. -I/usr/local/include -I/usr/local/lib -I/Users/Shared/jpeg -I/Users/Shared/zlib -I/Users/Shared/libpng 
LIBDIRS=-L. -L/usr/local/lib -L/usr/local/bin -L/Users/Shared/jpeg -L/Users/Shared/zlib -L/Users/Shared/libpng

(/Users/Shared/ is where I had left the untared source directories, replace it with the path to the directory you have those directories in)
Should you have compile errors make sure your LIBDIRS and INCLUDEDIRS settings point to where the .a and .h files are actually located, respectively. You can also play with the order of the LIBS to be compiled, but I didn't have much luck with that.

This should complete the system library requirements needed to install and run the necessary Perl modules. At the time of this writing I could not get the autoloading feature of the rmagic/Install.PL script to download the necessary modules [this appears to be an issue in the Mac OS X ftp implementation] so I installed the modules manually. Below I have made note of any necessary changes.

For the most part I did as little as possible so I could get things up and running, but you may wish to make changes to the resulting Makefiles for each module after running Makefile.PL to change where the module is installed, etc.

Perl Modules

GD:: modules:Before compiling you need to update you ranlib database as root with: ranlib /usr/local/lib/*.a [assuming this is where you installed the library files, which is the default]

Now you can continue by issuing perl Makefile.PL, make, make test, and make install

Assuming that you were able to compile libgd successfully you should not encounter any major problems compiling the GD, GD::Text, GD::Graph, or GD::Graph3d modules. You should expect some of the subtests for each module to fail but it's nothing to worry about as long as the majority succeed.

HTML::TagSet should be installed before HTML::Parser. HTML::Parser includes the HTML::Entities module that Report Magic uses.

Once you've installed all the modules go back to where you left the Report Magic Source Package archive and untar it if you haven't already done so. cd into the resulting directory. If you have a specific directory (e.g. /Library/WebServer/Documents/, so you can access the resulting reports via a browser [note there may be some security issue with putting Report Magic in your webserver documents directory]) that you want the Report Magic directory to be installed to, then edit the $DEST variable of the Install.PL script.

If you don't install into /Library/WebServer/Documents/ then you will need to change the output destination of Report Magic in the rmagic.ini file so that it will generate the reports into a directory that is accessible from your webservers root directory. Issue the perl Install.PL -no_modules command

Go to the directory that was just installed called "rmagic" and in there you will find the rmagic.sample and sample.dat files. The rmagic.sample is an example settings file, so just run the rmagic.pl application to test your installation and make sure everything works. You should end up with a "reports" directory below your installation directory containing all the reports.

If everything goes as planned you should now be the proud administrator of a much more flexible report formatter. To start customizing Report Magic for your own server see the Quick Start page

Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/inst_src.html0100644000175000010010000005240707642525574015352 0ustar kilroyNone Report Magic for Analog Documentation - Installing the Source Package
Report Magic for Analog Documentation

Installing the Source Package

Saving and Extracting

When you download the package file, store it somewhere on your hard drive (like /usr/src/rmagic or ~/rmagic). When it's completed, uncompress the archive using gzip and/or tar or some similar utility. If you have GNU tar you can simply use 'tar -xzf rmagic-*.tar.gz'.

Documentation

When you uncompress the archive, it will create a subdirectory under the location you told it called docs. From your web browser (or vi if it reads HTML files on your system), open the file index.html in this directory to learn how to use Report Magic for Analog. In the Report Magic directory is also a file called README. Please see this file for last-minute changes.

Installation

(These instructions are also in the file INSTALL in the root of the source package archive.) 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 What's New 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 really should have 5.005 or 5.6) 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 the perl.com home page 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. If you want jpeg support, you can install the jpeg-6b library.

Using Packages

It is much easier to install the libgd library from a package, if your operating system supports such. Of course, you will probably want to make sure a recent version is available. As of this writing, libgd is at version 1.8.3. The following packages were known to exist at this time as well:

Debian Linux
A complete Report Magic package is available for Debian Linux. It may not be the latest version, but it should have links to all dependent packages
FreeBSD
Report Magic is available in the FreeBSD ports collection as www/reportmagic on releases after 4.2. There is also a ready-to-run package on the FTP mirror sites and CDs after 4.2. Analog is in www/analog. Details on installing ports are covered in the Handbook. Basically, in each directory 'make install && make clean' will do the job and recover the drive space used. This may not be the latest version, but it should have links to depenedent packages.
RedHat Linux
You can use the RPM for libgd to get the system libraries installed. Then just run the Install.PL to install the Perl modules and Report Magic files.
Solaris
There are libgd packages available for most sparc versions of Solaris:
Use these as a starting point, then run Install.PL to get the Perl modules and Repport Magic files installed.
Mac OS X
There is a separate set of instruction here that details the installation of Report Magic on Mac OS X.

Building from source

If one of the above packages does not work for you, then you can procede with the standard install procedure described below to install libgd from the source.

zlib
The zlib compression library can be acquired from various mirrors at gzip.org 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://www.libpng.org/pub/png/src/. 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 this page. 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 ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz. 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 the link at the top of the GD web page and extract it. Read the installation documentation and the license. NOTE you will need to edit at least the LIBS and CFLAGS lines Makefile if you wish to include support for jpeg or ttf. You may also have to add -I/usr/local/include/freetype to the INCLUDEDIRS= line to make it work with freetype-1.3.1. Read the notes in the Makefile for more information. You can then build the library with the standard:
	$ make
	# make install (as root)

Installing rmagic and Perl modules

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/pub/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

Manual Installation of Perl Modules

Report Magic for Analog requires several Perl modules, as well as the core Perl interpreter. If you've chosen not to autoload the necessary, Perl modules, they are shown below in the recommended install order. After each module name is a version number indicating when in the Report Magic history, the module dependency was added. If you are upgrading from a previous version, you need only add modules that show a newer version dependency than the one you are upgrading from.

Each Perl module will install with the standard perl install method:

	perl Makefile.PL
	make
	make test
	make install

CPAN Modules

GD Since 1.0 BETA 1
In order to generate the graphs, Report Magic uses Licoln Stein's GD.pm graphics module interface for Thomas Boutell's libgd graphics library. (If you are running ActivePerl on Win32 this ships with the distribution so you can just continue on to the next item.) The libgd graphics library now outputs PNG format graphics files. This means it, in turn requires libpng, which, in turn, requires zlib for compression. This is a lot of installation, compilation and work (as documentated above), but you'll only need to do it once. If you have an older version of libgd, but want PNG support, follow those instructions to update it.
If you haven't already installed these libraries, follow the instructions above and then continue with the Perl GD module installation. Next, install the GD.pm Perl interface module. This can be downloaded from CPAN. Check here for the latest version of GD.
GD::Text Since 1.3
Martien Verbruggen's GD::Text module is the source for all text and font handling in the GD::Graph and GD::Graph3d modules. You can find the latest version on CPAN in this directory.
GD::Graph Since 1.3
Martien Verbruggen's GD::Graph module is used as the basis for the graphs. This replaces GIFgraph. If you are upgrading from an older version, Report Magic does not and will no longer need GIFgraph. You can find the latest version on CPAN in this directory.
GD::Graph3d Since 1.3
Extension to Martien Verbruggen's GD::Graph module is used for the 3D graphs. You can find the latest version on CPAN in this directory.
Config::IniFiles Since 2.0 BETA 1
Teh Config::IniFiles package is used to read the configuration and settings files. You can find the latest version here.
HTML::Tagset Since 1.0 BETA 1
This module is a required by the HTML::Parser package by Gisle Aas. You can find the latest version on CPAN here.
HTML::Entities Since 1.0 BETA 1
This module is a part of the HTML::Parser package by Gisle Aas. You can find the latest version on CPAN here.
File::Spec Since 1.0 BETA 3
This modules is part of Perl 5.005 distributions, so if you Perl is 5.005 or newer you don't need to get this. If you're using VMSPerl, make sure you update to the latest available version and install the patch available from http://www.xray.mpe.mpg.de/mailing-lists/vmsperl/1999-05/msg00058.html. If you are running MacPerl, OS/2Perl or Perl 5.004, File:Spec does NOT ship with those distributions. You can get it from CPAN here.
Time::Local Since 2.10
This modules is part of Perl 5.005 and later distributions, so if you Perl is 5.005 or newer you don't need to install this. If you're using MacPerl or other Perl 5.004 or earlier, you can dowload a copy of the Time::Local module from our website here. To install it, save it to a folder called Time under your Report Magic folder.
File::Spec Since 2.20
You can download this from CPAN here. Install using the steps above.

Perl Modules

These modules ship with Perl 5.004 or higher. They are listed here for completeness, but you should not need to worry about adding or finding them.

File::Copy Since 1.0 BETA 1
File::Basename Since 1.0 BETA 3
File::Path Since 1.0 BETA 3
These modules are in the File directory on CPAN.
FindBin Since 1.0 BETA 1
lib.pm Since 1.0 BETA 1
These two modules are listed by name on CPAN here.
Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/inst_win.html0100644000175000010010000001133507642525574015353 0ustar kilroyNone Report Magic for Analog Documentation - Installing the Windows Binary Package
Report Magic for Analog Documentation

Installing the Windows Binary Package

Saving and Extracting

When you download the Windows Binary Package, save the file to a directory on your hard drive. The Binary is a self-extracting archive, so when it's completed just run the executable. You can tell the self-extractor where you want to store the Report Magic files (it defaults to 'C:\Program Files\ReportMagic\').

Documentation

When you run the self-extracting archive, it will create a subdirectory under the location you told it called docs. From your web browser, open the file index.html in this directory to learn how to use Report Magic for Analog. In the Report Magic directory is also a file called readme.txt. Please see this file for last-minute changes.

Installation

The Windows Binary Package is ready-to-run. If you have Analog installed and configured, you can procede to "Building you Setting File" in the Report Magic documentation.

Send questions or comments to Wadsack-Allen Digital Group Support.
Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
rmagic-2.21/docs/jpeg.txt0100644000175000010010000000744207642525574014325 0ustar kilroyNoneThe Independent JPEG Group's JPEG software The authors make NO WARRANTY or representation, either express or implied, with respect to this software, its quality, accuracy, merchantability, or fitness for a particular purpose. This software is provided "AS IS", and you, its user, assume the entire risk as to its quality and accuracy. This software is copyright (C) 1991-1998, Thomas G. Lane. All Rights Reserved except as specified below. Permission is hereby granted to use, copy, modify, and distribute this software (or portions thereof) for any purpose, without fee, subject to these conditions: (1) If any part of the source code for this software is distributed, then this README file must be included, with this copyright and no-warranty notice unaltered; and any additions, deletions, or changes to the original files must be clearly indicated in accompanying documentation. (2) If only executable code is distributed, then the accompanying documentation must state that "this software is based in part on the work of the Independent JPEG Group". (3) Permission for use of this software is granted only if the user accepts full responsibility for any undesirable consequences; the authors accept NO LIABILITY for damages of any kind. These conditions apply to any software derived from or based on the IJG code, not just to the unmodified library. If you use our work, you ought to acknowledge us. Permission is NOT granted for the use of any IJG author's name or company name in advertising or publicity relating to this software or products derived from it. This software may be referred to only as "the Independent JPEG Group's software". We specifically permit and encourage the use of this software as the basis of commercial products, provided that all warranty or liability claims are assumed by the product vendor. ansi2knr.c is included in this distribution by permission of L. Peter Deutsch, sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA. ansi2knr.c is NOT covered by the above copyright and conditions, but instead by the usual distribution terms of the Free Software Foundation; principally, that you must include source code if you redistribute it. (See the file ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part of any program generated from the IJG code, this does not limit you more than the foregoing paragraphs do. The Unix configuration script "configure" was produced with GNU Autoconf. It is copyright by the Free Software Foundation but is freely distributable. The same holds for its supporting scripts (config.guess, config.sub, ltconfig, ltmain.sh). Another support script, install-sh, is copyright by M.I.T. but is also freely distributable. It appears that the arithmetic coding option of the JPEG spec is covered by patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot legally be used without obtaining one or more licenses. For this reason, support for arithmetic coding has been removed from the free JPEG software. (Since arithmetic coding provides only a marginal gain over the unpatented Huffman mode, it is unlikely that very many implementations will support it.) So far as we are aware, there are no patent restrictions on the remaining code. The IJG distribution formerly included code to read and write GIF files. To avoid entanglement with the Unisys LZW patent, GIF reading support has been removed altogether, and the GIF writer has been simplified to produce "uncompressed GIFs". This technique does not use the LZW algorithm; the resulting GIF files are larger than usual, but are readable by all standard GIF decoders. We are required to state that "The Graphics Interchange Format(c) is the Copyright property of CompuServe Incorporated. GIF(sm) is a Service Mark property of CompuServe Incorporated." rmagic-2.21/docs/libgd.txt0100644000175000010010000000335007642525574014453 0ustar kilroyNoneCOPYRIGHT STATEMENT FOLLOWS THIS LINE Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000 by Cold Spring Harbor Laboratory. Funded under Grant P41-RR02188 by the National Institutes of Health. Portions copyright 1996, 1997, 1998, 1999, 2000 by Boutell.Com, Inc. Portions relating to GD2 format copyright 1999, 2000 Philip Warner. Portions relating to PNG copyright 1999, 2000 Greg Roelofs. Portions relating to libttf copyright 1999, 2000 John Ellson (ellson@lucent.com). Portions relating to JPEG copyright 2000, Doug Becker and copyright (C) 1994-1998, Thomas G. Lane. This software is based in part on the work of the Independent JPEG Group. Portions relating to WBMP copyright 2000 Maurice Szmurlo and Johan Van den Brande. Permission has been granted to copy, distribute and modify gd in any context without fee, including a commercial application, provided that this notice is present in user-accessible supporting documentation. This does not affect your ownership of the derived work itself, and the intent is to assure proper credit for the authors of gd, not to interfere with your productive use of gd. If you have questions, ask. "Derived works" includes all programs that utilize the library. Credit must be given in user-accessible documentation. This software is provided "AS IS." The copyright holders disclaim all warranties, either express or implied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, with respect to this code and accompanying documentation. Although their code does not appear in gd 1.8.4, the authors wish to thank David Koblas, David Rowley, and Hutchison Avenue Software Corporation for their prior contributions. END OF COPYRIGHT STATEMENT rmagic-2.21/docs/libpng.txt0100644000175000010010000000754107642525574014653 0ustar kilroyNoneThis copy of the libpng notices is provided for your convenience. In case of any discrepancy between this copy and the notices in the file png.h that is included in the libpng distribution, the latter shall prevail. COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: If you modify libpng you may insert additional notices immediately following this sentence. libpng versions 1.0.7, July 1, 2000, through 1.2.1, December 12, 2001, are Copyright (c) 2000 Glenn Randers-Pehrson and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals added to the list of Contributing Authors Simon-Pierre Cadieux Eric S. Raymond Gilles Vollant and with the following additions to the disclaimer: There is no warranty against interference with your enjoyment of the library or against infringement. There is no warranty that our efforts or the library will fulfill any of your particular purposes or needs. This library is provided with all faults, and the entire risk of satisfactory quality, performance, accuracy, and effort is with the user. libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are Copyright (c) 1998, 1999 Glenn Randers-Pehrson, and are distributed according to the same disclaimer and license as libpng-0.96, with the following individuals added to the list of Contributing Authors: Tom Lane Glenn Randers-Pehrson Willem van Schaik libpng versions 0.89, June 1996, through 0.96, May 1997, are Copyright (c) 1996, 1997 Andreas Dilger Distributed according to the same disclaimer and license as libpng-0.88, with the following individuals added to the list of Contributing Authors: John Bowler Kevin Bracey Sam Bushell Magnus Holmgren Greg Roelofs Tom Tanner libpng versions 0.5, May 1995, through 0.88, January 1996, are Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. For the purposes of this copyright and license, "Contributing Authors" is defined as the following set of individuals: Andreas Dilger Dave Martindale Guy Eric Schalnat Paul Schmidt Tim Wegner The PNG Reference Library is supplied "AS IS". The Contributing Authors and Group 42, Inc. disclaim all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The Contributing Authors and Group 42, Inc. assume no liability for direct, indirect, incidental, special, exemplary, or consequential damages, which may result from the use of the PNG Reference Library, even if advised of the possibility of such damage. Permission is hereby granted to use, copy, modify, and distribute this source code, or portions hereof, for any purpose, without fee, subject to the following restrictions: 1. The origin of this source code must not be misrepresented. 2. Altered versions must be plainly marked as such and must not be misrepresented as being the original source. 3. This Copyright notice may not be removed or altered from any source or altered source distribution. The Contributing Authors and Group 42, Inc. specifically permit, without fee, and encourage the use of this source code as a component to supporting the PNG file format in commercial products. If you use this source code in a product, acknowledgment is not required but would be appreciated. A "png_get_copyright" function is available, for convenient use in "about" boxes and the like: printf("%s",png_get_copyright(NULL)); Also, the PNG logo (in PNG format, of course) is supplied in the files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). Libpng is OSI Certified Open Source Software. OSI Certified Open Source is a certification mark of the Open Source Initiative. Glenn Randers-Pehrson randeg@alum.rpi.edu December 12, 2001 rmagic-2.21/docs/license.html0100644000175000010010000002560207642525574015145 0ustar kilroyNone Report Magic for Analog Documentation - License Agreement
Report Magic for Analog Documentation

License Agreement

Report Magic for Analog is Copyright © 1999,2002 Wadsack-Allen. Portions copyright © 1999 DNS. All Rights Reserved.

The "Artistic License"

Preamble

The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications.

Definitions:

Package
"Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification.
Standard Version
"Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder as specified below.
Copyright Holder
"Copyright Holder" is whoever is named in the copyright or copyrights for the package.
You
"You" is you, if you're thinking about copying or distributing this Package.
Reasonable copying fee
"Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.)
Freely available
"Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it.
  1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers.
  2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version.
  3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following:
    1. place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as uunet.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package.
    2. use the modified Package only within your corporation or organization.
    3. rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version.
    4. make other distribution arrangements with the Copyright Holder.
  4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following:
    1. distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version.
    2. accompany the distribution with the machine-readable source of the Package with your modifications.
    3. give non-standard executables non-standard names, and clearly document the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version.
    4. make other distribution arrangements with the Copyright Holder.
  5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. You may embed this Package's interpreter within an executable of yours (by linking); this shall be construed as a mere form of aggregation, provided that the complete Standard Version of the interpreter is so embedded.
  6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whoever generated them, and may be sold commercially, and may be aggregated with this Package. If such scripts or library files are aggregated with this Package via the so-called "undump" or "unexec" methods of producing a binary executable image, then distribution of such an image shall neither be construed as a distribution of this Package nor shall it fall under the restrictions of Paragraphs 3 and 4, provided that you do not represent such an executable image as a Standard Version of this Package.
  7. C subroutines (or comparably compiled subroutines in other languages) supplied by you and linked into this Package in order to emulate subroutines and variables of the language defined by this Package shall not be considered part of this Package, but are the equivalent of input as in Paragraph 6, provided these subroutines do not change the language in any way that would cause it to fail the regression tests for the language.
  8. Aggregation of this Package with a commercial distribution is always permitted provided that the use of this Package is embedded; that is, when no overt attempt is made to make this Package's interfaces visible to the end user of the commercial distribution. Such use shall not be construed as a distribution of this Package.
  9. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission.
  10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    1. The End

      Other Licenses

      If you are using one of the binary distriubtions, then, this includes software components covered under additional license. Please see the files FTL.txt, libgd.txt, libpng.txt, zlib.txt and jpeg.txt in the documentation directory.

      Send questions or comments to Wadsack-Allen Digital Group Support.
      Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
      rmagic-2.21/docs/map.html0100644000175000010010000001163107642525574014275 0ustar kilroyNone Report Magic for Analog Documentation - Documentation Map
      Report Magic for Analog Documentation

      Documentation Map

      Introduction
      	Getting Started
      		Source Package Installation Instructions
      		Windows Binary Package Installation Instructions
      		Macintosh Binary Package Installation Instructions
      		Building Your Settings File
      			Report settings
      				Columns Reference
      				Reports Reference
      			Date Format Reference
      			Number Format Reference
      			File Formats Reference
      		Running Report Magic
      		Running Report Magic Under CGI
      	What's New with Version 1.1
      		Changes Since Previous Versions
      		Changes in Pre-release Versions
      	Frequently Asked Question
      	Advanced Options
      	Acknowledgments
      Index
      License Agreement
      
      Send questions or comments to Wadsack-Allen Digital Group Support.
      Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
      rmagic-2.21/docs/numfmts.html0100644000175000010010000001507407642525574015216 0ustar kilroyNone Report Magic for Analog Documentation - Number Format Specification
      Report Magic for Analog Documentation

      Number Format Specification

      Report Magic allows you to customize number formats in some places, most notably for localization. Wherever number formats are allowed, the following discusses how they are applied.

      The number format is made up of recognized symbols. Note that however these may be localized in your language, they should appear exactly as shown here. (e.g. "." is a decimal point, even if it will be shown as "," when localized for your language.)

      #
      Represents an optional digit. When placed right of the decimal point means that zero or more digits (whatever exists in the number) will be written after the decimal point. No decimal point will be written if the number has no fractional portion.
      0
      Represents a single, required digit at the location in the format string. To the right of the decimal, rounds or guarantees that the number shows that many digits of it's fractional portion. To the left of the decimal point, padds the number with 0's as necessary.
      .
      Represents the location of the decimal point between the number parts. This character will be localized to whatever character is used in the locale to separate integral and fractional componenets of a number.
      ,
      To the left of the decimal point (or end of the format, if no decimal point is given) tells where to place a separator character in the integral portion of the number. For example, many languages split the integral portion into thousands, using a separator: 1,234,556. This character will be localized to whatever characters is used in the locale for this separation.
      %
      Specifies the location of the percent symbol in the format. This symbol will be localized (where applicable). The number is not divided by 100. It is assumed to already represent a percent quantity/
      $
      Specifies the location of the currency symbol in the format. This symbol will be localized (where applicable). No conversion is done on the value, it is assumed to already represent the value in the locale's currency.

      The following examples may help to clarify the format specification:

      Input Value Format Output Value
      87.4 #.# 87.4
      87.4 # 87
      87.4 #.#0 87.40
      87.4 #.#% 87.4%
      87.4 $#.#0 $87.40
      1234.47 #,###.# 1,234.47
      1234.47 #.0 1234.5
      Send questions or comments to Wadsack-Allen Digital Group Support.
      Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
      rmagic-2.21/docs/overview.html0100644000175000010010000002600507642525574015367 0ustar kilroyNone Report Magic for Analog Documentation - Quick Start
      Report Magic for Analog Documentation

      Quick Start

      Installation

      The first step to using Report Magic for Analog is to install it. You've probably already downloaded Report Magic (if not see the download page online). Next you need to extract the archive into the directory you wish to install Report Magic in. For specific install instructions for each package choose one of the following:

      Testing Your Installation

      After installing, it is a good idea to test the installtion. Report Magic ships with some sample data you can use to test the setup. Here are the instructions to follow for testing, depending on your platform:

      Source Package
      From the rmagic directory, type ./rmagic.pl. Report Magic will create a set of report files in the reports/ directory. Verify these with your web browser (or lynx).
      Windows Binary Package (Quick and Dirty)
      From Explorer, go to 'Program Files', then 'WADigital', then 'ReportMagic'. Double-click the Report Magic icon. Report Magic will create a folder called 'reports' and put all the reports in there. Look for a file in the 'reports' folder called 'index.html' and double-click it to see the results in your browser.
      Windows Binary Package (Using a Command Prompt)
      Go to Start|Program|Command Prompt (this may be elsewhere, like Start|Programs|Accessories|System Tools on ME or 2000). Enter cd "\Program Files\WADigital\ReportMagic". Type rmagic and press enter. You will see the status as it creates the reports. When done, open the reports in the reports folder as described above.
      Macintosh Binary Package
      From the Report Magic folder, Double-click the Report Magic icon. Report Magic will create a folder called 'reports' and put all the reports in there. Look for a file called 'index.html' in the reports folder and double-click it to see the results in your browser.

      Configuration

      Now, you'd probably like to get some results from your own logs. First, you will need to have Analog installed and configured on your system or server. If you have not done this already, go to the Analog Web Site and follow the instuctions there. While configuring Analog, it is helpful to use the OUTPUT HTML configuration (the default) so you can preview the reports to make sure they contain all the right data.

      Setting up Analog for use with Report Magic

      Now that you have Analog running, you will want to create a new Analog configuration file or modify your current one to tell Analog to create Computer Readable Output. (If you are creating a new configuration file for Report Magic, try to get it working in Analog with the standard Analog HTML output first. That way, you know what kind of results you'll be generating and you can isolate any problems with the analysis before you get to the formatting.) There are only two lines that need to be changed (or added) to an Analog configuration to make it work with Report Magic:

      The first line to change tells Analog what kind of output to create. Find a line with that starts with the word OUTPUT and change it to read as follows. If no such line exists (as in the default configuration) just add this line anywhere in the Analog configuration file (although it's helpful to put it next to the OUTFILE line, below).

      OUTPUT COMPUTER

      The next line to change tells Analog where the output is going. We don't want to overwrite any existing Analog reports, and we're not creating HTML output so lets change the line starting with the word OUTFILE to:

      OUTFILE report.dat

      (Of course, if you're running Report Magic in a different directory than Analog, then you'll probably want this file to end up there, so put in any path information necessary.)

      Having done that, go ahead and run Analog with your new configuration file. Analog will tell you if there are any problems with the configuration you've created. If the configuration is good, Analog will create the report.dat computer readable output file that Report Magic uses.

      MAC USERS: It will be easiest if, after creating your report.dat file, you copy/move it to the Report Magic directory. This way, when creating your Report Magic settings file, you won't need to worry about paths.

      Setting up Report Magic

      Next, you'll want to set up the output and formatting options for Report Magic. The easiest way to start is to make a copy of the rmagic.sample file in the distribution, rename it to rmagic.ini (Report Magic.ini for the Mac Edition) and edit that.

      In your new rmagic.ini file you will want to change the following settings:

      [statistics]
      File_In
      Set this to point the the file you created with Analog. If you copied it to the Report Magic directory, then just set this to report.dat
      [reports]
      File_Out
      Set this to the path where you want to write the report files.
      [website]
      Title
      Give a title for your reports.

      Running Report Magic

      When your settings file is completed, you can run Report Magic for Analog to generate your report files.

      On Windows just type this on the command line in the Report Magic directory or double click the Report Magic icon:

      rmagic

      If you have the source version you can run it from a command line like this (assuming you installed Perl in /usr/bin/perl):

      ./rmagic.pl

      If you have a Mac Binary version just double click the Report Magic icon.

      When Report Magic is complete you should have a new set of report files in the reports subdirectory. Open the file index.html with your web browser to start viewing your reports.

      Going Further

      Report Magic has a lot of options and configurations. The first things you will probably want to do is change some of the settings to configure the reports to look the way you want. Complete details of all the settings that Report Magic will understand can be found on the page Building your Settings File.

      If you want to tell Report Magic to use a different settings file than rmagic.ini or you want to set options from the command-line (for scripts and scheduling, for example) see the page Running Report Magic for Analog.

      If you learn better by example, take a look at some of the samples settings files and style sheets in the samples folder in the distribution. If you have other questions, check the Frequently Asked Questions for the answer.

      Send questions or comments to Wadsack-Allen Digital Group Support.
      Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
      rmagic-2.21/docs/repconf.html0100644000175000010010000006022407642525574015156 0ustar kilroyNone Report Magic for Analog Documentation - Report Settings
      Report Magic for Analog Documentation

      Report Settings

      reports section

      The reports section of your setting files contains settings that customize the look of the reports. The settings can be considered 'defaults' that are applied to all reports. Specific reports can have their own sections as described below

      reports Section

      [reports]
      File_Out = reports/
      Active_Column=R
      Meta_Refresh = 86400
      Image_Dir = ../images/
      Stylesheet = styles.css
      Reverse_Time = 1
      Graph_Level = 1
      
      BG_Color = #FFFFFF
      Background = images/background.gif
      
      Font = Verdana, Arial, Helvetica, sans-serif
      Font_Color = #000000
      
      Title_Font = Comic Sans MS, Brush Script, Helvetica, sans-serif
      Title_BG_Color = #000000
      Title_Font_Color = #FFFFFF
      
      Data_Font = Verdana, Arial, Helvetica, sans-serif
      Data_Font_Color_1 = #000000
      Data_BG_Color_1 = #F0F0F0
      Data_Font_Color_2 = #000000
      Data_BG_Color_2 = #FFFFFF
      
      Data_Total_Font = Verdana, Arial, Helvetica, sans-serif
      Data_Total_Font_Color = #000000
      Data_Total_BG_Color = #FFCCCC
      
      Data_Header_Font = Verdana, Arial, Helvetica, sans-serif
      Data_Header_Font_Color = #000000
      Data_Header_BG_Color = #CCCCFF
      
      File_Out
      This is the file and/or directory where the report page(s) will be made. If this is a filename (e.g. /stats/report.html) and then Report Magic will build all the reports in this one file (like Analog does). If this is an output directory (e.g. /stats/) then Report Magic will buils each report in it's own file in that directory. The directory specified here (by itself or as a part of the filename) is used for all files generated by Report Magic (including the frameset and navigation pages, if generated).
      In this option (as well as statistics_Frame_File_Out and navigation_File_Out) you can add two types of codes to tell Report Magic to create a custom name for the file. The first code is %infile% which, if inserted anywhere in the filename, will be replaced with the name of the input data file without its extension. For example, if under the [statistics] section, File_In=/usr/bin/analog/virtualhost1.dat then if you set this option to '/htdocs/%infile%/', all report files for this data file would be created in the directory '/htdocs/virtualhost1/'. The second code type allows you to insert the date (and/or time) of the last request from your reports in the output filename. For example, if you set this option to '/htdocs/%yyyymmdd%/' and ran the report on January 1st, 2002, using log files that ended December 31, 2001, you would have all your reports stored in the directory '/htdocs/20011201/'. For more details on how to specify a date format see the Date Format Reference.
      The special filename '-' can be used to tell Report Magic to write the report to the standard output (STDOUT) (i.e. your display or terminal window or a pipe, '|', on a command line to another program). Using this filename will force Report Magic to create a single-file, non-frames report with no Quick Summary.
      Active_Column (Optional)
      This tells Report Magic for Analog which column to use for charts and determining the "Most Active" period in the Quick Summary. By default same measure is used for all reports. You can change this on a report-specific level by defining this value in a report-specific section of you settings file. See Reports specific sections, below for more details.
      For a list of valid codes see the Active Column section of the columns reference. This setting takes a single-characer code that must correspond to one of the columns in your Analog data file. If there are no matching columns, then Report Magic will not create a chart for that report. In other words, if you set 'Active_Column=P', to use Requests for Pages to determine activity, then make sure that your reports have that data by settings their *COLS in your Analog configuration file. If you want pie charts, make sure to include include 'p' (Percent of Page Requests) in those *COLS settings.
      If this value is not set, Report Magic defaults to the first column in the first report (usually the Monthly Report).
      Meta_Refresh (Optional)
      This option will include a META REFRESH tag in each report file telling the browser to expire the data after the number of seconds you set this to. For example, if you set Meta_Refresh=86400 the browser will automatically reload the contents every 24 hours. If this is 0 or not included, no META tag will be written in the report file(s).
      Image_Dir (Optional)
      This option can be used to tell Report Magic where to find the logo graphics files (for Analog, WADigital and DNS) for the bottom of the reports. Normally, Report Magic copies the logos to the report directory. If you are running lots of client sites you may want to put the logos in one central place and have all reports referr to that place. The value of this should be a URL reference, relative to the report output directory on your web site. You should include the final '/' in the directory reference. For example, if you have all your reports in the /stats/reports/ directory on your website and put the images in /stats/images/, then you would set this option to '../images'. Note: you can use a host name (absolute URL) as well as a relative URL for this option.
      Stylesheet (Optional)
      This points to a file contianing a stylesheet for Report Magic to use for styles. If your output format is 'XHTML 1.0' then the reports will contain a link to this sheet. In this case, this should be a URL and you need to make the stylesheet available to the web page when you publish the reports. If your output format is 'HTML 3.2' then this should be a local filename and the reports will be built with <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.
      Reverse_Time (Optional)
      This option will reverse the direction of data in time report graphs. Use this if you've configured Analog to output time reports with data from newest to oldest (i.e. used the *BACK option). This makes sure the graphs come out looking right, because people expect a time-axis to run from oldest to newest (left to right).
      Graph_Level (Optional)
      This option affects hierarchical report only. It tells the report to graph a different level of the hierarchy than the primary one. This is useful, for example, in the Directory Report, when using it as a Virtual Host report. Without setting this (or setting it to the default value of '1'), only the first level item 'http://' will be graphed. What you really want is the second level. By setting this to '2', you would graph each virtual domain in your "directory" report.
      Show_Bytes_As (Optional)
      This takes a value like "K", "M", "G", "T", etc. If given, then Report Magic will reduce byte counts in reports to only this value. For example, if the value is "M", then all reports will show all byte counts in megabytes (MB) with the fully reduced value following in parentheses. (e.g. 2940941107 bytes would be reduced to "2804 MB (2.739GB)". If no value is given for this, then byte counts are reduced completely as usual.
      BG_Color (Optional)
      This is an optional background color* for the report page(s).
      Background (Optional)
      This is an optional image for the background of the report page(s).
      Font (Optional)
      This is the name of the desired typeface for the description and other text on the report page(s). This can be a comma-separated list of typeface options, such as "Arial, Helvetica, sans-serif".
      Font_Color (Optional)
      This is the color* of the output text on the report page(s). This color is also used for the labels, titles and axis in the graphs. Only about 30 colors are recognized in the graphs. If the color you choose is not known, it will revert to black for the graph titles, labels and axis.
      Title_Font (Optional)
      This is the name of the desired typeface for the report titles. This can be a comma-separated list of typeface options, such as "Arial, Helvetica, sans-serif".
      Title_BG_Color (Optional)
      This is the background color* of the report title boxes. Report titles are bounded by a box so can have a background color or even be "reversed" (e.g. white on black).
      Title_Font_Color (Optional)
      This is the color* of the report title text. See Title_BG_Color about creating "reversed" type titles.
      Data_Font (Optional)
      This is the name of the desired typeface for the data columns on the report page(s). This can be a comma-separated list of typeface options, such as "Arial, Helvetica, sans-serif".
      Data_Font_Color_1 (Optional)
      This is the color of the text for the data in one set of rows (defaults to Font_Color).
      Data_BG_Color_1 (Optional)
      This is the background color* of one set of data rows. Data sets can use two colors that alternate with rows for better legibility.
      Data_Font_Color_2 (Optional)
      This is the color of the text for the data in the other set of rows (defaults to Font_Color).
      Data_BG_Color_2 (Optional)
      This is the background color* of the other set of data rows. See Data_Color_1 above for the alternate color.
      Data_Total_Font (Optional)
      This is the name of the desired typeface for the summary data rows (defaults to Data_Font).
      Data_Total_Font_Color (Optional)
      This is the name of the color for the text in the summary data rows (defaults to Data_Font_Color).
      Data_Total_BG_Color (Optional)
      This is the background color* of the totals rows on summary reports. These rows provide additional summary information, but are not graphed.
      Data_Header_Font (Optional)
      This is the name of the desired typeface for the table header rows (defaults to Data_Font).
      Data_Header_Font_Color (Optional)
      This is the name of the color for the text in the table header rows (defaults to Data_Font_Color).
      Data_Header_BG_Color (Optional)
      This is the background color* of data table headers.

      *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).

      graphs section

      The graphs section of your setting files contains settings to control the formatting of the graphs.

      [graphs]
      BG_Color = #FFFFCC
      Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10
      Font_Color = #000000
      Width = 400
      Height = 300
      3d = 1
      Palette = lgreen, lblue, lred, lpurple,lyellow, green, blue, red, purple, yellow
      Cycle_Colors = 1
      Shadows = 1
      Format = png
      Path_To = /web/images/
      URL_To = /images/
      
      BG_Color (Optional)
      This allows you to specify a color to be used for the graphing area of the graph. If none is given this will use the report page background color. This is separate from the background color for the graph image which will always match the report page backgroun color.
      Font (Optional)
      This can be set to the full path of a True Type font that will be used for all text in the graphs. To use this on the source package, you must have installed lttf (see the Source Package Installation Notes for details).
      You can also customize the point size used for elements of the graphs. To do this you would follow the font name with a comma and a comma-separated list of 3 point sizes to use for graph title, axes titles and values labels. For example, you could specify Font=C:\Windows\Fonts\arial.ttf, 24, 14, 10. Be careful not to use too large of a font size or you won't leave room for the graph and you'll get a 'Vertical size to small' error.
      Mac Users The Mac version of Report Magic does not yet support True Type fonts. Therefore this option is ignored on the Mac platform.
      Font_Color (Optional)
      This is the color of the graph text. The grid lines and axes are colored between this and the BG_Color, defined above. This defaults to the report page text color.
      Width (Optional)
      This gives the desired width (in pixels) of the graph. Default is 400. You can change this on a report-specific basis by setting this under the report's section. See below.
      Height (Optional)
      This gives the desired height (in pixels) of the graph. Default is 300. You can change this on a report-specific basis by setting this under the report's section. See below.
      3d (Optional)
      This if set to 1, will draw 3d graphs, 0 draws 2d graphs. Default is 1. You can also specify 2d or 3d on individual graphs using, for example, 'lines2d' or 'lines3d' for the GraphType setting in the report specific sections. You can change this on a report-specific basis by setting this under the report's section. See below
      Palette (Optional)
      This gives a comma-separated list of color names to use for the bars in the bar charts. Valid colors include any 6 digit hex code, preceded by a number/hash symbol ("#") or one of (white, lgray, gray, dgray, black, lblue, blue, dblue, gold, lyellow, yellow, dyellow, lgreen, green, dgreen, lred, red, dred,lpurple, purple, dpurple, lorange, orange, pink, dpink, marine, cyan, lbrown, dbrown).
      Cycle_Colors (Optional)
      If this is set to 1, each bar in a series on the bar charts will use a different color from the Palette list. If set to 0, all bars will use the first color. Default is 1.
      Shadows (Optional)
      If this is set to 1, Report Magic will draw drop-shadows on the bars in the bar charts. Set this to 0 to disable the shadows. Default is 1.
      Format (Optional)
      This give the desired ouput format for graph images. Valid values are PNG and JPEG (and 'GIF' if you have a really old verion of libgd). Default is PNG because the files are much smaller. This will only work when you build Report Magic with support for the proper file types. For Windows users, both formats are supported. For Mac users, you will only get GIF format. On other platforms, this depends on the options you used when you built libgd. See the source package installation for details.
      Path_To
      This specifies a path where the graph files should be stored on the server. By default, Report Magic stores graph files in the same folder as the report files. When working in CGI mode, however, it cannot send graphs unless they can be stored somewhere. This allows you to tell Report Magic to write the graphs in an explicit location in your web site. See URL_To, below, for the companion setting.
      URL_To
      As a companion to Path_To, above, this tell Report Magic's reports where to find the images that have been stored on the web site. For example, if your web site is in /web/ and you store your graphs in /web/images/, then you would want to set the URL_To value to /images/ if you are writing the reports to the root of the web site or to CGI.

      Reports specific section

      For each report, you can customize the default settings that you set in the reports section. To do this you create a section using the section name shown in the reports reference and set the approriate settings below that. For example, if you wanted to have a green background on the Monthly Report, you could add this to your settings file:

      [MONTHLY]
      BG_Color=green
      

      You can also change report-specific configurations or text in these sections as well. This is covered in more detail in the advanced settings page. However, as an example, if you wished to change the name of the General Summary to "Executive Summary," for one set of reports you could add this to your settings file:

      [GENERAL]
      LongName=Executive Summary
      

      Customizing the GraphType

      The type of graph each report crates is already defined by Report Magic. Usually these types make sense for the majority of data in a report and do not need to be changed. However, by setting this option for a particular report, you can change the graph types you want displayed.

      GraphType takes a comma-separated list of types of graphs that you want Report Magic to produce for the report. Basic values are pie, bars and lines. These will be formatted in 2d or 3d versions, based on the [graphs]3d setting described above.

      It is also possible to force a specific report to use 2d or 3d graphs, ignoring the 'global' setting by specifying that in the GraphType setting for that reports. For example, to make all the line graphs on the time reports 2d, you would add something like this to your settings file:

      [MONTHLY]
      GraphType=lines2d
      [WEEKLY]
      GraphType=lines2d
      [FULLDAILY]
      GraphType=lines2d
      [FULLHOURLY]
      GraphType=lines2d
      [QUARTER]
      GraphType=lines2d
      [FIVE]
      GraphType=lines2d
      

      Settings Rows in the Summaries

      Finally, there are two report-specific options for the General Summary and Quick Summary. The Rows setting determines which rows will be displayed for each report.

      [GENERAL]
      Rows=SR, PR, FL, RR, NF, NH, BT
      
      Rows (Optional)
      This specifies which rows Report Magic for Analog should include in the General Summary. These correspond to the values used by Analog in the computer readable output file. Values should be separated by commas (','). For a list see the General Summary section of the columns reference. If you don't include this setting or you use the keyword 'ALL', the General Summary will show all rows in your Analog file.
      [QUICK]
      Rows= m, W, D, H, B
      
      Rows (Optional)
      This tells Report Magic for Analog which columns to show for the Quick Summary. The letters are those used by Analog to represent report in the computer readable output files. Values should be separated by commas (','). For a list of valid options see the code letters in the reports reference. If you don't include this setting or your use the keyword 'NONE', no Quick Summary will be made. If you use the keyword 'ALL', all possible summary rows will be show. The rows in the Quick Summary will be in the same order as the letters are in this option.
      Send questions or comments to Wadsack-Allen Digital Group Support.
      Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
      rmagic-2.21/docs/reports.html0100644000175000010010000001670207642525574015222 0ustar kilroyNone Report Magic for Analog Documentation - Reports Reference
      Report Magic for Analog Documentation

      Reports Reference

      Following is a reference of code letters and names for each report. The code letters are used in the Quick Summary rows setting ([QUICK]Rows). The names in all caps are used for report-specific sections of your settings file. If a code letter is not given, then the report can not be included in the Quick Summary.

      Code Letter Section Name Meaning
        GENERAL General Summary
      1 YEARLY Yearly Report
      Q QUARTERLY Quarterly Report
      m MONTHLY Monthly Report
      W WEEKLY Weekly Report
      D DAILYREP Daily Report
      d DAILYSUM Daily Summary
      H HOURLYREP Hourly Report
      h HOURLYSUM Hourly Summary
      w WEEKHOUR Hour of the Week Summary
      4 QUARTERREP Quarter-Hour Report
      6 QUARTERSUM Quarter-Hour Summary
      5 FIVEREP Five-Minute Report
      7 FIVESUM Five-Minute Summary
      S HOST Host Report
      l REDIRHOST Host Redirection Report
      L FAILHOST Host Failure Report
      Z ORGANISATION Organization Report
      o DOMAIN Domain Report
      r REQUEST Request Report
      i DIRECTORY Directory Report
      t FILETYPE File Type Report
      z SIZE File Size Report
      P PROCTIME Procesing Time Report
      E REDIR Redirection Report
      I FAILURE Failure Report
      f REFERRER Referring URL Report
      s REFSITE Referring Site Report
      N SEARCHQUERY Search Query Report
      n SEARCHWORD Search Word Report
      Y INTSEARCHQUERY Intneral Search Query Report
      y INTSEARCHWORD Internal Search Word Report
      k REDIRREF Redirected Referrer Report
      K FAILREF Failed Referrer Report
      B BROWSERREP Browser Report
      b BROWSERSUM Browser Summary
      p OSREP Operating System Report
      v VHOST Virtual Host Report
      u USER User Report
      j REDIRUSER User Redirection Report
      J FAILUSER User Failure Report
      c STATUS Status Code Report
        QUICK Quick Summary
      Send questions or comments to Wadsack-Allen Digital Group Support.
      Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
      rmagic-2.21/docs/samples.html0100644000175000010010000001163607642525574015171 0ustar kilroyNone Report Magic for Analog Documentation - Samples
      Report Magic for Analog Documentation

      Samples

      The samples mentioned on this page give you a some ideas of what kind of reports can be achieved with Report Magic for Analog. Each sample discussed can be run on any data file named report.dat. These files and a sample report.dat are located in the samples directory.

      Single Report File Sample

      onefile.ini

      This shows a basic single file report generated from report.dat. It uses some standard fonts and colors and uses a "reversed" type for the report titles.

      Multiple Report File Sample

      manyfile.ini

      This shows a basic multiple file report generated from report.dat. It uses some standard fonts and colors and uses a "reversed" type for the report titles.

      Corporate Image Sample

      corpimg.ini

      This shows how to generate a multiple file report that maintains the image and design of the website of a fictitious company. By reading the report.dat file and applying some custom fonts, colors and background images, this fictitious company has created a website statistics report that blend with the rest of their website.

      Frameless Report File Sample

      noframes.ini

      This shows how to setup Report Magic to put all navigation and reports into one file, without a frameset.



      Send questions or comments to Wadsack-Allen Digital Group Support.
      Report Magic 2.20 Documentation. Copyright © 1999, 2003 Wadsack-Allen. All Rights Reserved.
      rmagic-2.21/docs/siteindex.html0100644000175000010010000000723107642525574015515 0ustar kilroyNone Report Magic for Analog Documentation - Index
      Report Magic for Analog Documentation

      Index

      Index




      Send questions or comments to Wadsack-Allen Digital Group Support.
      Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
      rmagic-2.21/docs/thanks.html0100644000175000010010000002011707642525574015007 0ustar kilroyNone Report Magic for Analog Documentation - Acknowledgements
      Report Magic for Analog Documentation

      Acknowledgements

      Many people have helped make Report Magic what it is today. Thanks go out to all those listed below, not to mention the numerous people who provided bug reports, suggestions and general encouragement. And many thanks to all the people who have helped to make Perl and the freely-available Perl modules.

      Stephen Turner

      If it weren't for Analog, Report Magic would be pretty useless. Many thanks to Stephen Turner for developing, supporting and maintaining Analog.

      Corey Kaye

      Corey and the folks at DNS originally developed what grew into Report Magic. They deserve lots of credit for design and descriptions that launched Report Magic.

      Jason Linhart

      Jason helps build the Mac port and has done all the Mac testing. He is also in charge of building the Mac Binary package. His Mac experience and log analysis work at summary.net have been invaluable.

      Martien Verbruggen

      Martien wrote the GD::Graph module used as the basis for the graphs. As the graphs are an important part of Report Magic, he deserves a lot of credit for helping to make this a great tool.

      Lincoln Stein and Thomas Boutell

      Lincoln Stein wrote the root graphics interface to Thomas Boutell's gd graphics library that is used by both graph systems. Thanks so much to them for providing such a powerful and easy to use graphics creation tool.

      Translators

      Report Magic has achieved widespread use in great part due to its language support. Without the help of these translators that would not have been possible:

      • Raf Roset; Catalan
      • Martin Vorlnder; German
      • Sergio Talens-Oliag; Spanish
      • Juho Eini; Finnish
      • Denis Schitter; French
      • Szkely Dnes; Hungarian
      • Massimo Mezzini; Italian
      • Eivind Tagseth; Norwegian
      • Tohru Kawamura; Japanese
      • Piotr Roszatycki; Polish
      • Paulo Pires (VisualNet Lda); Portuguese
      • David Bizzo Marques; Brazilian Portuguese
      • Albedo; Russian
      • Pontus Goffe; Swedish
      • Jason C.H. Yang; Traditional Chinese

      Mirrors

      The following people and organizations have graciously provided mirrors for Report Magic. This has been a great boon in reducing the load on the main server:

      Mac OS X

      These users and companies have been particularly helpful in documenting and supporting Report Magic on Max OS X: Scott Hannahs, Gideon Greenspan / Sig Software, Shawn Vandergrift / TenPlus Systems, and Jim Powell.

      Bug Reporters, Users and Testers

      Many thanks go out to the many users and testers who have provided valuable feedback on features, bugs and general functionality, including the following (and many others):

      Aaron Colcord, Aaron Main, Alois Kratochwill, Andre S Burton, Andrew Gatward, Andrew Hill, Bernd Becker, Beth Juhl, Blake Kadatz, Brady Wang, Bryan Steele, Bobby Hitt Christian Tropeano, Christophe Simonin, Curt Troutwine IV, Daniel R. Meigs, Dave Green, David Phillips, David Rogers, David Simmons, Derek Sisson, Duncan McQueen, Eric S. Corbin, Ernie Hershey, Frank Maas, Gavin Hedrick, Grant McLean, Gordon Harford, Gustavo Cusi, Heinz Toedter, Herb Schilling, Ian Sealy, Jeremy Nieves, Jeremy Bratton, Joerg Kock, John E. Hersey, Jonas Smedegaard, Joseph Durbin, Joseph Shirley, Karim Nassar, Keith McCammon, Ken Whitcombe, Lay[N]e Da SickMan, Marcus Taylor, Mark Delurski, Martin R. Lerch, Martin Wheeler, Michael Check, Michael Guitton, Michael Harbour, Pat Erler, Paul Mensch, Peter Outteridge, Ralf Lehmann, Raphael Goubet, Robin Fitton, Scott Richardson, Sean Powell, Shiba Ken, Stavros Patiniotis, Steven Smith, Tim Mrock, Ted Gamble, Thomas Enzeley Conlin, Thomas Sommerer, Tim Willis, William H. Haller, William Woods.

      Send questions or comments to Wadsack-Allen Digital Group Support.
      Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
      rmagic-2.21/docs/whatsnew.html0100644000175000010010000002352207642525574015362 0ustar kilroyNone Report Magic for Analog Documentation - What's New with Report Magic
      Report Magic for Analog Documentation

      What's New with Report Magic

      What's New in Version 2.20

      Bugs Fixed

      • Links in Request and Referrer Reports were not linking the first and last characters. (Noted by William Woods, Eric S. Corbin, Sean Powell, and Bobby Hitt )
      • Mac Edition did not have same install/test procedure. (Noted by Ken Whitcombe)
      • Changed settings recognition code to work around problems in the Windows Edition. (Noted by Gordon Harford)
      • Added *.shtm and *.shtml to default linked file names in Request Report.
      • Fixed Install.PL in the Source Edition to include udpated language file structure when copying.

      What's New in Version 2.20

      Upgrade Notice

      This version of Report Magic requires the File::Temp perl module. This only applies to the Source Edition users. You can update it by running Install.PL or by installing the module by hand (if you don't want to touch the rest of your Perl modules). See the installation instructions for more details.

      New Features

      • CGI Mode. You can now run Report Magic as a CGI application (form interface). See CGI Mode documentation for details.
      • In support for CGI mode, two new settings have been added to the [graphs] section, Path_To and URL_To. These identify the location that graph files should be written to (rather than the same folder where report files are stored) and where they should be read from in the URLs.
      • Unrecognized settings will now produce a warning message. (Suggested by Karim Nassar)
      • Added several new command-line options: --version to display the version, --help to display a quick help screen
      • New --settings command-line option will write out a settings file to the screen, rather than running reports.
      • A new setting File_Extension in the [reports] section can be used to specify an alternate extension for file names, instead of the default '.html'. (Suggested by Pat Erler and Steven Smith) Note that the default Frame_File_Out setting also uses this extension.
      • You can now specify more than one settings file on the command-line. You can also have multiple Include settings in the [statistics] section of your settings files.
      • On graph labels, where previously just a row number would be written, Report Magic now writes the row number and the first part of the data name.
      • Changed embedded navigation menus for TOP and BOTTOM alignment to be more useful.
      • English language files are now identical to other files. Non-localization settings are stored separately in lang/.root.
      • Changed behavior Report Magic no longer looks for a 'default' language in the root directory of the installation. You can only change the language by settings the Language setting.
      • Failure Report now defaults to truncating data text at 60 characters. This should help make NIMDA worm requests less likely to make the table too wide. (Suggested by Karim Nassar)
      • Report Magic will now read from STDIN and write to STDOUT (the screen) if no File_In and File_Out settings are given.
      • If no Base_URL setting is given in the [website] section, but Analog has been configure with HOSTURL then this value is used.
      • The Request Report will automatically link asp, jsp, php, jhtml, cgi and pl files in addition to htm and html files and directories.

      New Languages

      • Finnish (Provided by Provided by Juho Einiö)
      • Norwegian (Provided by Eivind Tagseth)
      • Japanese (Provided by Tohru Kawamura)
      • Traditional Chinese (Prvided by Jason C.H. Yang)

      Bugs Fixed

      • General Summary was not inserting thousands separators.
      • Error and warning messages thrown before settings were done being read would not print.
      • --statistics-Include was not working from the command line.
      • When writing German reports using Analog in English mode, the weekend and weekday summaries were not written properly.
      • Norwegian language setting was being improperly converted to '0'.
      • Hungarian language when Analog is run with Hungarian would not write summaries. (Discovered by Szkely Dnes)
      • Pie charts were not producing an accurate plot when there was a '[not listed]' row that covered a significant amount of the data. (Discovered by Bobby Hitt)
      • Daily Summary were doubling values in Summary rows at the bottom. (Discovered by John Webb)
      • Report Magic will now accurately represent output from Analog running with Analog Crawler.
      • Time Summary reports' summary rows will no longer display if they are set to a blank value. (Patch provided by Andrew Hill)
      • Quick Summary was skipping reports when Analog provided a different column for BT than the Active_Column for the report.
      • Changed phrase of 'value' Header on Quick Summary to list column type.
      • OS X installation instruction have been updated with a fink install script. (Provided by Scott Hannahs
      • Fixed typos in documentation noticed by Micahel Harbour.
      • Fixed warnings for General Summary columns without formats and for formatting numbers without decimal places.
      • When writing to STDOUT no longer writes the Quick Summary.
      • Logos are no longer written at the bottom of the file when writing the report to STDOUT.
      • Improved URL detection to link inclusion code in Report.pm to not link things that might be cross-scripting attacks.
      • Improved guessing of paths when trailing '/' or '\' (or whatever) is missing in File_Out setting

      For changes in previous versions see Changes.

      Send questions or comments to Wadsack-Allen Digital Group Support.
      Report Magic 2.21 Documentation. Copyright © 1999-2003 Wadsack-Allen. All Rights Reserved.
      rmagic-2.21/docs/zlib.txt0100644000175000010010000000246407642525574014337 0ustar kilroyNone zlib.h -- interface of the 'zlib' general purpose compression library version 1.1.3, July 9th, 1998 Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly Mark Adler jloup@gzip.org madler@alumni.caltech.edu The data format used by the zlib library is described by RFCs (Request for Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). rmagic-2.21/lang/0040755000175000010010000000000007642616035012615 5ustar kilroyNonermagic-2.21/lang/.root/0040755000175000010010000000000007642616032013653 5ustar kilroyNonermagic-2.21/lang/.root/cdata.ini0100644000175000010010000001071507642525574015443 0ustar kilroyNone# ------------------------------------------------------------------- # cdata.ini # # Root file -- contains settings for columns and lines in the # General Summary, but no language elements. Must be inherited # by an language file. # # Last Updated: 14 February 2003 By: JW/WADG # ------------------------------------------------------------------- # # NOTES ON THE SETTINGS # # Type # This field tells Report Magic a little about how to present the column's # contents. Valid types are as follows: # Data Will be shown in a table (default) # Filter This is some kind of filter or sort information (like # FLOOR or SORT) and is written as plain text. Filter columns # are handled with a series of regular expression matches. This # is descibed below with the [f] column. # Index This type of column will set the Index number for the row. e.g. [N_] # Level This type of column gives a level in a hierarchical report. e.g. [l] # # # NumberFormat # All columns can now be given a number format for formatting. Without a format # the number is shown normally. For percentage values a format of '#.#%' will # display the number with a localized percent sign after the value. See # docs/numfmt.html for details on the format spec. # # Width # This tells the CRO parser how many columns wide the column specifier is. For # example, the [D_] column actually has 5 columns of data so its width is 5. # ------------------------------------------------------------------- # # General Summary Report Lines # [HN] [HU] [PS] [FR] [LR] # - This has been deprecated but should remain for backwards compatibility [L7] [E7] [SR] Format = number:# [S7] Format = number:# [PR] Format = number:# [P7] Format = number:# [FL] Format = number:# [F7] Format = number:# [RR] Format = number:# [R7] Format = number:# [NC] Format = number:# [C7] Format = number:# [NF] Format = number:# [N7] Format = number:# [NH] Format = number:# [H7] Format = number:# [CL] Format = number:# [UL] Format = number:# [BT] Format = bytes [B7] Format = bytes [VE] # # Standard Reports Column Letters # [R_] Type = Data NumberFormat = # [r] Type = Data NumberFormat = #.#% [S_] Type = Data NumberFormat = # [s] Type = Data NumberFormat = #.#% [P_] Type = Data NumberFormat = # [p] Type = Data NumberFormat = #.#% [Q_] Type = Data NumberFormat = # [q] Type = Data NumberFormat = #.#% [B_] Type = Data Format = bytes [b] Type = Data NumberFormat = #.#% [C_] Type = Data Format = bytes [c] Type = Data NumberFormat = #.#% [D_] Type = Data Width = 5 [d] Type = Data Width = 3 [E_] Type = Data Width = 5 [e] Type = Data Width = 3 [N_] Type = Index [l] Type = Level # ------------------------------------------------------------ # These filters use a slightly different set of options than other columns. # Filters will parse their data value and output a text description. For # each filter you can have any number of Columns specified by Width. # Each Column can have any number of Matches, LongNames and Result sets: # # ColX_MatchX The Regular Expressions (without //) to match the contents # of the filter data. # ColX_LongNameX The basic text of the output string for the corresponding # filter match. Replacements from the matches are %1-%9 # ColX_ResultX_n The replacement text (if any) for the matched variables. The # format for this matchset[tab]output text. If no result set is # given, then the match variable is outputted as listed. If a # result line starts with the [tab] then that will be used when # no match is made in the set. # ------------------------------------------------------------ # # FLOOR and SORTBY (cols 1 and 2) # [f] Type = Filter # Need this to keep the CRO splitter happy Width = 2 # # FLOOR # Col1_Match1 = ^\-(\d+)([RBPrbp]) Col1_Match2 = ^0([\%\:]?)([kMGT]?)([RBPrbp]) Col1_Match3 = ^1([\%\:]?)([RPrp]) Col1_Match4 = ^1([kMGT]?)[Bb] Col1_Match5 = ^(\d+\.?\d*)([\%\:]?)([kMGT]?)([RBPrbp]) Col1_Match6 = ^(\d\d)(\d\d)(\d\d)[Dd] Col1_Match7 = ^(-|\+)(\d\d)(-|\+)(\d\d)(-|\+)(\d\d)[Dd] # # SORTBY # Col2_Match1 = ^([rspqbcdax]) # # REPORTSPAN adds these columns to each report # [*FR] Type = Filter Width = 5 Saved = 0 [*LR] Type = Filter Width = 5 Saved = 0 # # Time reports in Analog 5 have a largest time value (up to 5 fields) # [*BT] Type = Filter Width = 5 Saved = 2 # # Quick Summary Column Letters # [T_] [H_] [h] NumberFormat = #.#% rmagic-2.21/lang/.root/rdata.ini0100644000175000010010000001240407642525574015457 0ustar kilroyNone# ------------------------------------------------------------------- # rdata.ini # # Root file - this contains setting for the reports, but # no language specific elements. This file must be inherited by # a language file. # # Last Updated: 14 February 2003 By: JW/WADG # ------------------------------------------------------------------- # # NOTES ON SETTINGS # # ShortName # This corresponds to the Analog config file report name. It should be # unique within the scope of all reports. # # ReportType # This tell what type of report to generate. The following options are # available: # General - The General Summary # TimeReport - Any time report (e.g. Monthly Report, Weekly Report) # TimeSummary - Any time summary (e.g. Daily Summary, Hourly Summary) # Range - Reports that provide data in ranges (e.g. File Size, Processing Time) # Simple - A simple report, usable for most data # HierarchicalReport - A report with items in hierarchies # Quick - The Quick Summary # # Truncate # This option is available for Simple and Hierarchical reports. It tells the number of # characters to truncate the displayed text at. # # IncludeLinks # This option is available for Simple and Hierarchical reports. If set then the # data points will be hyperlinked according to the wildcard matching. This can be a # comma-separated list of wildcards matches. So, for example, "*" will link every entry # and "*.html,*.htm,*/" will match page requests. # # SmallFont # This option is available for Simple and Hierarchical reports. If set to 1, then the # data will be displayed in a smaller typeface # # GraphType # This tells what type of graph(s) (if any) to use. If nothing is given, then # the report has no graphs. Otherwise you can choose 'Bar', 'Line', or # 'Pie'. More than one type can be used by separating them with commas. The # Bar and Line graphs only work on count data (number of requests, pages or # bytes). The Pie graph only works on percent data (percent of requests, # pages or bytes). # ------------------------------------------------------------------- [x] ShortName = GENERAL ReportType = GeneralSummary [1_] ShortName = YEARLY GraphType = Line ReportType = TimeReport [Q_] ShortName = QUARTERLY GraphType = Line ReportType = TimeReport [m] ShortName = MONTHLY ReportType = TimeReport GraphType = Line [W_] ShortName = WEEKLY ReportType = TimeReport GraphType = Line [D_] ShortName = DAILYREP ShortName = FULLDAILY ReportType = TimeReport GraphType = Line [d] ShortName = DAILYSUM ShortName = DAILY ReportType = TimeSummary GraphType = Bar,Pie [H_] ShortName = HOURLYREP ShortName = FULLHOURLY ReportType = TimeReport GraphType = Line [h] ShortName = HOURLYSUM ShortName = HOURLY ReportType = TimeSummary GraphType = Bar,Pie [w] ShortName = WEEKHOUR ReportType = TimeSummary GraphType = Line PushDates = 2 [4_] ShortName = QUARTERREP ShortName = QUARTER ReportType = TimeReport GraphType = Line [6_] ShortName = QUARTERSUM ReportType = TimeSummary GraphType = Line PushDates = 3 [5_] ShortName = FIVEREP ShortName = FIVE ReportType = TimeReport GraphType = Line [7_] ShortName = FIVESUM ReportType = TimeSummary PushDates = 3 GraphType = Line [S_] ShortName = HOST ReportType = Simple [l] ShortName = REDIRHOST ReportType = Simple [L_] ShortName = FAILHOST ReportType = Simple [Z_] ShortName = ORGANISATION ReportType = HierarchicalReport GraphType = Pie [o] ShortName = DOMAIN ReportType = HierarchicalReport GraphType = Pie [r] ShortName = REQUEST ReportType = HierarchicalReport IncludeLinks = *.htm,*.html,*/,*.php,*.asp,*.cgi,*.jsp,*.pl,*.jhtml,*.shtm,*.shtml [i] ShortName = DIRECTORY ReportType = HierarchicalReport GraphType = Bar,Pie # NOTE: Don't include links here. Directories are not necessarily valid requests # Note that [*] is handled specially by Report-> __format_data__include_links(...) #IncludeLinks = */ [t] ShortName = FILETYPE ReportType = HierarchicalReport GraphType = Bar [z] ShortName = SIZE ReportType = RangeReport GraphType = Bar [P_] ShortName = PROCTIME ReportType = RangeReport GraphType = Bar [E_] ShortName = REDIR ReportType = HierarchicalReport [I_] ShortName = FAILURE ReportType = HierarchicalReport Truncate = 60 [f] ShortName = REFERRER ReportType = HierarchicalReport Truncate = 60 IncludeLinks = http://*,https://*,ftp://* [s] ShortName = REFSITE ReportType = HierarchicalReport Truncate = 60 IncludeLinks = http://*,https://*,ftp://* [N_] ShortName = SEARCHQUERY ReportType = Simple [n] ShortName = SEARCHWORD ReportType = Simple [Y_] ShortName = INTSEARCHQUERY ReportType = Simple [y] ShortName = INSEARCHWORD ReportType = Simple [k] ShortName = REDIRREF ReportType = HierarchicalReport [K_] ShortName = FAILREF ReportType = HierarchicalReport Truncate = 60 [B_] ShortName = BROWSERREP SmallFont = 1 ReportType = Simple [b] ShortName = BROWSERSUM ReportType = HierarchicalReport GraphType = Bar,Pie [p] ShortName = OSREP ReportType = HierarchicalReport GraphType = Pie [v] ShortName = VHOST ReportType = Simple GraphType = Bar [R_] ShortName = REDIRVHOST ReportType = Simple [M_] ShortName = FAILVHOST ReportType = Simple [u] ShortName = USER ReportType = Simple [j] ShortName = REDIRUSER ReportType = Simple [J_] ShortName = FAILUSER ReportType = Simple [c] ShortName = STATUS ReportType = Simple GraphType = Pie [q] ShortName = QUICK ReportType = QuickSummary rmagic-2.21/lang/ca/0040755000175000010010000000000007642616032013175 5ustar kilroyNonermagic-2.21/lang/ca/cdata.ini0100644000175000010010000002053507642525574014766 0ustar kilroyNone# ------------------------------------------------------------------- # cdata.ini # # Descripci de les columnes i les lnies dels informes # ltima modificaci: 2000 Set 1 Per: RAF # Per al seu s amb Report Magic per Analog 2.0 # Compatible amb Analog 4.11 # # ------------------------------------------------------------------- # # COM EMPRAR I MODIFICAR # # A cada secci podeu canviar el text descriptiu per a un altre idioma # El que segueix s la llista dels parmetres i el seu significat. # # LongName # Aquest camp especifica el nom que tindrn les columnes a tots els informes # i les files en l'Informe General i el Resum Rpid # # Type # Determina com es presentar el contingut de les columnes. # Els tipus vlids sn: # Data Es disposar en una taula (per defecte) # Filter Es algn tipus de filtre o camp d'ordre (com FLOOR o SORT) # i s'escriur com text pla.El filtratge s'explica a [f] # Index Aquest tipus de columna ajustar l'ndex per a la fila. # p.ex [N_]. # Level Aquest tipus de columna assigna un nivell en un informe jerrquic. # p.ex [l]. # # Unit # Units # Singular i plural de les unitats del Resum General. # # Activity # El texte que s'emprar per descriure el nivell d'activitat a les columnes # dels informes temporals, en les lnies resum de l'entrada ms activa i la mitjana. # # NumberFormat # Permet definir el format de les columnes. Per a percentatges un format com # '#.#%' mostrar els valors seguits del smbol de percentatge. Els detalls # es poden trobar a docs/numfmt.html # # Width # Permet definir l'amplada de les columnes. Per exemple la columna [D_] # t 5 columnes de dades, i per tant el seu ample s 5. # # TimeFormat # Permet definir el format de les columnes de data i hora. Els detalls del # format es poden trobar a docs/datefmt.html # ------------------------------------------------------------------- # # Lnies del resum abreujat de l'informe. # [HN] LongName = Nom de host [HU] LongName = URL de host [PS] LongName = Hora d'inici del programa TimeFormat = d mmm yyyy h:nn [FR] LongName = Temps de la primera petició TimeFormat = d mmm yyyy h:nn [LR] LongName = Temps de l'última petició TimeFormat = d mmm yyyy h:nn # - Esto ha sido eliminado, pero debe permanecer por compatibilidad hacia atrs [L7] LongName = El temps dels darrers 7 dies comença el TimeFormat = d mmm yyyy h:nn [E7] LongName = El temps dels darrers 7 dies acaba el TimeFormat = d mmm yyyy h:nn [SR] LongName = Peticions exitoses al servidor Units = Peticions Unit = Petició [S7] LongName = Peticions exitoses al servidor dels darrers 7 dies Units = Peticions Unit = Petició [PR] LongName = Peticions exitoses de pàgines Units = Peticions de pàgines Unit = Petició de pàgina [P7] LongName = Peticions exitoses de pàgines dels darrers 7 dies Units = Peticions de pàgines Unit = Petició de pàgina [FL] LongName = Peticiones fallides Units = Peticions Unit = Petició [F7] LongName = Peticions fallides dels darrers 7 dies Units = Peticions Unit = Petició [RR] LongName = Peticions redireccionades Units = Peticions Unit = Petició [R7] LongName = Peticions redireccionades dels darrers 7 dies Units = Peticions Unit = Petició [NC] LongName = Entrades de l'arxiu de log sense codi d'estat Units = Línies Unit = Línia [C7] LongName = Entrades de l'arxiu de log sense codi d'estat en els darrers 7 dies Units = Línies Unit = Línia [NF] LongName = Arxius diferents demanats Units = Arxius Unit = Arxiu [N7] LongName = Arxius diferents demanats els darrers 7 dies Units = Arxius Unit = Arxiu [NH] LongName = Màquines diferents ateses Units = Màquines Unit = Màquina [H7] LongName = Màquines diferents ateses els darrers 7 dies Units = Màquines Unit = Màquina [CL] LongName = Línies corruptes a l'arxiu log Units = Línies Unit = Línia [UL] LongName = Línies descartades a l'arxiu log Units = Línies Unit = Línia [BT] LongName = Total de dades transmeses Units = Bytes Unit = Byte [B7] LongName = Total de dades transmeses els darrers 7 dies Units = Bytes Unit = Byte [VE] LongName = Versió d'Analog # # Etiquetes de les columnes d'Informes Estndard # [R_] LongName = Nombre de peticions Activity = %0 peticions ateses [r] LongName = Percentatge de peticions [P_] LongName = Nombre de pàgines demanades Activity = %0 pàgines enviades. [p] LongName = Percentatge de pàgines demanades [B_] LongName = Nombre de bytes transmesos Activity = %0 bytes servits. [b] LongName = Percentatge de bytes [D_] LongName = Dia i hora de l'últim accés TimeFormat = d mmm yyyy h:nn [d] LongName = Data de l'últim accés TimeFormat = d mmm yyyy [S_] LongName = Nombre de peticions els darrers 7 dies Activity = %0 peticions ateses els darrers 7 dies. [s] LongName = Percentatge de peticions els darrers 7 dies [Q_] LongName = Nombre de peticions de pàgines els darrers 7 dies Activity = %0 pàgines enviades els darrers 7 dies. [q] LongName = Percentatge de peticions de pàgines els darrers 7 dies [C_] LongName = Bytes transferits els darrers 7 dies Activity = %0 bytes servits els darrers 7 dies. [c] LongName = Percentatge de bytes transferits els darrers 7 dies [E_] LongName = Dia i hora del primer accés TimeFormat = d. mmm, yyyy h:nn [e] LongName = Dia del primer accés TimeFormat = d. mmm, yyyy # ------------------------------------------------------------ # Aquests filtres empren un conjunt d'opcions lleugerament diferents d'altres # columnes. Els filtres analitzen els seus valors i generaran una descripci # del text. Per cada filtre pot haver-hi qualsevol nmero de columnes especificat # per Width. Cada columna pot tenir qualsevol nmero de Matches, LongNames i Result. # # ColX_MatchX Les expressions regulars (sense //) per definir els continguts # del filtre de dades. # ColX_LongNameX El text bsic de la cadena de sortida que correspongui al filtre. # Els reemplaos dels encerts sn %1-%9 # ColX_ResultX_n El text de reempla per a les variables trobades. # El format s conjunt_d'encerts[tab]text_de_sortida. Si no hi ha cap # conjunt d'encerts, la variable d'encert es retorna tal i com era. # Si una lnia de resultats comena per [tab] es far servir quan no hi # hagi encerts en el conjunt. # ------------------------------------------------------------ # # FLOOR i SORTBY (columnes 1 y 2) # [f] # # FLOOR # Col1_LongName1 = Aquest informe mostra els primers %1 resultats per %2. Col1_Result1_2 = <Guia. O0002 = Principi del document O0003 = Aquest informe s'ha generat el %0. O0004 = Finestra de temps de %0 a %1. O0005 = Informe estadístic generat per: O0006 = Problemes amb les estadístiques del lloc web? Escriu-nos. # - El texte 'ALT' de les grfiques. Similar a: # 'Daily Summary: Number of requests by Day of the week.' O0007 = %0: %1 per %2. # - El format de temps utilitzat per O0003 per a les dates de generaci de l'informe # i l'inici i final de la finestra de temps. O0008 = d mmm yyyy h:nn # - Text alternatiu de les taules per a les taules de filtres O0009 = Per aquest informe s'ha emprat aquests filtres. # - Els textos dels ttols dels marcs O0010 = Guia O0011 = Informe # - El ttol de la finestra de navegaci O0012 = Informe
        Guia # - El nom de la porci del grfic de pasts que inclou les porcions < 3% del total O0013 = Altres # Ttol per defecte si no n'hi ha cap. %0 s substitut per HOSTNAME d'Analog O0014 = Estadístiques del lloc web per a %0 #------------------------------- # La secci ERRORS tracta especficament dels errors i avisos en la execuci. # Es possible tenir aquests missatges en un idioma diferent del que es fa servir # per els informes. #------------------------------- [Errors] N0001 = Generant l'informe a %0. N0002 = --> Arxiu de parmetres: %0. N0003 = ... Creaci del grfic a %0. N0004 = Comena la generaci de l'informe (%0). N0005 = --> Dades d'entrada: %0. N0006 = --> Directori de sortida: %0. N0007 = --> Creant l'arxiu de navegaci: %0. N0008 = --> Creant l'informe: %0. N0009 = --> Creant la pgina de marcs: %0. N0010 = Informe creat (%0). N0011 = Afegint missatges a l'arxiu de log %0. W0001 = WARNING: Tipus d'informe desconegut [%0]. Descartant lnies. W0002 = WARNING: Tipus de columna desconegut [%0]. Descartant columnes. W0003 = WARNING: Tipus d'informe "%0" desconegut en l'informe [%1]. Descartant tot l'informe. W0004 = WARNING: La columna activa %0 no s'ha trobat en l'informe %1. Descartant tots els grfics. W0005 = WARNING: Impossible trobar el logo de la companyia %0. Ho farem amb els logos per defecte. W0006 = WARNING: Argument %0 invlid a la lnia de comandes. L'ignoro. E0001 = ERROR: -- No puc obrir de nou l'informe: %0 com entrada -- E0002 = ERROR: -- No puc obrir l'arxiu de navegaci: %0 com entrada -- E0003 = ERROR: -- No puc obrir de nou l'informe: %0 com sortida-- E0004 = ERROR: -- No puc obrir l'arxiu de navegaci: %0 com sortida-- E0005 = ERROR: -- No puc obrir l'arxiu de dades: %0 -- E0006 = ERROR: -- No puc obrir la pgina de marcs: %0 -- E0007 = ERROR: -- No puc obrir l'arxiu de navegaci: %0 -- E0008 = ERROR: -- No puc obrir l'informe: %0 -- E0009 = ERROR: -- No puc obrir els arxius %0 o %1 -- #E0010 ** Passa a avisos, nivell W0004 E0011 = ERROR: -- L'arxiu necessari %0 no el trobo o est malms. Aturat. -- E0012 = ERROR: -- No puc obrir l'arxiu de log: %0 -- #E0013 ** Passa a avisos, nivell W0005 E0014 = ERROR: -- No trobo l'arxiu %0 especificat. E0015 = <Nota: Probablement el primer i l'últim any no seran sencers, i per tant hi huarà menys hits. EOT [Q_] LongName = Informe quatrimestral DataName = Quadrimestre MostActive = Trimestre més actiu Description = <Nota: Probablement el primer i l'últim quadrimestre no siguin sencers, i per tant hi haurà menys hits. EOT [w] LongName = Resum de l'hora de la setmana DataName = Hora TimeFormat = wwww, h:00 - h:59 MostActive = Hora més activa de la setmana Description = <-Tag ausgegeben. #------------------------------- [Language] Symbol = DE CharacterSet = iso-8859-1 [Text] # -- Die Summenausgaben-Texte (S0001 - S0008) wurden nach cdata.ini (1-4) bzw. rdata.ini (5-8) verschoben #S0001 - S0009 **nicht mehr benutzt** # # Dies sind diverse Ausgaben in den Berichten. # O0001 = Um ohne Frames zu navigieren, starten Sie von der Navigations-Seite. O0002 = Zum Anfang der Seite O0003 = Dieser Bericht wurde erzeugt am %0. O0004 = Auswertungszeitraum: %0 bis %1. O0005 = Web-Statistik erzeugt von: O0006 = Probleme mit Ihren Berichten? Schreiben Sie uns eine E-Mail. # - Dies ist der "ALT"-Text bei Grafiken. Es ist etwas in der Art: # 'Wochentagesbersicht: Anzahl der Anfragen nach Wochentag.' O0007 = %0: %1 nach %2. # - Dies ist das Format des Generierungs-Datums, und wird von O0003 und O0004 benutzt O0008 = dd.mmmm yyyy h:nn # - Dies ist der Tabellentext fr gefilterte Tabellen. O0009 = Diese Filter werden im folgenden Bericht benutzt. # - Dies sind die Titel der Frames O0010 = Navigationsseite O0011 = Berichtsseite # - Dies ist der (ausgegebene) Titel des Navigationsfensters O0012 = Navigation zwischen den Berichten # - Dies ist der Text, der in dem Stck der Tortengrafik ausgegeben wird, # das alle Eintrge enthlt, die weniger als 3% der Gesamtmenge ausmachen. O0013 = Sonstige # Dies ist der Standard-Titel, wenn sonst keiner angegeben wird. # %0 wird durch den HOSTNAME aus Analog ersetzt. O0014 = Statistiken fr %0 #------------------------------- # Die Sektion ERRORS deckt alle Fehler- und Warnmeldungen ab. # Wenn gewnscht, kann Report Magic Fehlermeldungen in einer # und Berichte in einer anderen Sprache ausgeben. #------------------------------- [Errors] N0001 = Erzeuge Berichte in %0. N0002 = --> Konfigurations-Datei: %0. N0003 = ... Erzeuge Grafik %0. N0004 = Beginn Berichts-Generierung (%0). N0005 = --> Eingabedaten aus Datei: %0. N0006 = --> Ausgabepfad: %0. N0007 = --> Ausgabe Navigationsdatei: %0. N0008 = --> Ausgabe Berichtsdatei: %0. N0009 = --> Ausgabe Frameset-Datei: %0. N0010 = Ende Berichts-Generierung (%0). N0011 = Schreibe Meldungen nach Logdatei %0. W0001 = WARNUNG: Unbekannter Berichtstyp [%0]. Alle Zeilen fr diesen Bericht werden ignoriert. W0002 = WARNUNG: Unbekannter Spaltentyp [%0]. Alle Spalten wie diese werden ignoriert. W0003 = WARNUNG: Unbekannter Berichtstyp "%0" fr Bericht [%1] definiert. Bericht wird ignoriert. W0004 = WARNUNG: Active_Column %0 ist nicht in den Spalten des Berichts %1 enthalten. Fr diesen Bericht wird keine Grafik erzeugt. W0005 = WARNUNG: Kann Firmenlogo-Datei %0 nicht ffnen. Verwende Standard-Logos. W0006 = WARNUNG: Die angegebene Kommandozeilen-Option %0 ist ungltig, und wird ignoriert. W0007 = WARNUNG: Kann Top_Logo-Datei %0 nicht ffnen. Benutze Standardtext. W0008 = WARNUNG: Die Einstellung "%0" wurde nicht erkannt. Sie wird ignoriert E0001 = FEHLER: -- Lesefehler bei der Berichts-Ausgabedatei %0 -- E0002 = FEHLER: -- Lesefehler bei der Navigations-Ausgabedatei %0 -- E0003 = FEHLER: -- Schreibfehler bei der Berichts-Ausgabedatei %0 -- E0004 = FEHLER: -- Schreibfehler bei der Navigations-Ausgabedatei %0 -- E0005 = FEHLER: -- Lesefehler bei der Daten-Eingabedatei %0 -- E0006 = FEHLER: -- Schreibfehler bei der Frameset-Ausgabedatei %0 -- E0007 = FEHLER: -- Schreibfehler bei der Navigations-Ausgabedatei %0 -- E0008 = FEHLER: -- Schreibfehler bei der Berichts-Ausgabedatei %0 -- E0009 = FEHLER: -- Konnte keine Standard-Konfigurationsdatei %0.* ffnen -- #E0010 ** Moved to warnings level: W0004 E0011 = FEHLER: -- Bentigte Datei %0 fehlt oder ist beschdigt. Abbruch. -- E0012 = FEHLER: -- Kann Fehler-Logdatei %0 nicht ffnen -- #E0013 ** Moved to warnings level: W0005 E0014 = FEHLER: -- Kann die angegebene Konfigurationsdatei %0 nicht ffnen -- E0015 = <Mozilla/4.5 [en] (Win95; U) melden, Microsofts Internet Explorer 4.01 unter Windows 98 mit Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] LongName = Browser-Übersicht DataName = Browsertyp MostActive = Aktivster Browsertyp Description = <Die Browser werden in Kategorien aufgeteilt, z.B. Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera. Innerhalb einer Kategorie findet eine Unterteilung nach Versionsnummern statt, z.B. 'MSIE 5.0' oder 'Netscape 4.5'. EOT [v] LongName = Virtueller-Host-Bericht DataName = Virtueller Host MostActive = Aktivster virtueller Host Description = <HTTP Working Group. EOT [Z_] LongName = Organisations-Bericht DataName = Organisation MostActive = Aktivste Organisation Description = <Achtung: Wenn die angezeigten Verarbeitungszeiten etwas um den Faktor 100 zu gross scheinen, verwendet Ihr Server vermutlich einen IIS, der die Zeiten in Hundertstelsekunden statt Sekunden liefert. EOT [N_] LongName = Suchanfragen-Bericht DataName = Suchanfragen MostActive = Häufigste Suchanfragen Description = <-Tags benutzt). Standard is 'XHTML 1.0'. [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 Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- reports -------------------------- # Diese Einstellungen beschreiben das Aussehen und die Dateispezifikationen # fr die Berichts-Seite(n). Individuelle Einstellungen fr einzelne Berichte knnen in # deren eigenen Sektionen (z.B. [STATUS]) vorgenommen werden. # BG_Color (optional) ist die Hintergrundfarbe. # Background (optional) ist eine Grafik fr den Seitenhintergrund. # Font (optional) ist der Name des gewnschten Zeichensatzes. # Font_Color (optional) ist die Textfarbe. # Title_Font (optional) ist der Name des fr den Berichts-Titel gewnschten # Zeichensatzes. # Title_BG_Color (optional) ist die Hintergrundfarbe des Berichts-Titels. # Title_Font_Color (optional) ist die Farbe des Berichts-Titel-Texts. # Data_Font (optional) ist der Name des fr die Daten gewnschten Zeichensatzes. # Data_BG_Color_1 (optional) ist die Hintergrundfarbe fr die eine Hlfte der # Datenzeilen. # Data_Font_Color_1 (optional) ist die Textfarbe fr die eine Hlfte der # Datenzeilen (Standard ist Font_Color). # Data_BG_Color_2 (optional) ist die Hintergrundfarbe fr die andere Hlfte der # Datenzeilen. # Data_Font_Color_2 (optional) ist die Textfarbe fr die andere Hlfte der # Datenzeilen (Standard ist Font_Color). # Data_Total_Font (optional) ist der Zeichensatz fr die Summen-Datenzeilen # (Standard ist Data_Font). # Data_Total_Font_Color (optional) ist die Textfarbe fr die Summen-Datenzeilen # (Standard ist Data_Font_Color). # Data_Total_BG_Color (optional) ist die Hintergrundfarbe fr die Summen-Datenzeilen. # Data_Header_Color (optional) ist der Zeichensatz fr die Tabellenkpfe # (Standard ist Data_Font). # Data_Header_Font_Color (optional) ist die Textfarbe fr die Tabellenkpfe # (Standard ist Data_Font_Color). # Data_Header_BG_Color (optional) ist die Hintergrundfarbe fr die Tabellenkpfe. # Active_Column gibt die Spalte an, die zur Erzeugung der Grafiken # und zur Bestimmung der aktivsten Perioden in der Schnellbersicht benutzt wird. # Reverse_Time (optional) Wird dies auf 1 gesetzt, dann wird die Reihen- # folge der Daten in den Zeit-Berichten umgekehrt. Benutzen # Sie dies, wenn Ihre Daten vom jngsten zum ltesten # Datum sortiert sind. # File_Out (optional) ist die Datei- oder Verzeichnisspezifikation fr die # Berichts-Seite(n). Ist dies ein Dateiname, dann werden alle Berichte # in diese Datei geschrieben. Ist dies ein Verzeichnisname, werden # die Berichte in separate Dateien geschrieben. Ist dies das Symbol '-', # dann werden die Berichte nach STDOUT geschrieben. # Meta_Refresh (optional) ist die Anzahl Sekunden, nach der die Seite verfllt. # Wenn 0 angegeben wird oder diese Angabe fehlt, wird # kein "META REFRESH"-Tag erzeugt. # Image_Dir (optional) wie bei der Analog-Option kann damit Report Magic # mitgeteilt werden, in welchem Verzeichnis sich die Logos befinden, # die am unteren Rand der Seiten ausgegeben werden. # Stylesheet (optional) enthlt die Dateispezifikation eines Stylesheets, # das Report Magic fr seine Styledefinitionen benutzt. # Graph_Level (optional) legt den Hierarchielevel fr die Grafik eines # hierarchischen Berichts fest. Wird fr alle anderen # Berichtsarten ignoriert. # Show_Bytes_As (optional) bestimmt, wie weit Bytewerte bei der Ausgabe in # Berichten vereinfacht werden. Gltige Werte sind K, M, G, T usw. # Wird kein Wert angegeben, dann werden Bytes als Ganzzahl ausgegeben. # * Alle Farbangaben knnen HTML-Farbnamen oder ein Hash (#) und ein 6-stelliger # hexadezimaler Farbcode sein. [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_BG_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 Show_Bytes_As = M # ----------------------- GENERAL -------------------------- # Rows (optional) gibt die Zeilen an, die in der Zusammenfassung # ausgegeben werden sollen. Wird dies nicht angegeben, # dann werden ALLE Zeilen angezeigt. Um die Zusammenfassung # abzuschalten, geben Sie das Schlsselwort NONE an. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (optional) gibt die Zeilen an, die in der Schnellbersicht # ausgegeben werden sollen. Wird dies nicht angegeben, # dann wird die Schnellbersicht nicht ausgegeben. # Mit dem Schlsselwort ALL erreichen Sie eine Ausgabe # aller verfgbaren Zeilen. [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (optional) erlaubt Ihnen, eine Hintergrundfarbe fr die # Grafiken anzugeben. Wenn nicht angegeben, wird die Hintergrundfarbe # der Berichtsseite benutzt. # Graph_Font (optional) erlaubt Ihnen, einen TrueType-Font fr die Grafiken # zu benutzen. Der Wert sollte der Dateiname (inklusive Pfad) # der Font-Datei sein. Optional knnen auerdem drei Punkt- # gren (getrennt durch Kommas) fr die Gren des Grafik- # Titels, der Achsenbeschriftung und der Daten-Beschreiftung. # Font_Color (optional) ist die Textfarbe der Grafik-Texte. Standard ist # die Textfarbe der Berichtsseite. # Width (optional) gibt die gewnschte Breite (in Pixeln) der Grafik an. # Standard ist 400. # Height (optional) gibt die gewnschte Hhe (in Pixeln) der Grafik an. # Standard ist 300. # 3d (optional) Wenn dies auf 1 gesetzt wird, werden 3D-Grafiken erstellt, # bei einem Wert von 0 2D-Grafiken. Standard ist 1. # Palette (optional) gibt eine Liste von Farbnamen fr die Balken in # Balkengrafiken. Fr eine Liste der gltigen Namen siehe docs/config.html. # Cycle_Colors (optional) Wenn dies auf 1 gesetzt wird, wird jeder Balken # in einer weiteren Farbe aus der Data_Colors-Liste gefrbt. Bei einem # Wert von 0 werden alle Balken mit der ersten Farbe gefrbt. # Standard ist 1. # Shadows (optional) Wenn dies auf 1 gesetzt wird, werden die Balken in Balkengrafiken # mit Schatten gezeichnet. Ein Wert von 0 schaltet die Schatten ab. # Standard ist 1. # Format (optional) gibt das gewnschte Dateiformat fr die Grafikdateien an. # Gltige Werte sind PNG und JPEG. Standard ist PNG (weil die Dateien # wesentlich kleiner sind). Siehe docs/config.html fr Grnde, warum # dies bei Ihrer Version von Report Magic keine Auswirkungen hat. # * Alle Farbangaben knnen HTML-Farbnamen oder ein Hash (#) und ein 6-stelliger # hexadezimaler Farbcode sein. [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple,lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGATION -------------------------- # Diese Einstellungen beschreiben das Aussehen und die Dateispezifikationen # fr die Navigationsseite. # File_Out (optional) ist die Dateispezifikation fr die Navigationsseite. # Wird kein Wert angegeben, dann wird kein Frameset angelegt. # BG_Color (optional) ist die Hintergrundfarbe. # Background (optional) ist eine Grafik fr den Seitenhintergrund. # Font (optional) ist der Name des gewnschten Zeichensatzes. # Font_Color (optional) ist die Textfarbe. # Bullet_Image (optional) ist die URL zu einer Grafik, die den # Menpunkten vorgeschaltet wird. # Stylesheet (optional) enthlt die Dateispezifikation eines Stylesheets, # das Report Magic fr seine Styledefinitionen benutzt. # Top_Logo (optional) ist ein Dateiname (relativ zum aktuellen # Verzeichnis). Die Datei enthlt HTML-Text, der am Anfang # der Seite eingefgt wird. Dieser Text ersetzt den Text # der Navigationsseite. # * Alle Farbangaben knnen HTML-Farbnamen oder ein Hash (#) und ein 6-stelliger # hexadezimaler Farbcode sein. [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css Top_Logo = logo.txt # ----------------------- WEBSITE -------------------------- # Diese Einstellungen stellen generelle Information fr die Berichte zur Verfgung. # Title (optional) ist der Titel, der oben auf jedem Bericht und im Titel # des Frameset auftaucht. Wenn nicht angegeben, dann wird ein Standard-Text # mit dem Hostnamen ausgegeben (wenn dieser von Analog zur Verfgung # gestellt wird), etwa "Webstatistik fr MeineDomne". # Base_URL (optional) ist die URL des Websites, auf dem die # statistischen Daten gesammelt wurden. Wenn nicht angegeben, # dann wird der HostURL-Wert von Analog verwendet (wenn dieser # zur Verfgung gestellt wurde). # Webmaster (optional) ist eine EMail-Adresse, die bei Fragen # zu den Berichten kontaktiert werden kann. Wird kein Wert # angegeben, wird der Kontakt-Satz nicht ausgegeben. # Company_Logo (optional) ist der Dateiname (relativ zum Arbeitsverzeichnis), # der einen HTML-Schnipsel enthlt, der in die Berichte eingefgt # am unteren Rand anstatt der anderen Logos (Analog, Report Magic) # eingefgt wird. [website] Title = My Website Statistics Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/lang/en/0040755000175000010010000000000007642616033013215 5ustar kilroyNonermagic-2.21/lang/en/cdata.ini0100644000175000010010000001576407642525574015015 0ustar kilroyNone# ------------------------------------------------------------------- # cdata.ini # # Descriptions for columns and lines in reports # # Last Updated: 14 February 2003 By: JW/WADG # ------------------------------------------------------------------- # # HOW TO USE AND MODIFY # # In each section, you can change descriptive text for another # language. Below is a list of the parameters (keys) and what they mean. # # LongName # This field specifies the descriptive name given to columns in all reports # and rows in the General Report and Quick Summary. # # Unit # Units # On General Summary columns (rows) this is the singular and plural for # the units (if any) for the given line. # # Activity # In Time Reports, there is a summary line that list the most active entry # and the average for the period. This is followed by activity data for each # column in the report. The 'Activity' parameter gives the text used to # describe the level of activity for that column. # # TimeFormat # This is used to format the date or time data in columns that have that # data (e.g. [D_] and [d]). See docs/datefmt.html for details on the format spec. # ------------------------------------------------------------------- # # General Summary Report Lines # [HN] LongName = Host name [HU] LongName = Host URL [PS] LongName = Program start time TimeFormat = mmm d, yyyy h:nn [FR] LongName = Time of first request TimeFormat = mmm d, yyyy h:nn [LR] LongName = Time of last request TimeFormat = mmm d, yyyy h:nn # - This has been deprecated but should remain for backwards compatibility [L7] LongName = Time last 7 days starts after TimeFormat = mmm d, yyyy h:nn [E7] LongName = Time last 7 days lasts until TimeFormat = mmm d, yyyy h:nn [SR] LongName = Successful server requests Units = Requests Unit = Request [S7] LongName = Successful requests in last 7 days Units = Requests Unit = Request [PR] LongName = Successful requests for pages Units = Requests for pages Unit = Request for a page [P7] LongName = Successful requests for pages in last 7 days Units = Requests for pages Unit = Request for a page [FL] LongName = Failed requests Units = Requests Unit = Request [F7] LongName = Failed requests in last 7 days Units = Requests Unit = Request [RR] LongName = Redirected requests Units = Requests Unit = Request [R7] LongName = Redirected requests in last 7 days Units = Requests Unit = Request [NC] LongName = Logfile lines without status code Units = Lines Unit = Line [C7] LongName = Logfile lines without status code in last 7 days Units = Lines Unit = Line [NF] LongName = Distinct files requested Units = Files Unit = File [N7] LongName = Distinct files requested in last 7 days Units = Files Unit = File [NH] LongName = Distinct hosts served Units = Hosts Unit = Host [H7] LongName = Distinct hosts served in last 7 days Units = Hosts Unit = Host [CL] LongName = Corrupt lines in the logfile Units = Lines Unit = Line [UL] LongName = Unwanted lines in the logfile Units = Lines Unit = Line [BT] LongName = Total data transferred Units = Bytes Unit = Byte [B7] LongName = Total data transferred in last 7 days Units = Bytes Unit = Byte [VE] LongName = Version of Analog # # Standard Reports Column Letters # [R_] LongName = Number of requests Activity = %0 requests handled. [r] LongName = Percentage of the requests [S_] LongName = Number of requests in the last 7 days Activity = %0 requests handled in the last 7 days. [s] LongName = Percentage of requests in the last 7 days [P_] LongName = Number of page requests Activity = %0 pages sent. [p] LongName = Percentage of the page requests [Q_] LongName = Number of page requests in the last 7 days Activity = %0 pages sent in the last 7 days. [q] LongName = Percentage of page requests in the last 7 days [B_] LongName = Number of bytes transferred Activity = %0 served. [b] LongName = Percentage of the bytes [C_] LongName = Number of bytes transferred in the last 7 days Activity = %0 served in the last 7 days. [c] LongName = Percentage of bytes transferred in the last 7 days [D_] LongName = Date and time of last access TimeFormat = mmm. d, yyyy h:nn [d] LongName = Date of last access TimeFormat = mmm. d, yyyy [E_] LongName = Date and time of the first access TimeFormat = mmm. d, yyyy h:nn [e] LongName = Date of first access TimeFormat = mmm. d, yyyy [N_] [l] # ------------------------------------------------------------ # These filters use a slightly different set of options than other columns. # Filters will parse their data value and output a text description. For # each filter you can have any number of Columns specified by Width. # Each Column can have any number of Matches, LongNames and Result sets: # # ColX_MatchX The Regular Expressions (without //) to match the contents # of the filter data. # ColX_LongNameX The basic text of the output string for the corresponding # filter match. Replacements from the matches are %1-%9 # ColX_ResultX_n The replacement text (if any) for the matched variables. The # format for this matchset[tab]output text. If no result set is # given, then the match variable is outputted as listed. If a # result line starts with the [tab] then that will be used when # no match is made in the set. # ------------------------------------------------------------ # # FLOOR and SORTBY (cols 1 and 2) # [f] # Need this to keep the CRO splitter happy # # FLOOR # Col1_LongName1 = This report shows the first %1 results by %2. Col1_Result1_2 = < tag #------------------------------- [Language] Symbol = EN CharacterSet = iso-8859-1 [Text] # -- The summary text items (S0001 - S0008) have all been moved to cdata.ini (1-4) or rdata.ini (5-8) #S0001 - S0009 **Deprecated** # # These are miscellaneous statements that appear on the reports. # O0001 = To navigate the reports without frames, start from the Navigation Page. O0002 = Top of Document O0003 = This report was generated on %0. O0004 = Report time frame %0 to %1. O0005 = Web statistics report produced by: O0006 = Problem with your site statistics? Contact us. # - This is the "ALT" text on graphs. It's something like: # 'Daily Summary: Number of requests by Day of the week.' O0007 = %0: %1 by %2. # - This is the format used by O0003 for the report generation date O0008 = mmmm d, yyyy h:nn # - This is the alternate table text for filters tables O0009 = These filters were used in the following report. # - These are the title text (attributes) for the frames O0010 = Navigation Page O0011 = Report Content Page # - This is the (printed) title for the navigation window O0012 = Report
        Navigation # - This is the name given to the slice on a pie chart containing all # slices that are < 3% of total O0013 = Other # This is the default Title if none is given. %0 is replaced with the HOSTNAME from Analog O0014 = Website statistics for %0 #------------------------------- # The ERRORS section specifically covers all the output notices, Warnings # and errors. If you want you can have Report Magic's errors output in # one langauge and the reports in another. #------------------------------- [Errors] N0000 = %0 N0001 = Creating report file in %0. N0002 = --> Settings file: %0. N0003 = ... Creating graph file in %0. N0004 = Beginning report creation (%0). N0005 = --> Input data file: %0. N0006 = --> Output path: %0. N0007 = --> Output navigation file: %0. N0008 = --> Output report file: %0. N0009 = --> Output frameset file: %0. N0010 = Report creation complete (%0). N0011 = Writing messages to log file %0. W0000 = %0 W0001 = WARNING: Unknown report [%0]. All lines for this report are ignored. W0002 = WARNING: Unknown column [%0]. All columns like this are ignored. W0003 = WARNING: Unknown report type "%0" defined for report [%1]. Ignoring entire report. W0004 = WARNING: Your Active_Column, %0, was not found in the columns for the %1 report. No graphs will be created for this report. W0005 = WARNING: Can't open the Company_Logo file: %0. Defaulting to standard logos. W0006 = WARNING: The command line argument, %0, that you specified is invalid. It will be ignored. W0007 = WARNING: Can't open the Top_Logo file: %0. Defaulting to standard text. W0008 = WARNING: The setting "%0" is not recognized. It will be ignored. E0000 = %0 E0001 = ERROR: -- Can't read from the report file: %0. -- E0002 = ERROR: -- Can't read from the navigation file: %0. -- E0003 = ERROR: -- Can't write to the report file: %0. -- E0004 = ERROR: -- Can't write to the navigation file: %0. -- E0005 = ERROR: -- Can't read from the data file: %0 -- E0006 = ERROR: -- Can't write to the frameset file: %0 -- E0007 = ERROR: -- Can't write to the navigation file: %0 -- E0008 = ERROR: -- Can't write to the report file: %0 -- E0009 = ERROR: -- Could not open a default settings file matching, %0.*. -- #E0010 ** Moved to warnings level: W0004 E0011 = ERROR: -- Required file %0 is missing or corrupt. Cannot continue. -- E0012 = ERROR: -- Can't open the error log file: %0 -- #E0013 ** Moved to warnings level: W0005 E0014 = ERROR: -- Can't open the settings file %0, that you specified. -- E0015 = <Note: Most likely, the first and last years will not represent a complete year's worth of data, resulting in lower hits. EOT [Q_] LongName = Quarterly Report DataName = Quarter TimeFormat = q yyyy MostActive = Most active quarter Average = Quarterly average Description = <Note: Most likely, the first and last quarters will not represent a complete quarter's worth of data, resulting in lower hits. EOT [m] LongName = Monthly Report DataName = Month TimeFormat = mmmm yyyy MostActive = Most active month Average = Monthly average Description = <Note: Depending on the report time frame, the first and last months may not represent a complete month's worth of data, resulting in lower hits. EOT [W_] LongName = Weekly Report DataName = Week beginning TimeFormat = mmmm d, yyyy MostActive = Most active week beginning Average = Weekly average Description = <Note: Depending on the report time frame for this report the first and last week may not represent a full seven day week, resulting in lower hits. EOT [D_] LongName = Daily Report DataName = Day TimeFormat = mmmm d, yyyy MostActive = Most active day Average = Daily average Description = <Note if your processing time appears to be about 100-times too long, then you are probably hosted on an IIS system that reports in 100th second intervals rather than second intervals. EOT [E_] LongName = Redirection Report DataName = File Name MostActive = Most redirected request Description = < Netscape Communicator 4.5, US English version running on Windows 95 would look like:
        Mozilla/4.5 [en] (Win95; U)
      MSIE 4.01 running on Windows 98 would look like:
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] LongName = Browser Summary DataName = Browser Type MostActive = Most active browser type Description = < Browsers are broken down by recognized categories such as Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera and the like. Within each category is also a subgroup by version number such as 'MSIE 5.0' or 'Netscape 4.5'. EOT [p] LongName = Operating System Report DataName = Operating System MostActive = Most popular operating system Description = <HTTP Working Group. EOT [q] LongName = Quick Summary DataName = Quick Summary Description = < tags). Default is 'XHTML 1.0'. [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 Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- reports -------------------------- # These settings describe the look and location of all the reports. Individual # reports can be defined separately in their own sections (e.g. [STATUS]) # BG_Color (optional) is the background color of the report page. # Background (optional) is an image for the page background # Font (optional) is the name of the desired typeface # Font_Color (optional) is the color of the output text. # Title_Font (optional) is the name of the desired typeface for the report title # Title_BG_Color (optional) is the background color of the report title. # Title_Font_Color (optional) is the color of the title text. # Data_Font (optional) is the name of the desired typeface for the data. # Data_BG_Color_1 (optional) is the background color of one set of data rows. # Data_Font_Color_1 (optional) is the color of the text for the data in one set of # rows (defaults to Font_Color). # Data_BG_Color_2 (optional) is the background color of the other set of data rows. # Data_Font_Color_2 (optional) is the color of the text for the data in the other # set of rows (defaults to Font_Color). # Data_Total_Font (optional) is the name of the desired typeface for the summary # data rows (defaults to Data_Font). # Data_Total_Font_Color (optional) is the name of the color for the text in the # summary data rows (defaults to Data_Font_Color). # Data_Total_BG_Color (optional) is the background color of the summary data rows # Data_Header_Font (optional) is the name of the desired typeface for the table # header rows (defaults to Data_Font). # Data_Header_Font_Color (optional) is the name of the color for the text in the # table header rows (defaults to Data_Font_Color). # Data_Header_BG_Color (optional) is the background color of data table headers. # Active_Column tells which column to use for graphs and determining the # most active period or item in the Quick Summary. # Reverse_Time (optional) if set to 1 will reverse the data sets for # time report graphs. Use this if your data runs newest to oldest. # File_Out is the file or directory for the report page(s). If this is # a filename then all reports are put in one file. If this is a # directory name, then each report will have its own file. If this # is the symbol '-' then a single file report will be sent to STDOUT. # Meta_Refresh (optional) is the number of Seconds until the page expires. # If this is 0 or not included, then no META REFRESH tag will be given. # Image_Dir (optional) like the Analog option can be set to tell Report # Magic where to find the logo images for the bottom of the page. # Stylesheet (optional) points to a stylesheet for Report Magic to use for styles. # Graph_Level (optional) sets the level in a hierarchy that is graphed for # hierarchical reports. This is ignored for all other reports. # Show_Bytes_As (optional) determines how much byte values are simplified # when shown in reports. Valid values are K, M, G, T, etc. If no value # is given, then bytes are fully reduced to the smallest whole number. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 Show_Bytes_As = M # ----------------------- GENERAL -------------------------- # Rows (optional) specifies which rows to include in the general # summary. If not included, then ALL rows are shown. To # disable the General Summary, use the keyword NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (optional) tells which rows to show for the Quick Summary. # If not included, then no Quick Summary is made. You # can use the keyword ALL to show all available rows. [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (optional) allows you to specify a color to be used for the # graphing area of the graph. If none is given this will use the # report page background color. # Font (optional) allows you to specify a TrueType Font to use for the # graphs. This should provide the full pathname to the font. You # may also, optionally, include 3 font point-sizes, separated by # commas specifying the size of the graph titles, axes labels and # data labels. # Font_Color (optional) is the color of the graph text. Defaults to the # report page text color. # Width (optional) gives the desired width (in pixels) of the graph. Default is 400 # Height (optional) gives the desired height (in pixels) of the graph. Default is 300 # 3d (optional) if set to 1, will draw 3d graphs, 0 draws 2d graphs. Default is 1. # Palette (optional) gives a list of color names to use for the bars in the # bar charts. For valid names, see the docs/config.html. # Cycle_Colors (optional) if set to 1, each bar in a series on the bar charts # will use a different color from the Data_Colors list. If set to 0, # all bars will use the first color. Default is 1. # Shadows (optional) if set to 1 will draw drop-shadows on the bars in the # bar charts. Set to 0 to disable the shadows. Default is 1. # Format (optional) give the desired ouput format for graph images. Valid # values are PNG and JPEG. Default is PNG because the files are # much smaller. See docs/config.html for why this may have no # effect on your version of Report Magic. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGATION -------------------------- # These settings describe the look and location of the navigation page. # File_Out (optional) is the name of the file for the navigation page. If # no value is given for this option, then no frameset will be built. # BG_Color (optional) is the background color of the navigation page. # Background (optional) is an image for the page background # Font (optional) is the name of the desired typeface # Font_Color (optional) is the color of the output text. # Bullet_Image (optional) is a vitual link to the navigation bullet image. # Stylesheet (optional) points to a stylesheet for Report Magic to use for # styles. # Top_Logo (optional) is the name of a file (relative to the working # directory) that contains a snippet of HTML to insert at the # top of the page. If this is provided it replaces the "Report # Navigation" text. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css Top_Logo = logofile.html # ----------------------- WEBSITE -------------------------- # These settings just provide some general information for the statistics # Title (optional) is the title that appears at the top of every report # file and the title for the frameset. If not given, this will # use standard text like "Website statistics for My Domain" with # the Host Name value if provided by Analog. # Base_URL (optional) is the URL of the site for which these statistics # were collected. If not given this will use the Host URL value # if provided by Analog # Webmaster (optional) is the email address to contact for questions on # the reports. If no value is given, the contact statement will # not be included. # Company_Logo (optional) is the name of a file (relative to the working # directory) that contains a snippet of HTML to insert into the # report. This appears at the bottom of the report and removes # the other logos (Analog, Report Magic). [website] Title = My Website Statistics Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/lang/es/0040755000175000010010000000000007642616033013222 5ustar kilroyNonermagic-2.21/lang/es/cdata.ini0100644000175000010010000002310607642525574015007 0ustar kilroyNone# ------------------------------------------------------------------- # cdata.ini # # Descripciones para columnas y lneas en informes # ltima modificacin: 2000 Jul 30 Por: STO # Para su uso con Report Magic para Analog 2.0 # Compatible con Analog 4.1 # # ------------------------------------------------------------------- # # CMO USAR Y MODIFICAR # # En cada seccin, puede cambiar el texto descriptivo para otro idioma. # A continuacin hay una lista de los parmetros (claves) y lo que significan. # # LongName # Este campo especifica el nombre descriptivo dado a las columnas en todos los # informes y a las filas en el Informe general y el Resumen abreviado. # # Type # Este campo le indica a Report Magic como presentar los contenidos de las # columnas. Los tipos vlidos son los siguientes: # Data Ser mostrado en una tabla (por defecto). # Filter Esto es algn tipo de filtro u ordenacin de informacin (como # FLOOR o SORT) y se escribe como texto simple. El filtrado de # columnas se gestiona con una serie de correspondencias de # expresiones regulares. Esto se describe abajo en la columna # [f]. # Index Este tipo de columna ajustar el nmero de ndice para la fila, # p.ej. [N_]. # Level Este tipo de columna asigna un nivel en un informe jerrquico, # p.ej. [l]. # # Unit # Units # En las columnas (filas) del Resumen general este es el singular y plural para # las unidades (si las hay) para la lnea dada. # # Activity # En los informes temporales, hay una lnea resumen que lista la entrada ms # activa y la media para el periodo. A esto le siguen datos de actividad para # cada columna en el informe. El parmetro 'Activity' da el texto usado para # describir el nivel de actividad para esta columna. # # NumberFormat # Ahora se puede dar un nmero a todas las columnas para el formato. Sin un # formato el nmero se muestra normalmente. Para valores en porcentaje un # formato como '#.#%' mostrara el nmero con un smbolo de porcentaje # localizado despus del valor. Vea docs/numfmt.html para los detalles de la # especificacin de formato. # # Width # Esto le dice al parser CRO cuantas columnas de ancho corresponden al # especificador de columna. Por ejemplo, la columna [D_] tiene 5 columnas de # datos con lo que su anchura es 5. # # TimeFormat # Esto se usa para formatear datos de fecha u hora en columnas que tienen # estos datos (p. ej. [D_] y [d]). Vea docs/datefmt.html para los detalles de la # especificacin de formato. # ------------------------------------------------------------------- # # Lneas del resumen abreviado del informe # [HN] LongName = Nombre del host [HU] LongName = URL del host [PS] LongName = Hora de inicio del programa TimeFormat = d mmm yyyy h:nn [FR] LongName = Hora de la primera petición TimeFormat = d mmm yyyy h:nn [LR] LongName = Hora de la última petición TimeFormat = d mmm yyyy h:nn # - Esto ha sido eliminado, pero debe permanecer por compatibilidad hacia atrs [L7] LongName = Hora en la que empiezan los últimos 7 días TimeFormat = d mmm yyyy h:nn [E7] LongName = Hora en la que terminan los últimos 7 días TimeFormat = d mmm yyyy h:nn [SR] LongName = Peticiones al servidor con éxito Units = Peticiones Unit = Petición [S7] LongName = Peticiones con éxito en los últimos 7 días Units = Peticiones Unit = Petición [PR] LongName = Peticiones de páginas con éxito Units = Peticiones de páginas Unit = Petición de página [P7] LongName = Peticiones de páginas con éxito en los últimos 7 días Units = Peticiones de páginas Unit = Petición de página [FL] LongName = Peticiones fallidas Units = Peticiones Unit = Petición [F7] LongName = Peticiones fallidas en los últimos 7 días Units = Peticiones Unit = Petición [RR] LongName = Peticiones redirigidas Units = Peticiones Unit = Petición [R7] LongName = Peticiones redirigidas en los últimos 7 días Units = Peticiones Unit = Petición [NC] LongName = Líneas de los ficheros de log sin código de estado Units = Líneas Unit = Línea [C7] LongName = Líneas de los ficheros de log sin código de estado en los últimos 7 días Units = Líneas Unit = Línea [NF] LongName = Ficheros distintos solicitados Units = Ficheros Unit = Fichero [N7] LongName = Ficheros distintos solicitado en los últimos 7 días Units = Ficheros Unit = Fichero [NH] LongName = Hosts distintos servidos Units = Hosts Unit = Host [H7] LongName = Hosts distintos servidos en los últimos 7 días Units = Hosts Unit = Host [CL] LongName = Líneas corruptas en el fichero de log Units = Líneas Unit = Línea [UL] LongName = Líneas no deseadas en el fichero de log Units = Líneas Unit = Línea [BT] LongName = Datos totales transferidos Units = Bytes Unit = Byte [B7] LongName = Datos totales transferidos en los últimos 7 días Units = Bytes Unit = Byte [VE] LongName = Versión de Analog # # Etiquetas de las columnas de Informes Estndar # [R_] LongName = Número de peticiones Activity = %0 peticiones atendidas. [r] LongName = Porcentaje de las peticiones [P_] LongName = Número de solicitudes de página Activity = %0 páginas enviadas. [p] LongName = Porcentaje de solicitudes de página [B_] LongName = Número de bytes transferidos Activity = %0 bytes servidos. [b] LongName = Porcentaje de los bytes [D_] LongName = Fecha y hora del último acceso TimeFormat = d mmm yyyy h:nn [d] LongName = Fecha del último acceso TimeFormat = d mmm yyyy [S_] LongName = Número de peticiones en los últimos 7 días Activity = %0 peticiones atendidas en los últimos 7 días. [s] LongName = Porcentaje de peticiones en los últimos 7 días [Q_] LongName = Número de solicitudes de página en los últimos 7 días Activity = %0 páginas enviadas en los últimos 7 días. [q] LongName = Porcentaje de solicitudes de página en los últimos 7 días [C_] LongName = Número de bytes transferidos en los últimos 7 días Activity = %0 bytes servidos en los últimos 7 días. [c] LongName = Porcentaje de bytes transferidos en los últimos 7 días [E_] LongName = Fecha y hora del primer acceso TimeFormat = d mmm yyyy h:n [e] LongName = Fecha del primer acceso TimeFormat = d mmm yyyy # ------------------------------------------------------------ # Estos filtros usan un conjunto de opciones ligeramente diferente a otras # columnas. Los filtros analizarn sus valores y generararn una descripcin # de texto. Para cada filtro se pueden tener cualquier nmero de columnas # especificado por anchura. Cada columna puede tener cualquier numero de # aciertos (Matches), nombres largos (LongNames) y conjuntos de resultados # (Result sets): # # ColX_MatchX Las expresiones regulares (sin //) para localizar los # contenidos del filtro de datos. # ColX_LongNameX El texto bsico de la cadena de salida para el # correspondiente acierto del filtro. Los reemplazos para los aciertos # son %1-%9 # ColX_ResultX_n El texto de reemplazo (si lo hay) para las variables # encontradas, el formato es conjunto_de_aciertos[tab]texto_de_salida. Si # no se da ningn conjunto de aciertos, la variable de aciertos se imprime # como se lista. Si una lnea de resultados comienza por [tab] entonces se # usar cuando no se encuentren aciertos en el conjunto. # ------------------------------------------------------------ # # FLOOR y SORTBY (columnas 1 y 2) # [f] # # FLOOR # Col1_LongName1 = Este informe muestra los primeros %1 resultados por %2. Col1_Result1_2 = < #------------------------------- [Language] Symbol = ES CharacterSet = iso8859-1 [Text] # -- Los items de texto del resumen (S0001 - S0008) se han movido a cdata.ini (1-4) o rdata.ini (5-8) #S0001 - S0009 ** Obsoletos ** # # Estas son frases varias que aparecen en los informes. # O0001 = Para visitar los informes sin marcos, empieza por la Página de navegación. O0002 = Principio del documento O0003 = Este informe fue generado el día %0. O0004 = Periodo de tiempo del informe: del %0 al %1. O0005 = Informe de estadísticas del Web generado por: O0006 = Problemas con las estadísticas de su servidor? Contacte con nosotros. # - This is the "ALT" text on graphs. It's something like: # 'Daily Summary: Number of requests by Day of the week.' O0007 = %0: %1 por %2. # - This is the format used by O0003 for the report generation date and # the reporting period start and end times O0008 = d mmmm yyyy (h:nn) # - This is the alternate table text for filters tables O0009 = Se emplearon estos filtros en el siguiente informe. # - These are the title text (attributes) for the frames O0010 = Página de navegación O0011 = Página de contenidos del informe # - This is the (printed) title for the navigation window O0012 = Informe
        Navegación # - This is the name given to the slice on a pie chart containing all # slices that are < 3% of total O0013 = Otras # Este es el ttulo por defecto si no se da ninguno. %0 se reemplaza con el HOSTNAME de Analog O0014 = Estadísticas del sitio web para %0 #------------------------------- # La seccin ERRORS cubre todas las noticias de salids, avisos y errores. Si # lo desea puede tener la salida de error de Report Magic en un idioma y los # informes en otro. #------------------------------- [Errors] N0001 = Creando archivo del informe en %0. N0002 = --> Archivo de preferencias: %0. N0003 = ... Creando archivo grfico en %0. N0004 = Comenzando la generacin del informe (%0). N0005 = --> Fichero de datos de entrada: %0. N0006 = --> Ruta de salida: %0. N0007 = --> Fichero de navegacin de salida: %0. N0008 = --> Fichero de salida del informe: %0. N0009 = --> Fichero de salida del conjunto de marcos: %0. N0010 = Generacin del informe completada (%0). N0011 = Escribiendo mensajes al fichero de log %0. W0001 = AVISO: Tipo de informe desconocido [%0]. Ignorando todas las lneas para este informe. W0002 = AVISO: Tipo de columna desconocido [%0]. Ignorando todas las columnas como la actual. W0003 = AVISO: Definido tipo de informe desconocido "%0" para el informe [%1]. Ignorando todo el informe. W0004 = AVISO: Su columna activa, %0, no se encontr en las columnas para el informe %1. No se crearan grficos para este informe. W0005 = AVISO: No se puede abrir el logo de la compaa: %0. Empleando los logos por defecto. W0006 = AVISO: El argumento de la lnea de comandos, %0, que especific es invlido. Se ignorar. W0007 = AVISO: No se puede abrir el fichero Top_Logo: %0. Usando por defecto el texto estndar. W0008 = AVISO: El ajuste "%0" no se reconoce, ser ignorado. E0001 = ERROR: -- No puedo leer del fichero de informe: %0 -- E0002 = ERROR: -- No puedo leer del fichero de navegacin: %0 -- E0003 = ERROR: -- No puedo escribir en el fichero de informe: %0 -- E0004 = ERROR: -- No puedo escribir en el fichero de navegacin: %0 -- E0005 = ERROR: -- No puedo leer del fichero de datos: %0 -- E0006 = ERROR: -- No puedo escribir en el fichero del conjunto de marcos: %0 -- E0007 = ERROR: -- No puedo escribir en el fichero de navegacin: %0 -- E0008 = ERROR: -- No puedo escribir en el fichero del informe: %0 -- E0009 = ERROR: -- No puedo abrir un archivo de ajustes por defecto que coincide con %0.* -- #E0010 ** Movido a avisos nivel: W0004 E0011 = ERROR: -- Fichero %0 necesario est perdido o corrupto. Detenido. -- E0012 = ERROR: -- No puedo abrir el fichero de registro de errores: %0 -- #E0013 ** Movido a avisos nivel: W0005 E0014 = ERROR: -- No puedo abrir el fichero de ajustes %0, que usted especific. -- E0015 = <Nota: Dependiendo del periodo del informe, el primer y último mes pueden no representar un mes completo, resultando en menos aciertos de los reales. EOT [W_] LongName = Informe semanal DataName = Inicio de la semana TimeFormat = d mmmm yyyy MostActive = Principio de la semana más activa Average = Promedio semanal Description = <Nota: Dependiendo del periodo del informe, la primera y última semana pueden no representar una semana completa, resultando en menos aciertos de los reales. EOT [D_] LongName = Informe diario DataName = Día TimeFormat = d mmmm yyyy MostActive = Día más activo Average = Promedio diario Description = < Netscape Communicator 4.5, versión US English version corriendo en Windows 95 aparecerá como:
        Mozilla/4.5 [en] (Win95; U)
      MSIE 4.01 corriendo en Windows 98 aparecerá como:
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] LongName = Resumen por navegadores DataName = Tipo de navegador MostActive = Tipo de navegador más activo Description = < Los navegadores se clasifican por categorías reconocidas como Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera y similares. Dentro de cada categoría existe también un subgrupo por número de versión como 'MSIE 5.0' o 'Netscape 4.5'. EOT [v] LongName = Informe de hosts virtuales DataName = Nombre del host virtual MostActive = Host virtual más activo Description = <HTTP Working Group. EOT [Z_] LongName = Informe por organizaciones DataName = Organización MostActive = Organización más activa Description = <Nota si su tiempo de proceso parece ser 100 veces más grande del lo correcto, entonces es probable que el host sea un sistema IIS que informa del tiempo en intervalos de centésimas de segundo en lugar de en segundos. EOT [N_] LongName = Informe por consultas de búsqueda DataName = Consulta de búsqueda MostActive = Consulta de búsqueda más común Description = <Nota: Probablemente el primer y último año no representarán un añno de datos válidos, resultando en menos aciertos de los reales. EOT [Q_] LongName = Informe cuatrimestral DataName = Cuatrimestre MostActive = Trimestre más activo Average = Promedio cuatrimestral Description = <Nota: Probablemente el primer y último quatrimestre no representarán un cuatrimestre de datos v´lidos, resultando en menos aciertos de los reales. EOT [w] LongName = Resumen por horas de la semana DataName = Hora TimeFormat = wwww, h:00 - h:59 MostActive = Hora más activa de la semana Description = < tag #------------------------------- [Language] Symbol = FI CharacterSet = iso8859-1 [Text] # -- The summary text items (S0001 - S0008) have all been moved to cdata.ini (1-4) or rdata.ini (5-8) #S0001 - S0009 **Deprecated** # # These are miscellaneous statements that appear on the reports. # O0001 = Halutessasi kehyksettömän version, aloita navigointipaneelista. O0002 = Raportin alku O0003 = Tämä raporti on generoitu %0. O0004 = Raportin aikajakso on %0 - %1. O0005 = WWW statistiikka raportti: O0006 = Ongelmia statistiikkasivuissa?
      Ota yhteyttä. # - This is the "ALT" text on graphs. It's something like: # 'Daily Summary: Number of requests by Day of the week.' O0007 = %0: %1 %2 mukaan. # - This is the format used by O0003 and O0004 for the report generation date and # the reporting period start and end times O0008 = d. mmmm yyyy hh:nn # - This is the alternate table text for filters tables O0009 = Näitä suodattimia käytettiin seuraavassa raporttiosiossa. # - These are the title text (attributes) for the frames O0010 = Navigaatiosivu O0011 = Raporttisivu # - This is the (printed) title for the navigation window O0012 = Raportti
        Navigaatiosivu # - This is the name given to the slice on a pie chart containing all # slices that are < 3% of total O0013 = Muut # This is the default Title if none is given. %0 is replaced with the HOSTNAME from Analog O0014 = WWW-sivun %0 statistiikka #------------------------------- # The ERRORS section specifically covers all the output notices, Warnings # and errors. If you want you can have Report Magic's errors output in # one langauge and the reports in another. #------------------------------- [Errors] N0001 = Luodaan raporttitiedosto %0. N0002 = --> Asetustiedosto: %0. N0003 = ... Luodaan kuvatiedosto %0. N0004 = Aloitetaan raportin luominen (%0). N0005 = --> Sytetiedot tiedostosta: %0. N0006 = --> Tulostus hakemistoon: %0. N0007 = --> Raportin navigaatiotiedosto: %0. N0008 = --> Raporttitiedosto: %0. N0009 = --> Raportin kehystiedosto: %0. N0010 = Raportin luonti valmis (%0). N0011 = Raportin luomisen aikaiset viestit kirjoitetaan logitiedostoon %0. W0001 = VAROITUS: Tuntematon raportti [%0]. Kaikki rivit tt raporttia varten jtetn huomioimatta. W0002 = VAROITUS: Tuntematon sarake [%0]. Kaikki tmnkaltaiset sarakkeet jtetn huomioimatta. W0003 = VAROITUS: Tuntematon raporttityyppi "%0" mriteltyn raporttiin [%1]. Koko raportti jtetn huomioimatta. W0004 = VAROITUS: Aktiivista saraketta, %0, ei lytynyt sarakkeista raporttia %1 varten. Yhtn kuvaa ei voida luoda thn raporttiin. W0005 = VAROITUS: Yrityslogotiedostoa (Company_Logo file): %0 ei voida avata. Standardit logot otettu kyttn. W0006 = VAROITUS: Komentoriviatribuutti %0 virheellinen. Attribuutti jtetn huomioimatta. W0007 = VAROITUS: Ylint logotiedostoa (Top_Logo): %0 ei voida avata. Standardi teksti otettu kyttn. W0008 = VAROITUS: Tuntematon asetus "%0". Asetus jtetn huomioimatta. E0000 = %0 E0001 = VIRHE!: -- Raporttitiedostoa %0 ei voida lukea. -- E0002 = VIRHE!: -- Raportin navigaatiotiedostoa %0 ei voida lukea. -- E0003 = VIRHE!: -- Raporttitiedostoon %0 ei voida kirjoittaa. -- E0004 = VIRHE!: -- Raportin navigaatiotiedostoon %0 ei voida kirjoittaa. -- E0005 = VIRHE!: -- Datatiedostoa %0 ei voida lukea. -- E0006 = VIRHE!: -- Raportin kehystiedostoon %0 ei voida kirjoittaa. -- E0007 = VIRHE!: -- Raportin navigaatiotiedostoon %0 ei voida kirjoittaa. -- E0008 = VIRHE!: -- Raporttitiedostoon %0 ei voida kirjoittaa. -- E0009 = VIRHE!: -- Oletusasetustiedostoa, %0.* ei voida avata. -- #E0010 ** Moved to warnings level: W0004 E0011 = VIRHE!: -- Vaadittu tiedosto %0 puuttuu tai on vioittunut. Raportin luontia ei voida jatkaa. -- E0012 = VIRHE!: -- Virhelogitiedostoa %0 ei voida avata. -- #E0013 ** Moved to warnings level: W0005 E0014 = VIRHE!: -- Asetustiedostoa %0, jonka annoitte, ei voida avata. -- E0015 = <Huom! Raportin esittämästä aikavälistä johtuen ensimmäinen ja viimeinen vuosi ei aina anna oikeaa kokonaiskuvaa ko. vuoden tiedoista, vaan näiden vuosien arvot ovat usein oikeaa määrää pienempiä. EOT [Q_] LongName = Kvartaaliraportti DataName = Kvartaali TimeFormat = q yyyy MostActive = Aktiivisin kvartaali Average = Kvartaalikeskiarvo Description = <Huom! Raportin esittämästä aikavälistä johtuen ensimmäinen ja viimeinen kvartaali ei aina anna oikeaa kokonaiskuvaa ko. kvartaalin tiedoista, vaan näiden kvartaalien arvot ovat usein oikeaa määrää pienempiä. EOT [m] LongName = Kuukausiraportti DataName = Kuukausi TimeFormat = mmmm yyyy MostActive = Aktiivisin kuukausi Average = Kuukausikeskiarvo Description = < Huom! Raportin esittämästä aikavälistä johtuen ensimmäinen ja viimeinen kuukausi ei aina anna oikeaa kokonaiskuvaa ko. kuukauden tiedoista, vaan näiden kuukausien arvot ovat usein oikeaa määrää pienempiä. EOT [W_] LongName = Viikkoraportti DataName = Alkavan viikon pvm TimeFormat = d.m.yyyy MostActive = Aktiivisin viikko (viikon alkupvm): Average = Viikkokeskiarvo Description = < Huom! Raportin esittämästä aikavälistä johtuen ensimmäinen ja viimeinen viikko ei aina anna oikeaa kokonaiskuvaa ko. viikon tiedoista, vaan näiden viikkojen arvot ovat usein oikeaa määrää pienempiä. EOT [D_] LongName = Päiväraportti DataName = Päivä TimeFormat = d.m.yyyy MostActive = Aktiivisin päivä: Average = Päiväkeskiarvo Description = <hakemistoittain. Tällä informaatiolla voidaan päätellä kaikkein suosituimmat alueet sivustolla. EOT [t] LongName = Tiedostotyyppiraportti DataName = Tiedoston tyyppi MostActive = Eniten pyydetty tiedostotyyppi Description = <Huom! Jos prosessointiajat ovat 100 kertaisia todelliseen aikaan nähden, on sivuston palvelinohjelmisto todennäköisesti raportoinnut ajat sadasosasekunteina. EOT [E_] LongName = Toisaalleohjausraportti DataName = Tiedoston nimi MostActive = Eniten toisaalle ohjattu pyyntö Description = <sivut, joissa on linkki tähän sivustoon. Tämä auttaa ymmärtämään, miltä toisen sivuston sivulta kävijät ovat tulossa. EOT [s] LongName = Linkitysraportti DataName = Sivuston osoite MostActive = Aktiivisin sivusto, joista linkitys on tehty Description = <sivustot, joissa on linkki tähän sivustoon. Tämä auttaa ymmärtämään, mistä sivustoista kävijät ovat tulossa. EOT [N_] LongName = Hakuraportti DataName = Hakukriteeri MostActive = Yleisin hakukriteeri Description = < Netscape Communicatiorin US-englanninkielinen versio 4.5 Windows 95:n käyttöjärjestelmässä näyttää seuraavalta:
        Mozilla/4.5 [en] (Win95; U). EOT [b] LongName = Selainyhteenveto DataName = Selain MostActive = Käytetyin selain Description = <W3C.Orgista. EOT [q] LongName = Nopea yhteenveto DataName = Nopea yhteenveto Description = < #------------------------------- [Language] Symbol = FR CharacterSet = iso8859-1 [Text] # -- Les lments du sommaire (S0001 - S0008) ont tous t dplacs dans cdata.ini (1-4) ou rdata.ini (5-8) #S0001 - S0009 **Plus utilis** # # Elments divers qui apparaissent dans les rapports. # O0001 = Pour naviguer sans frames, commencez par la Page de navigation. O0002 = Haut du document O0003 = Rapport généré le : %0. O0004 = Période d'analyse : du %0 au %1. O0005 = Rapport de statistiques web produit par : O0006 = Des problèmes avec vos statistiques ? Contact. # - Texte "ALT" des graphiques. Par exemple : # 'Rapport quotidien : nombre de requtes par jour de la semaine.' O0007 = %0: %1 by %2. # - Format utilis par O0003 et O0004 pour la date du rapport et # le dbut et fin de la priode d'analyse O0008 = dd mmmm yyyy hh:nn # - Texte alternatif pour les tables avec des filtres : O0009 = Ces filtres ont été utilisés dans le rapport suivant. # - Titres (attributs) des frames : O0010 = Page de Navigation O0011 = Page du Contenu # - Titre (affich) de la frame de navigation : O0012 = Sommaire # - Nom donn la partie de camembert reprsentant moins de 3% du total : O0013 = Autres # Titre par dfaut si aucun n'est spcifi. %0 est remplac par le HOSTNAME de Analog. O0014 = Statistiques web pour %0 #------------------------------- # The ERRORS section specifically covers all the output notices, Warnings # and errors. If you want you can have Report Magic's errors output in # one langauge and the reports in another. #------------------------------- [Errors] N0001 = Cration Rapport dans %0. N0002 = --> Fichier des paramtres : %0. N0003 = ... Cration Graphique dans %0. N0004 = Dbut de la gnration du rapport (%0). N0005 = --> Fichier des donnes : %0. N0006 = --> Chemin de sortie : %0. N0007 = --> Fichier de navigation : %0. N0008 = --> Fichier du rapport : %0. N0009 = --> Frameset : %0. N0010 = Gnration du rapport termine (%0). N0011 = Ecriture des messages dans le fichier de log %0. W0001 = ATTENTION : Type de rapport inconnu [%0]. Toutes les lignes de ce rapport sont ignores. W0002 = ATTENTION : Type de colonne inconnu [%0]. Toutes les colonnes de ce type sont ignores. W0003 = ATTENTION : Type de rapport inconnu "%0" dfini pour le rapport [%1]. Rapport entier ignor. W0004 = ATTENTION : La colonne %0 n'a pas t trouve parmi les colonnes du rapport %1. Aucun graphique n'est cr pour ce rapport. W0007 = ATTENTION : Impossible d'ouvrir le fichier Top_Logo : %0. Utilisation du texte standard. W0008 = ATTENTION : Le paramtre "%0" est incorrect et sera ignor. E0001 = ERREUR: -- Impossible d'ouvrir le fichier du rapport %0 en lecture -- E0002 = ERREUR: -- Impossible d'ouvrir le fichier de navigation %0 en lecture -- E0003 = ERREUR: -- Impossible d'crire dans le fichier du rapport %0 -- E0004 = ERREUR: -- Impossible d'crire dans le fichier de navigation %0 -- E0005 = ERREUR: -- Impossible d'ouvrir le fichier des donnes %0 en lecture -- E0006 = ERREUR: -- Impossible d'crire dans le frameset %0 -- E0007 = ERREUR: -- Impossible d'crire dans le fichier de navigation %0 -- E0008 = ERREUR: -- Impossible d'crire dans le fichier du rapport %0 -- E0009 = ERREUR: -- Impossible d'ouvrir un fichier de paramtres par dfaut tel que %0.*. -- #E0010 ** Dplac vers W0004 ** E0011 = ERREUR: -- Le fichier %0 est manquant ou abim. Programme arrt. -- E0012 = ERREUR: -- Impossible d'ouvrir le fichier de log : %0 -- E0013 = ERREUR: -- Impossible d'ouvrir le fichier du logo de la socit : %0 -- E0014 = ERREUR: -- Impossible d'ouvrir le fichier de paramtres %0 que vous avez spcifi. -- E0015 = < Note : il se peut que les premier et dernier mois affichés ne correspondent pas à un mois entier de données. EOT [W_] LongName = Rapport hebdomadaire DataName = Semaine TimeFormat = dd mmm yyyy MostActive = Semaine la plus active Average = Moyenne hebdomadaire Description = < Note : il se peut que les première et dernière semaine affichées ne correspondent pas à une semaine complète de 7 jours. EOT [D_] LongName = Rapport journalier DataName = Jour TimeFormat = dd mmmm MostActive = Jour le plus actif Average = Moyenne journalière Description = < Netscape Communicator 4.5, version US, tournant sous Windows 95 apparaîtra comme :
        Mozilla/4.5 [en] (Win95; U)
      MSIE 4.01 tournant sous Windows 98 apparaîtra comme :
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] LongName = Synthèse des navigateurs DataName = Type de navigateur MostActive = Type de navigateur le plus utilisé Description = < Les navigateur sont rassemblés par catégories telles que Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera etc ... Dans chaque catégorie sont regroupés les versions des types de navigateurs, par exemple 'MSIE 5.0' ou 'Netscape 4.5'. EOT [v] LongName = Rapport des hôtes virtuels DataName = Nom d'hôte virtuel MostActive = Hôte virtuel le plus fréquent Description = <HTTP Working Group. EOT [Z_] LongName = Rapport des organisations DataName = Organisation MostActive = Organisation la plus représentée Description = <Note : si votre temps processeur apparaît être environ 100 fois trop long, votre site est probablement hébergé sur un serveur IIS qui utilise des intervalles de 1 centième de s au lieu de 1 s. EOT [N_] LongName = Rapport des requêtes de recherche DataName = Requête de recherche MostActive = Requête de recherche la plus fréquente Description = < Note : il se peut que la première et dernière année affichée ne correspond pas à une année complète. EOT [Q_] LongName = Rapport trimestriel DataName = Trimestre MostActive = Trimestre le plus actif Average = Moyenne trimestrielle Description = < Note : il se peut que le premier et le dernier trimestre affiché ne correspond pas à un trimestre complet. EOT [w] LongName = Heure la plus active de la semaine DataName = Heure TimeFormat = wwww, hh:00 - hh:59 MostActive = Heure la plus active de la semaine Description = <). Le format par dfaut est 'XHTML 1.0'. [statistics] File_In = report.dat Frame_File_Out = index.html Frame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = fr Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- RAPPORTS -------------------------- # Ces paramtres dfinissent le look et la localisation des pages des rapports. # Les rapports individuels peuvent tres dfinis sparment dans leur section # propre (p.ex. [STATUS]). # Active_Column indique la colonne utiliser pour les graphiques et # dtermine la priode ou la valeur la plus active dans l'Aperu Rapide. # BG_Color (optionel) est la couleur du fond de page. # Background (optionel) est une image pour le fond de page. # Font (optionel) est le nom de la police de caractres. # Font_Color (optionel) est la couleur du texte. # Title_Font (optionel) est le nom de la police de caractres pour le titre. # Title_BG_Color (optionel) est la couleur de fond du titre des rapports. # Title_Font_Color (optionel) est la couleur du titre des rapports. # Data_Font (optionel) est le nom de la police de caractres pour les donnes. # Data_BG_Color_1 (optionel) est la couleur de fond du premier ensemble de # lignes de donnes. # Data_Font_Color_1 (optionel) est la couleur du texte du premier ensemble de # lignes de donnes (Font_Color est la valeur par dfaut). # Data_BG_Color_2 (optionel) est la couleur de fond du second ensemble de # lignes de donnes. # Data_Font_Color_2 (optionel) est la couleur du texte du second ensemble de # lignes de donnes (Font_Color est la valeur par dfaut). # Data_Total_Font (optionel) est le nom de la police de caractres pour les # lignes de donnes du sommaire (Data_Font est la valeur par dfaut). # Data_Total_BG_Color (optionel) est la couleur de fond pour les lignes # de donnes du sommaire # Data_Total_Font_Color (optionel) est la couleur du texte pour les lignes # de donnes du sommaire (Data_Font_Color est la valeur par dfaut). # Data_Header_Font (optionel) est le nom de la police de caractres pour les # en-ttes des tables (Data_Font est la valeur par dfaut). # Data_Header_BG_Color (optionel) est la couleur de fond pour les # en-ttes des tables. # Data_Header_Font_Color (optionel) est la couleur du texte pour les # en-ttes des tables (Data_Font_Color est la valeur par dfaut). # File_Out est le fichier ou rpertoire pour le(s) page(s) du rapport. Si on indique # un nom de fichier, tous les rapports seront contenus dans une page unique. # Si on indique un rpertoire, chaque rapport aura sa propre page. Si on # indique le caractre '-', un fichier contenant le rapport sera envoy vers STDOUT. # Meta_Refresh (optionel) est le nombre de secondes avant expiration de la page HTML. # Si la valeur est 0 ou omise, aucune balise META REFRESH ne sera gnre. # Image_Dir (optionel) permet d'indiquer Report Magic l'endroit o chercher les # images de bas de page. # Graph_Level (optionnel) fixe le niveau hirarchique dans un rapport # hirarchique. Est ignor pour les autres rapports. # Show_Bytes_As (facultatif) dtermine le niveau de simplification dans l'affichage # des donnes reprsentant des octets. Les valeurs possibles sont K, M, G, T, etc. # Si aucune valeur n'est prcise, les donnes sont tronques au plus petit nombre entier. # * Les couleurs peuvent tre indique sous le nom HTML ou sous forme d'un code hexadcimal # sur 6 caractres prcd de '#' (par ex. '#FFFFFF' pour le blanc) [reports] Active_Column = R BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_BG_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Graph_Level = 1 Show_Bytes_As = M # ----------------------- SYNTHESE GENERALE -------------------------- # Rows (optionel) permet de spcifier les colonnes inclure # dans la Synthse Gnrale. Si aucune n'est spcifie, # TOUTES les colonnes sont affiches. Pour ne pas afficher # la Synthse Gnrale, utilisez le mot-cl NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- APERCU RAPIDE -------------------------- # Rows (optionel) permet de spcifier les colonnes inclure # dans l'Aperu Rapide. Si aucune n'est spcifie, # l'Aperu Rapide n'EST PAS affich. En utilisant le # mot-cl ALL, toutes les colonnes disponibles sont affiches. [QUICK] Rows = m, W, D, H, B # ----------------------- GRAPHIQUES -------------------------- # BG_Color (optionel) est la couleur de fond de page d'un graphique. # Si aucune n'est spcifie, utilise la couleur de fond de page # dfinie pour les rapports. # Font (optionel) est le nom de la police de caractres TrueType utiliser # avec les graphiques. Il faut indiquer le chemin entier vers la # police utiliser. Vous pouvez, optionnellement, indiquer 3 tailles # de polices en points, spares par des virgules et reprsentant # respectivement les tailles des titres, des labels des axes et des # labels des donnes. # Font_Color (optionel) est la couleur du texte des graphiques. La valeur par # dfaut est celle des rapports. # Reverse_Time (optionel) permet d'inverser l'chelle des donnes si dfini 1. # A utiliser si vos donnes vont du plus rcent au plus ancien. # Width (optionel) dfini la largeur du graphique en pixels. Valeur par dfaut : 400. # Height (optionel) dfini la hauteur du graphique en pixels. Valeur par dfaut : 300. # 3d (optionel) dite les graphiques en 3D si dfini 1. Valeur par dfaut : 1. # Data_Colors (optionel) spcifie une liste de nom de couleurs utiliser pour les # graphiques en barres. Voir docs/config.html pour la liste des noms. # Cycle_Colors (optionel) si dfini 1, chaque barre d'un graphique en barres # va utiliser une couleur diffrente partir de la liste de Data_Colors. # Si dfini 0, toutes les barres vont utiliser la premire couleur. # Valeur par dfaut : 1. # Shadows (optionel) si dfini 1, affiche des barres avec de l'ombre dans les # graphiques en barres. Pour ne pas afficher les ombres, mettre la valeur 0. # Valeur par dfaut : 1. # Long_Ticks (optionel) si dfini 1, affiche une grille derriere le graphique. # Si dfini 0, affiche uniquement les repres sur les axes. # Valeur par dfaut : 1. # Format (optionel) dtermine le format de sortie des images des graphiques. # Les valeurs admises sont PNG et JPEG. La valeur par dfaut est PNG car # la taille des fichier est plus rduite. Voir docs/config.html pour # apprendre pourquoi ceci peut n'avoir aucun impact sur votre version de # Report Magic. # * Les couleurs peuvent tre indique sous le nom HTML ou sous forme d'un code hexadcimal # sur 6 caractres prcd de '#' (par ex. '#FFFFFF' pour le blanc) [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Data_Colors = lgreen, lblue, lred, lpurple,lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Long_Ticks = 1 Format = png # ----------------------- NAVIGATION -------------------------- # Ces paramtres dfinissent le look et la localisation de la page de navigation. # File_Out (optionel) est le nom de fichier de la page de navigation. # Si aucune valeur n'est indique, aucun frameset ne sera construit. # BG_Color (optionel) est la couleur de fond de page de navigation. # Background (optionel) est une image pour le fond de page. # Font (optionel) est le nom de la police de caractres. # Font_Color (optionel) est la couleur du texte. # Bullet_Image (optionel) est un lien virtuel vers l'image de navigation. # Top_Logo (facultatif) est le nom d'un fichier (relatif au rpertoire de travail) # contenant du code HTML insrer sur le haut de la page. # Si ce fichier est utilis, il remplace le texte standard "Rapport de navigation". # * Les couleurs peuvent tre indique sous le nom HTML ou sous forme d'un code hexadcimal # sur 6 caractres prcd de '#' (par ex. '#FFFFFF' pour le blanc) [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Top_Logo = logo_societe.txt # ----------------------- SITE WEB -------------------------- # Ces paramtres donnent quelques informations pour les statistiques. # Title (optionel) est le titre apparaissant au dbut de chaque rapport # et dans le frameset. Si non indiqu, le titre sera du type # "Website statistics for My Domain" et utilisera le HOSTNAME # transmis par Analog. # Base_URL (optionel) est l'URL du site pour lequel sont gnres les # statistiques. Si non indiqu, la valeur sera celle de HOSTURL # transmise par Analog. # Webmaster (optionel) est une adresse e-mail pour un contact sur les # statistiques. Si non indiqu, la partie contact sera occulte. # Company_Logo (optionel) est le nom d'un fichier (relatif au rpertoire # de travail) contenant du code HTML insrer au bas de chaque # rapport. Les autres logos (Analog, DNS, et WADigital) sont # alors supprims. [website] Title = Statistiques de mon site web Webmaster = webmaster@mondomaine.com Base_URL = http://www.mondomaine.com Company_Logo = logo_societe.txt rmagic-2.21/lang/hu/0040755000175000010010000000000007642616034013230 5ustar kilroyNonermagic-2.21/lang/hu/cdata.ini0100644000175000010010000002455707642525574015027 0ustar kilroyNone# ------------------------------------------------------------------- # cdata.ini # # Az oszlopok s sorok lersa a jelentsekben. # Last Updated: 2002 December 06 By: WEBGb (dszekely@csoft.ro) # For use with Report Magic for Analog 2.x # Compatible with Analog 5.24 # # ------------------------------------------------------------------- # # Hogyan hasznld s mdostsd # # Minden rszben megvltoztathatod a ler rszt, lefordthatod a kvnt nyelvre. # Albb tallsz egy rvid lerst a paramterekrl. # s persze be tudsz lltani nhny formzsi s kijelzsi paramtert. # # LongName # Az oszlopok lersa, ahogy megjelenik a kimeneten minden jelentsben s # sorban a General Report-ban s a Quick Summary-ban. # # Type # Ez a mez mondja meg a Report Magicnak, hogyan jelentse meg az oszlopok tartalmt. # rvnyes rtkek: # Data Alaprtelmezs, szerepelni fog a tblzatban # Filter Szr- vagy sorbarendezsi felttel, (mint a # FLOOR vagy a SORT) s egyszer szvegknt kerl kijelzsre. # A szroszlopokat normlkifelyezsekkel kell lekezelni. # Ez lennebb van lerva, az [f] oszloppal. # Index Ez az olszlop lltja be az indexels tpust meghatroz rtket. pl. [N_] # Level Ez az oszlop lltja be a hierarchikus jelentsben a mlysget. pl. [l] # # Unit # Units # A General Summary tpus jelentsben az adott sorban megjelen rtkek egyes s # tbbes szm alakjt adja meg - ha van ilyen. # # Activity # A Time Reports tpus jelentsekben egy sszegz jelleg sor, amely az adott idben # legaktvabb rtket s az ltlagrtket mutatja. Ezt kveti az aktivitsra vonatkoz adat # a jelents minden oszlopban. Az 'Activity' paramter tartalmazza a szveget, amelyik # letja az oszlopban szerepl tevkenysget. # # NumberFormat # Minden oszlop szmra megadhat egy szmformtum. Ennek hinyban a szmok alaprtelmezs # szerint kerlnek a kimeneti eszkzre. A szzalkban megadott rtkek esetben a '#.#%' # formtum az rtkben szerepl tizedesvesszt az adott helyen jelent meg. # Rszletes lers a "docs/numfmt.html" fjlban. # # Width # Ez mondja meg a "CRO parser"-nek, hny oszlop szles az oszlopdefinci. # Pldul a [D_] oszlopnak tnylegesen 5 oszlopa van, teht a szlessge 5. # # TimeFormat # Ez adja meg a dtumformtumokat azokban az oszlopokban, amelyek dtumokat # tartalmaznak, mint pl. [D_] s [d]). Rszletes lers a "docs/datefmt.html" # fjlban. # A "cdata.ini" nem kell tartalmazza a Type vagy Width paramtereket vagy a # (ColX_MathY) kifelyezseket, ha nem akarod valamirt mskppen definilni ket, # mint ahogy meg vannak adva az alapbelltsokban! # # ------------------------------------------------------------------- # # General Summary Report sorok # [HN] LongName = Host neve [HU] LongName = Host címe [PS] LongName = Program futási ideje TimeFormat = yyyy mmm d, h:nn óra [FR] LongName = Elsõ lekérdezés idõpontja TimeFormat = yyyy mmm d, h:nn óra [LR] LongName = Utolsó lekérdezés idõpontja TimeFormat = yyyy mmm d, h:nn óra # - Ennek csak a kompatibilitás megõrzése miatt kell szerepelnie [L7] LongName = Az utolsó 7 nap kezdete TimeFormat = yyyy mmm d, h:nn óra [E7] LongName = Az utolsó 7 nap vége TimeFormat = yyyy mmm d, h:nn óra [SR] LongName = Sikeres szerver kérések Units = kérés Unit = kérés [S7] LongName = Sikeres kérések az utolsó 7 napban Units = kérés Unit = kérés [PR] LongName = Sikeres lap kérések Units = lap kérés Unit = lap kérés [P7] LongName = Sikeres lap kérések az utolsó 7 napban Units = lap kérés Unit = lap kérés [FL] LongName = Sikertelen kérések Units = kérés Unit = kérés [F7] LongName = Sikertelen kérések az utolsó 7 napban Units = kérés Unit = kérés [RR] LongName = Átirányított kérések Units = kérés Unit = kérés [R7] LongName = Átirányított kérések az utolsó 7 napban Units = kérés Unit = kérés [NC] LongName = Állapotkód nélküli logfile sorok Units = sor Unit = sor [C7] LongName = Állapotkód nélküli logfile sorok az utolsó 7 napban Units = sor Unit = sor [NF] LongName = Egyedi fájlkérések Units = fájl Unit = fájl [N7] LongName = Egyedi fájlkérések az utolsó 7 napban Units = fájl Unit = fájl [NH] LongName = Egyedi kiszolgált gépek Units = gép Unit = gép [H7] LongName = Egyedi kiszolgált gépek az utolsó 7 napban Units = gép Unit = gép [CL] LongName = Hibás sorok a logfájlban Units = sor Unit = sor [UL] LongName = Váratlan sorok a logfájlban Units = sor Unit = sor [BT] LongName = Kiszolgált adatmennyiség összesen Units = bájt Unit = bájt [B7] LongName = Kiszolgált adatmennyiség összesen az utolsó 7 napban Units = bájt Unit = bájt [VE] LongName = Az Analog verziószáma # # Standard Reports Column Letters # [R_] LongName = Kérések száma Activity = Kiszolgált kérések %0. [r] LongName = Kérések százalékaránya NumberFormat = #.#% [P_] LongName = Oldal kérések száma Activity = %0 kiszolgált oldal. [p] LongName = Oldal kérések százalékaránya NumberFormat = #.#% [B_] LongName = Kiszolgált bájtok Activity = %0 bájt továbbítva. [b] LongName = Kiszolgált bájtok százalékaránya NumberFormat = #.#% [D_] LongName = Utolsó lekérdezés idõpontja TimeFormat = yyyy mmm d, h:nn [d] LongName = Utolsó lekérdezés dátuma TimeFormat = yyyy mmm d [S_] LongName = Az utolsó 7 napban kiszolgált kérések Activity = %0 kérés kiszolgálva az utolsó 7 napban. [s] LongName = Az utolsó 7 napban kiszolgált kérések szézalékaránya [Q_] LongName = Az utolsó 7 napban kiszolgált oldalkérések Activity = %0 oldal elküldve az utolsó 7 napban. [q] LongName = Az utolsó 7 napban kiszolgált oldalkérések százalékaránya [C_] LongName = Az utolsó 7 napban kiszolgált bájtok száma Activity = %0 bájt elküldve az utolsó 7 napban. [c] LongName = Az utolsó 7 napban elküldött bájtok százalékaránya [E_] LongName = Az elsõ lekérdezés napja és idõpontja TimeFormat = yyyy. mmm. d, h:nn [e] LongName = Az elsõ lekérdezés napja TimeFormat = yyyy. mmm. d # ------------------------------------------------------------ # Ezek a szrk egszen ms opcikat hasznlnak, mint a tbbiek. # A szrk feldolgozzk az adatokat, s egy szveges kimenetet adnak. # Minden egyes szr esetben tetszleges szm oszlopot (Columns) lehet # megadni, a szlessg (Width) paramterrel egytt. # Minden oszlopnak (Column) lehet akrhny szrfelttele (Matches), # lersa (LongNames) s eredmnye (Result): # ColX_MatchX Norml kifelyezs (a // nlkl) ami a szrfelttelt # adja meg. # ColX_LongNameX Az alapszveg, amibl sszell a kimeneti szveg. # A magyar nyelv sajtossgai miatt szinte lehetetlen tisztessges # eredmnyt kapni. Az %1-%9 rtkek lesznek behelyettestve. # ColX_ResultX_n A behelyettestend szveg - ha van ilyen - a szrfelttelben # megadott vltozkra. # A formtum: felttel[tab]kimeneti szveg. Ha nincs megadva # szrfelttel, a vltoz a megadott formban kerl listzsra. # Ha az eredmnysor [tab] karakterrel kezddik, # akkor ez kerl listzsra, ha nincs a szrfelttelnek # megfelel adat. # ------------------------------------------------------------ # # FLOOR and SORTBY (cols 1 and 2) # [f] # # FLOOR # Col1_LongName1 = Az elsõ %1 eredményei %2 szerint. Col1_Result1_2 = < tag-ba. #------------------------------- [Language] Symbol = HU CharacterSet = iso8859-1 [Text] # -- A (S0001 - S0008) szvegek a "cdata.ini"-be (1-4) vagy az # "rdata.ini"-be (5-8) kerltek t. #S0001 - S0009 **Deprecated** # # Ezek olyan kifelyezsek, amelyek a jelentsekben szerepelnek. # O0001 = Ha keretek nlkl szeretnd megtekinteni a statisztikkat, indulj el a bngsz oldaltl. O0002 = Dokumentum eleje O0003 = Ez a jelents %0kor kszlt. O0004 = A jelents a %0 - %1 kztti idszakra vonatkozik. O0005 = A statisztikai jelentst ksztette: O0006 = Nem megy a honlapod statisztikjnak az elksztse?
      rj neknk! # - Ez az "ALT" szveg a grafikonokon. Valami olyasmi, mint: # 'Napi sszegzs: Krsek szma napok szerint.' O0007 = %0: %1 %2 szerint. # - Ezt a formtumot hasznlja a O0003 s a O0004 a jelents ksztsi ideje, # illetve a jelents vonatkoz tartalma kijelzse szmra. O0008 = yyyy mmmm d h:nn óra # - Ez a tblzatszrk kijelzshez hasznlt szveg. O0009 = A kvetkez jelents elksztshez az albbi szrket hasznltuk. # - Ezek a keretek cmszvegei. O0010 = Bngsz oldal O0011 = A jelents tartalomjegyzke # - Ez a bngsz ablak cme. O0012 = Jelents bngszs # - Ez a neve a 3%-nl kisebb adattartomnynak a korong tpus grafikonokban. O0013 = Egyb # Ez az alaprtelmezett cm, ha ms nincss megadva. # %0 helyett az Analognak megadott HOSTNAME paramter kerl. O0014 = %0 honlapjnak statisztiki #------------------------------- # Ez a rsz rja le az sszes kimeneti jegyzetet, figyelmeztetst s hibazenetet. # Akkor hasznos, ha a Report Magic hibazeneteit a jelentsektl # eltr nyelven akarod megkapni. #------------------------------- [Errors] N0000 = %0 N0001 = Jelentsfjl %0. N0002 = --> Belltsok: %0. N0003 = ... Kszl a %0 grafikon. N0004 = Kezddik a jelents kszts (%0). N0005 = --> Bemeneti adatok: %0. N0006 = --> Kimenet: %0. N0007 = --> Bngsz oldal: %0. N0008 = --> Jelents: %0. N0009 = --> Keretfjl: %0. N0010 = Ksz a jelents (%0). N0011 = rom a hibazeneteket a %0 logfjlba. W0000 = %0 W0001 = FIGYELMEZTETS: Ismeretlen jelents [%0]. Minden erre vonatkoz utasts figyelmen kvl hagyva. W0002 = FIGYELMEZTETS: Ismeretlen oszlop [%0]. Minden hasonl oszlop figyelmen kvl hagyva. W0003 = FIGYELMEZTETS: Ismeretlen jelents tpus "%0" a [%1] jelents esetben. A jelents figyelmen kvl hagyva. W0004 = FIGYELMEZTETS: Az aktv oszlop, %0, nincs a %1 jelents oszlopai kztt. Grafikon nem kszl ehhez a jelentshez. W0005 = FIGYELMEZTETS: Nem tallom a logt: %0. Alaprtelmezett grafikt hasznlok. W0006 = FIGYELMEZTETS: A paramter, %0, amit megadott, nem rvnyes, figyelmen kvl hagyva. W0007 = FIGYELMEZTETS: Nem tudom megnyitni a %0 Top_Logo fjlt. Helyette az alaprtelmezett szveget hasznlom. W0008 = FIGYELMEZTETS: A "%0" bellts ismeretlen. Figyelmen kvl lesz hagyva. E0000 = %0 E0001 = ERROR: -- Nem olvashat a jelents fjl: %0. -- E0002 = ERROR: -- Nem olvashat a bngsz fjl: %0. -- E0003 = ERROR: -- Nem rhat a jelents fjl: %0. -- E0004 = ERROR: -- Nem rhat a bngsz fjl: %0. -- E0005 = ERROR: -- Nem olvashat az adat fjl: %0 -- E0006 = ERROR: -- Nem rhat a keretfjl: %0 -- E0007 = ERROR: -- Nem rhat a bngsz fjl: %0 -- E0008 = ERROR: -- Nem rhat a jelents fjl: %0 -- E0009 = ERROR: -- Nem tudom megnyitni az alaprtelmezett belltsokat, %0.*. -- #E0010 ** Moved to warnings level: W0004 E0011 = ERROR: -- Hinyzik vagy srlt a %0 fjl. Nem tudom folytatni. -- E0012 = ERROR: -- Nem rhat a hiba-logfjl: %0 -- #E0013 ** Moved to warnings level: W0005 E0014 = ERROR: -- Nem tudom megnyitni a megadott %0 bellts-fjlt. -- E0015 = <Megjegyzs Annak fggvnyben, hogy milyen idszakra vonatkozik a jelents, az els s utols hnap valsznleg nem lesz teljes, emiatt a statisztikban ezekre az idszakokra valsznleg kisebb szmú krs vonatkozik! EOT [W_] LongName = Heti jelents DataName = A ht kezdete TimeFormat = yyyy mmmm d MostActive = Legmozgalmasabb ht Average = Heti tlag Description = <Megjegyzs Annak fggvnyben, hogy milyen idszakra vonatkozik a jelents, az els s utols ht valsznleg nem lesz teljes, emiatt a statisztikban ezekre az idszakokra valsznleg kisebb szmú krs vonatkozik! EOT [D_] LongName = Napi jelents DataName = Nap TimeFormat = yyyy mmmm d MostActive = Legmozgalmasabb nap Average = Napi tlag Description = <Pldul a Netscape Communicator 4.5, US English vltozat Windows 95 alatt valahogy gy fog kinzni:
        Mozilla/4.5 [en] (Win95; U)
      Microsoft Internet Explorer 4.01 Windows 98 alatt meg valahogy gy:
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] LongName = Bngszk (rvid) DataName = Bngsz tpusa MostActive = Leggyakrabban hasznlt Bngsz Description = < A csoportosts a kzismert kategrik szerint trtnik, mint pl. Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera s a tbbiek. Minden kategrin bell alcsoportok vannak, mint pl. 'MSIE 5.0' vagy 'Netscape 4.5'. EOT [v] LongName = Virtulis hostok DataName = Virtulis host neve MostActive = Leggyakoribb virtulis host Description = <HTTP Working Group. EOT [Z_] LongName = Szervezetek DataName = Szervezet MostActive = Leggyakoribb szervezetek Description = <Megjegyzs: ha túl nagynak, mintegy szzszorosan tbbnek tûnik az id a vrhat rtknl, megtrtnhetik, hogy a WEBszervered a Microsoft IIS valamelyik vltozatn fut, amely az idt szzadmsodpercekben, nem msodpercekben mri, mint egy tlagos WEBszerver... EOT [N_] LongName = Keressek DataName = Keresett kifelyezs MostActive = Leggyakrabban keresett kifelyezs Description = <Megjegyzs: Valsznleg az els s utols v adatai nem teljesek, ezrt ezek kevesebb adatot tartalmaznak az tlagnl! EOT [Q_] LongName = Negyedvi jelents DataName = Negyedv MostActive = Legmozgalmasabb negyedv Average = Negyedvi tlag Description = <Megjegyzs: Valsznleg az els s utols negyedv adatai nem teljesek, ezrt ezek kevesebb adatot tartalmaznak az tlagnl! EOT [w] LongName = Órnknt (heti) DataName = Órk TimeFormat = wwww, h:00 - h:59 MostActive = A ht legmozgalmasabb rja Description = < tag hasznlatval). Alaprtelmezett 'XHTML 1.0'. [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 Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- Jelentsek -------------------------- # Ezek a belltsok rjk le a jelentsek tartalmt s formjt. Egyedi # jelentseket egyenknt lehet definilni a sajt rszlegkn (pl. [STATUS]) # BG_Color (opcionlis) a httrszn. # Background (opcionlis) a httr kp # Font (opcionlis) a kvnt bettpus neve # Font_Color (opcionlis) a szveg szne # Title_Font (opcionlis) a jelents cmnek bettpusa # Title_BG_Color (opcionlis) a jelents cmnek httrszne # Title_Font_Color (opcionlis) a cm szvegnek szne # Data_Font (opcionlis) az adatok szvegnek bettpusa # Data_BG_Color_1 (opcionlis) az els adatsor httrszne # Data_Font_Color_1 (opcionlis) az els adatsor szvegnek szne # (alaprtelmezsben Font_Color). # Data_BG_Color_2 (opcionlis) a msodik adatsor httrszne # Data_Font_Color_2 (opcionlis) a msodik adatsor szvegnek szne # (alaprtelmezsben Font_Color). # Data_Total_Font (opcionlis) az sszegz sor bettpusa # (alaprtelmezsben Data_Font). # Data_Total_Font_Color (opcionlis) az sszegz sor szvegnek szne # (alaprtelmezsben Data_Font_Color). # Data_Total_BG_Color (opcionlis) az sszegz sor httrszne # Data_Header_Font (opcionlis) a fejlc bettpusa # (alaprtelmezsben Data_Font). # Data_Header_Font_Color (opcionlis) a fejlc szvegnek szne # (alaprtelmezsben Data_Font_Color). # Data_Header_BG_Color (opcionlis) a fejlc httrszne # Active_Column megadja a grafikonokban hasznland oszlopok szmt s a # legaktvabb peridus vagy ms jellemz rtkt a "Quick Summary" # jelentsben. # Reverse_Time (opcionlis) ha 1, megfordtja az idrendi sorrendet # File_Out a kimeneti file vagy directory neve. Ha ez egy fjlnv, minden # jelents egyetlen fjlba kerl. Ha egy knyvtrnv, # minden jelents kln fjlba kerl. Ha meg a # '-', akkor a vgeredmny az STDOUT-ra kerl. # Meta_Refresh (opcionlis) a msodpercek szma, ami utn a szerver jra # elkldi az oldalt. # Ha 0 vagy nincs megadva, nem generldik META REFRESH tag. # Image_Dir (opcionlis) mint az Analog esetben, meg lehet adni a Report # Magicnak is, hol tallja a logkat. # Stylesheet (opcionlis) a CSS fjl, amit a Report Magic hasznl. # Graph_Level (opcionlis) a hierarchikus jelentsekben a jelents # mlysgt lltja be. Ez minden ms tpus jelentsben figyelmen # kvl lesz hagyva. # Show_Bytes_As (opcionlis) azt hatrozza meg, mennyire lesz leegyszerstve # a bitrtkek megjelentse a jelentsekben. Haszmlhat rtkek: # K, M, G, T, stb. Ha nincs rtk megadva, az rtk a legkzelebbi # egsz szmra lesznek leegyszestve. (Pl. 2940941107 gy fog megjelenni: # "2804 MB (2.739GB)") # * Minden szn HTML sznkd, vagy egy (#) karakter s egy 6 szmjegy hex # sznkd kell legyen. [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 Show_Bytes_As = M # ----------------------- ltalnos -------------------------- # Rows (opcionlis) megadja, melyik sorok szerepeljenek az # sszegzsben. Ha nincs megadva, minden sor szerepel. # Ha le akarod tiltani ezt a jelentst, hasznld a NONE kulcsszt. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- Gyors -------------------------- # Rows (opcionlis) megadja, melyik sorok szerepeljenek a Gyors sszegzsben. # Ha nincs megadva, nem generldik a jelents. # Az ALL kulcssz hatsra megjelenik minden lehetsges adat. [QUICK] Rows = m, W, D, H, B # ----------------------- Grafikonok -------------------------- # BG_Color (opcionlis) a grafikonok httrsznt adhatod meg. # alaprtelmezsben a jelents httrsznt hasznlja. # Font (opcionlis) megadhatod a hasznland bettpust. # meg kell adni a teljes elrsi tvonalat. Opcionlisan megadhatsz # 3 betmretet, vesszvel elvlasztva, amelyek a grafikon cmnek, # tengely- s adatcmkjnek a mrett adjk meg.. # Font_Color (opcionlis) a grafikon szvegnek szne. Alaprtelmezsben azonos a # jelents szvegnek sznvel. # Width (opcionlis) a grafikon mrett (szlessg) adja meg kppontokban. # Alaprtelmezsben 400 # Height (opcionlis) a grafikon mrett (magassg) adja meg kppontokban. # Alaprtelmezsben 300 # 3d (opcionlis) ha 1, 3d, ha 0 draws 2d grafikonok kszlnek. # Alaprtelmezsben 1. # Palette (opcionlis) az oszlopgrafikonokban hasznlatos sznek listja. # Lers a "docs/config.html" fjlban. # Cycle_Colors (opcionlis) ha 1, minden oszlop az oszlopdiagrammokban ms szn lesz # ha 0, minden oszlop az els sznt hasznlja a megadott listbl. # Alaprtelmezsben 1. # Shadows (opcionlis) ha 1, akkor az oszlopdiagrammokon rnykolt oszlopok lesznek, # ha , akkor nem. # Alaprtelmezsben 1. # Format (opcionlis) a grafikonok kimeneti formtuma. # vlaszthat rtkek PNG s JPEG. # Alaprtelmezs PNG. # Lsd a "docs/config.html" tartalmt, ha a kapcsol nem mkdik. # * Minden szn HTML sznkd, vagy egy (#) karakter s egy 6 szmjegy hex sznkd kell legyen. [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- Bngszs -------------------------- # a bngsz (navigcis) oldal belltsa s lersa. # File_Out (opcionlis) a navigcis oldal cme. Ha nincs megadva, # nem kszl keretrendszer (frameset). # BG_Color (opcionlis) a navigcis oldal httrszne. # Background (opcionlis) a httr-kp. # Font (opcionlis) a bettpus neve. # Font_Color (opcionlis) a szveg szne. # Bullet_Image (opcionlis) a "bullet image" neve. # Stylesheet (opcionlis) a Report Magic ltal hasznlt stluslap. # Top_Logo (opcionlis) annak az llomnynak a neve (a munkaknyvtrhoz # viszonytva) amely az oldal tetejn megjelen HTML kdrszletet # tartalmazza. Ha meg van adva, ez jelenik meg a "Report Navigation - # Jelents bngszs" szveg helyn. # * Minden szn HTML sznkd, vagy egy (#) karakter s egy 6 szmjegy hex sznkd kell legyen. [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css Top_Logo = logo.txt # ----------------------- Honlap -------------------------- # Ezek a belltsok nhny ltalnos informcit adnak a statisztikkhoz: # Title (opcionlis) a jelentsek s a keretrendszer (frameset) cme. # Ha nincs megadva, standard cmeket kapsz, mint pl. # "Website statistics for My Domain" a HOSTNAME rtkkel - ha az Analog tadta... # Base_URL (opcionlis) az oldalad cme (URL) amelynek a statisztiki elkszltek # Ha nincs megadva, helyette az Analog ltal tadott HOSTURL lesz felhasznlva # Webmaster (opcionlis) a Webmaster e-mail cme. # ha nincs e-mail cm megadva, az egsz hivatkoz mondat elmarad. # Company_Logo (opcionlis) a beszrand HTML kdot tartalmaz fjl neve. # Ez a jelents vgre kerl s letiltja az Analog s a Report Magic logit. [website] Title = My Website Statistics Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/lang/INDEX.txt0100644000175000010010000000044407642525574014233 0ustar kilroyNoneReport Magic has the following languages available: ca Catalan de German en US-English es Spanish fi Finnish fr French hu Hungarian it Italian ja Japanese no Norwegian pl Polish pt Portuguese pt-BR Portuguese (Brazilian) ru Russian sv Swedish zh Traditional Chinese (Big5) rmagic-2.21/lang/it/0040755000175000010010000000000007642616034013230 5ustar kilroyNonermagic-2.21/lang/it/cdata.ini0100644000175000010010000002153107642525574015014 0ustar kilroyNone# CDATA.INI # Report Magic - Descrizione delle colonne e delle righe nei rapporti # ------------------------------------------------------- # Ultimo aggiornamento: 25 agosto 2000, a cura di Jeremy Wadsack # Traduzione italiana di Massimo Mezzini - ultima revisione: 1 dicembre 2000 # (per errori, imprecisioni e suggerimenti: massimo@menouno.com) # # Questo file va usato con Report Magic 2.03 # Compatibile con Analog 4.13 # # --------------------------- # # COME PERSONALIZZARE E USARE cdata.ini # In ogni sezione possibile modificare le stringhe descrittive. # Quella che segue una lista dei parametri (chiavi) con il relativo significato. # # LongName # Questo campo specifica il nome descrittivo attribuito alle colonne in tutti # i rapporti, e alle righe nel Rapporto generale e nel Riepilogo sintetico. # # Type # Questo campo fornisce a Report Magic qualche indicazione sulla presentazione # del contenuto delle colonne. I tipi validi sono: # Data Presentazione sotto forma di tabella (default) # Filter Questo un tipo di filtro o comunque un criterio per l'ordinamento # delle informazioni (sul genere di FLOOR oppure SORT) ed scritto in puro testo. # I filtri sono gestiti con una serie di corrispondenze a regular expressions, # come descritto pi avanti per la colonna [f] # Index Questo tipo di colonna determina il numero di indice per una data riga, es: [N_] # Level Questo tipo di colonna assegna un livello in un rapporto gerarchico, es: [l] # # Unit # Units # Nelle righe (colonne) del Riepilogo generale, questi sono il singolare e il plurale per le unit # (se presenti) in cui sono espresse le informazioni. # # Activity # Nei rapporti temporali, c' una riga riassuntiva che indica l'elemento # con la maggiore attivit e la media del periodo considerato. # Questa informazione seguita dai dati sull'attivit per ciascuna colonna # del rapporto. Il parametro 'Activity' fornisce la stringa di testo # da utilizzare per descrivere il livello di attivit per una data colonna. # # NumberFormat # A tutte le colonne pu essere assegnato un formato numerico per la presentazione dei # dati. Se questo non viene specificato, il numero viene mostrato normalmente. Per i valori # percentuali, il formato '#.#%' corrisponde al numero seguito dal segno %. Per maggiori # dettagli, vedere nella documentazione il file docs/numfmt.html. # # Width # Questo dice al programma la larghezza in colonne di una determinata categoria. # Per esempio, la categoria [D_] prevede 5 colonne di dati, quindi la sua larghezza 5. # # TimeFormat # Questa voce utilizzata per assegnare un formato alla data o ai dati temporali nelle # colonne che li prevedono (esempio, [D_] and [d]). Vedere il file docs/datefmt.html # per informazioni pi dettagliate. # ------------------------------------------------------------------- # # Righe del Rapporto riepilogativo generale # [HN] LongName = Nome dell'host [HU] LongName = URL per l'host [PS] LongName = Ora di avvio del programma TimeFormat = d mmm yyyy, h:nn [FR] LongName = Orario della prima richiesta TimeFormat = d mmm yyyy, h:nn [LR] LongName = Orario dell'ultima richiesta TimeFormat = d mmm yyyy, h:nn # - Questa opzione non pi prevista, ma opportuno tenere queste stringhe # per ragioni di compatibilit all'indietro [L7] LongName = Gli 'ultimi sette giorni' partono da TimeFormat = d mmm yyyy, h:nn [E7] LongName = Gli 'ultimi sette giorni' terminano con TimeFormat = d mmm yyyy, h:nn [SR] LongName = Richieste soddisfatte dal server Units = richieste Unit = richiesta [S7] LongName = Richieste soddisfatte negli ultimi 7 giorni Units = richieste Unit = richiesta [PR] LongName = Richieste soddisfatte, per pagine Units = richieste di pagine Unit = richiesta di pagina [P7] LongName = Richieste soddisfatte, per pagine, negli ultimi 7 giorni Units = richieste di pagine Unit = richiesta di pagina [FL] LongName = Richieste fallite Units = richieste Unit = richiesta [F7] LongName = Richieste fallite negli ultimi 7 giorni Units = richieste Unit = richiesta [RR] LongName = Richieste reindirizzate Units = richieste Unit = richiesta [R7] LongName = Richieste reindirizzate negli ultimi 7 giorni Units = richieste Unit = richiesta [NC] LongName = Righe del file di log prive del codice di status Units = righe Unit = riga [C7] LongName = Righe del file di log prive del codice di status negli ultimi 7 giorni Units = Righe Unit = Riga [NF] LongName = File distinti richiesti Units = file Unit = file [N7] LongName = File distinti richiesti negli ultimi 7 giorni Units = file Unit = file [NH] LongName = Host distinti serviti Units = host Unit = host [H7] LongName = Host distinti serviti negli ultimi 7 giorni Units = host Unit = host [CL] LongName = Righe corrotte nel file di log Units = righe Unit = riga [UL] LongName = Righe del file di log escluse Units = righe Unit = riga [BT] LongName = Totale dati trasferiti Units = byte Unit = byte [B7] LongName = Totale dati trasferiti negli ultimi 7 giorni Units = byte Unit = byte [VE] LongName = Versione di Analog # # Lettere che identificano le colonne dei Rapporti Standard # [R_] LongName = Numero di richieste Activity = %0 richieste processate. [r] LongName = Percentuale delle richieste [P_] LongName = Numero di richieste per pagine Activity = %0 pagine inviate. [p] LongName = percentuale richieste pagine [B_] LongName = Numero di byte trasferiti Activity = %0 byte inviati. [b] LongName = Percentuale dei byte [D_] LongName = Data e ora dell'ultimo accesso TimeFormat = d mmm yyyy, h:nn [d] LongName = Data dell'ultimo accesso TimeFormat = d mmm yyyy [S_] LongName = Numero di richieste negli ultimi 7 giorni Activity = %0 richieste gestite negli ultimi 7 giorni. [s] LongName = Percentuale di richieste negli ultimi 7 giorni [Q_] LongName = Numero di richieste per pagine negli ultimi 7 giorni Activity = %0 pagine servite negli ultimi 7 giorni. [q] LongName = Percentuale di richieste per pagine negli ultimi 7 giorni [C_] LongName = Numero di bytes trasferiti negli ultimi 7 giorni Activity = %0 bytes trasmessi negli ultimi 7 giorni. [c] LongName = Percentuale di bytes trasmessi negli ultimi 7 giorni [E_] LongName = Data e ora del primo accesso TimeFormat = d mmm. yyyy, h:nn [e] LongName = Data del primo accesso TimeFormat = d mmm. yyyy # ------------------------------------------------------------ # Rispetto alle altre colonne, questi filtri utilizzano un set # di opzioni leggermente diverso. I filtri analizzano i dati # e producono un testo descrittivo. Per ogni filtro possibile # avere qualsiasi numero di colonne, indicate con l'opzione Width. # Ogni Colonna pu avere un numero indefinito di serie # di Matches, LongNames e Result: # # ColX_MatchX Le Regular Expressions (senza //) che dovranno corrispondere # ai dati da analizzare. # ColX_LongNameX Il testo sintetico della stringa di output per le corrispondenze # rilevate dai filtri. I segnaposto per le corrispondenze sono %1-%9. # ColX_ResultX_n Il testo sostitutivo (eventuale) per le variabili per le quali # stata rilevata una corrispondenza. Il formato : # corrispondenza[tab]testo di output. # In assenza di risultati, l'output sar la stessa variabile. # Se una riga dei risultati incomincia con il [tab] allora verr # usata quella, in mancanza di una specifica corrispondenza. # ------------------------------------------------------------ # # FLOOR and SORTBY (colonne 1 e 2) # [f] # # FLOOR # Col1_LongName1 = Questo rapporto mostra i primi %1 risultati in base a %2. Col1_Result1_2 = <. #------------------------------- [Language] Symbol = IT CharacterSet = iso8859-1 [Text] # -- Le voci del sommario da S0001 a S0008 sono state trasferite # nel file cdata.ini (1-4) o rdata.ini (5-8) # S0001 - S0009 **Deprecated** # # Queste sono varie comunicazioni che appaiono nei Rapporti. # O0001 = Per escludere la struttura a cornici, è possibile partire dalla pagina di navigazione. O0002 = Inizio del documento O0003 = Questo rapporto è stato creato %0. O0004 = Arco di tempo coperto dal rapporto: dal %0 al %1. O0005 = Rapporto statistico prodotto da: O0006 = Problemi con le statistiche del vostro sito? Contattateci. # - Queste sono le 'didascalie' aggiunte ai grafici con la stringa "ALT". # Il risultato è simile a # 'Riepilogo Giornaliero: Numero delle richieste per giorno della settimana.' O0007 = %0: %1 per %2. # - Questo è il formato utilizzato in O0003 e O0004 per la data di creazione del rapporto e # per i limiti iniziale e finale dell'arco di tempo coperto dal rapporto O0008 = d mmmm yyyy, h:nn # - Questo il testo descrittivo inserito nelle tabelle per presentare i filtri. O0009 = Questi filtri sono stati utilizzati nel rapporto che segue. # - Queste sono le descrizioni delle singole voci/sottopagine per la struttura a cornici O0010 = pagina di navigazione O0011 = contenuto del rapporto # - Questo il titolo (visibile) per la pagina di navigazione O0012 = Navigare
        lungo il rapporto # - Questa l'etichetta assegnata alla sezione dei grafici a torta che raccoglie i dati # che non raggiungono la soglia minima del 3% del totale O0013 = Altri # Questo il titolo generico che viene assegnato alla pagina nel caso non ne venga # specificato uno. %0 prende da Analog il contenuto di 'HOSTNAME' O0014 = Statistiche per il sito web %0 # #------------------------------- # La sezione ERRORS riunisce tutti i messaggi legati alla fase di output, gli avvertimenti # e i messaggi di errore. Volendo, possibile avere i messaggi di errore in una lingua # e i rapporti in una lingua diversa. #------------------------------- [Errors] N0001 = Sto creando il file del rapporto in %0. N0002 = --> File delle impostazioni: %0. N0003 = ... Sto creando il file grafico in %0. N0004 = Avvio la creazione del rapporto (%0). N0005 = --> File dati di input: %0. N0006 = --> Percorso di output: %0. N0007 = --> Output - file di navigazione: %0. N0008 = --> Output - file del rapporto: %0. N0009 = --> Output - file del frameset: %0. N0010 = Completata la creazione del rapporto (%0). N0011 = Sto registrando i messaggi sul file di log %0. W0001 = ATTENZIONE: Rapporto non riconosciuto [%0]. Tutte le righe relative a questo rapporto vengono ignorate. W0002 = ATTENZIONE: Colonna non riconosciuta [%0]. Tutte le colonne come questa vengono ignorate. W0003 = ATTENZIONE: Un tipo di rapporto "%0" non riconosciuto e` stato definito per il rapporto [%1]. L'intero rapporto viene ignorato. W0004 = ATTENZIONE: La Active_Column selezionata, %0, non e` stata trovata fra le colonne per il rapporto %1. Nessun grafico verra` creato per questo rapporto. W0005 = ATTENZIONE: Impossibile aprire il file Company_Logo: %0. Saranno usati i marchi standard. W0006 = ATTENZIONE: L'elemento aggiunto alla linea di comando, %0, non e` valido e sara` ignorato. W0007 = ATTENZIONE: Impossibile aprire il file Top_Logo: %0. Sar usato il testo standard. W0008 = ATTENZIONE: Il settaggio "%0" non riconosciuto e sar ignorato. E0000 = %0 E0001 = ERRORE: -- Non posso leggere dal file del rapporto: %0. -- E0002 = ERRORE: -- Non posso leggere dal file di navigazione: %0. -- E0003 = ERRORE: -- Non posso scrivere sul file del rapporto: %0. -- E0004 = ERRORE: -- Non posso scrivere sul file di navigazione: %0. -- E0005 = ERRORE: -- Non posso leggere dal file dati: %0 -- E0006 = ERRORE: -- Non posso scrivere sul file del frameset: %0 -- E0007 = ERRORE: -- Non posso scrivere sul file di navigazione: %0 -- E0008 = ERRORE: -- Non posso scrivere sul file del rapporto: %0 -- E0009 = ERRORE: -- Non e` stato possibile aprire un file delle impostazioni di default che corrispondesse a %0.*. -- #E0010 ** Spostato nella sezione degli avvertimenti: W0004 E0011 = ERRORE: -- Il file %0 e` indispensabile ma e` corrotto o assente. Non posso continuare. -- E0012 = ERRORE: -- Non posso aprire il file di log per gli errori: %0 -- # E0013 ** spostato fra gli avvertimenti: W0005 E0014 = ERRORE: -- Non posso aprire il file delle impostazioni specificato (%0). -- E0015 = <Nota: secondo l'arco di tempo preso in considerazione, il primo e l'ultimo mese potrebbero avere dati incompleti, registrando quindi un apparente minor numero di accessi. EOT [W_] LongName = Rapporto settimanale DataName = Settimana a partire da TimeFormat = d mmmm yyyy MostActive = Settimana di maggiore attività a partire da Average = Media settimanale Description = < Nota: secondo l'arco di tempo preso in considerazione, la prima e l'ultima settimana nel rapporto potrebbero non essere composte effettivamente da sette giorni, registrando quindi un apparente minor numero di accessi. EOT [D_] LongName = Rapporto giornaliero DataName = Giorno TimeFormat = d mmmm yyyy MostActive = Giorno di maggiore attività Average = Media giornaliera Description = <questo") e il browser dell'utente apre un secondo collegamento per avere il documento esatto. EOT [I_] LongName = Rapporto delle richieste fallite DataName = Nome del file MostActive = Richiesta fallita più frequente: Description = < Netscape Communicator 4.5, versione italiana, che gira su Windows 95, apparirà come:
        Mozilla/4.5 [it] (Win95; I)
      MS Internet Explorer 5 che gira su Windows 98 verrà registrato come:
        Mozilla/4.0 (compatible; MSIE 5; Windows 98). EOT [b] LongName = Riepilogo dei browser DataName = Browser MostActive = Browser più utilizzato: Description = <Nota: i browser sono distinti secondo categorie definite, come Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera e altre. All'interno di ogni categoria esistono dei sottogruppi, secondo il numero della versione del browser, come 'MSIE 5.0' o 'Netscape 4.5'. EOT [v] LongName = Rapporto per host virtuali DataName = Nome dell'host virtuale MostActive = Host virtuale più attivo: Description = <protetta del sito. La maggior parte degli accessi a pagine web è anonima, e quindi non apparirà in questa sezione. EOT [J_] LongName = Rapporto per utenti respinti DataName = Nome dell'utente MostActive = Utente respinto il maggior numero di volte: Description = <'200 OK' significa che la pagina o l'immagine richiesta è disponibile sul server e verrà immediatamente inviata. Il messaggio '404 Document Not Found' significa invece che la pagina o l'immagine richiesta non può essere localizzata sul server nella posizione indicata. Questo può accadere quando il visitatore ha sbagliato nel digitare l'URL, o è partito da un collegamento non più valido.
      Una lista completa dei codici di stato HTTP è disponibile sul sito dell'HTTP Working Group. EOT [Z_] LongName = Rapporto per organizzazione DataName = Organizzazione MostActive = Organizzazione maggiormente attiva: Description = < Nota: se i tempi di elaborazione appaiono circa cento volte troppo lunghi, è probabile che il vostro sito sia su un sistema IIS che registra ad intervalli di centesimi di secondo, e non di secondi. EOT [N_] LongName = Rapporto per stringhe di ricerca DataName = Stringhe di ricerca MostActive = Stringa di ricerca più utilizzata: Description = <Nota: È molto probabile che il primo e l'ultimo in una serie di anni siano 'leggeri', se i dati analizzati da Analog non coprono interi anni solari. EOT [Q_] LongName = Rapporto per quadrimestri DataName = quadrimestre MostActive = Trimestre di maggiore attività Average = Media trimestrale Description = <Nota: È molto probabile che il primo e l'ultimo in una serie di quadrimestri siano più 'leggeri' degli altri, se i dati analizzati non coprono l'intero periodo. EOT [w] LongName = Sommario settimanale degli orari di punta DataName = ora TimeFormat = wwww, h:00 - h:59 MostActive = Ora di maggiore attivita` nella settimana Description = < tags ripetute). # L'impostazione predefinita 'XHTML 1.0'. [statistics] File_In = report.dat Frame_File_Out = index.html Frame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = it # Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- RAPPORTI -------------------------- # Queste impostazioni si riferiscono ai dettagli grafici e alla localizzazione # sul disco della/e pagina/e HTML del rapporto. Ciascun rapporto pu essere definito # autonomamente, nella propria sezione, es. [STATUS]. # Active_Column indica quale colonna di dati deve essere utilizzata per la # creazione dei grafici e per determinare il periodo di maggiore # attivit o le voci del Riepilogo sintetico. # BG_Color (opzionale) il colore dello sfondo sulle pagine del rapporto. # Background (opzionale) un'immagine da utilizzare come sfondo. # Font (opzionale) indica il nome del carattere scelto per il testo. # Font_Color (opzionale) il colore scelto per il testo. # Title_BG_Color (opzionale) il colore dello sfondo per il titolo di ogni rapporto. # Title_Font_Color (opzionale) il colore scelto per i caratteri del titolo. # Title_Font (opzionale) il nome del carattere scelto per il titolo del rapporto. # Data_Font (opzionale) indica il nome del carattere scelto per i dati. # Data_BG_Color_1 (opzionale) il colore di sfondo per la prima riga di dati # nelle tabelle (i colori si alternano). # Data_Font_Color_1 (opzionale) il colore del testo per la prima riga di dati (il valore # preimpostato quello di Font_Color). # Data_BG_Color_2 (opzionale) il colore dello sfondo per la seconda riga di dati. # Data_Font_Color_2 (opzionale) il colore del testo per la seconda riga di dati (il valore # preimpostato quello di Font_Color). # Data_Total_Font (opzionale) il nome del carattere scelto per le righe dei totali # (preimpostato su Data_Font). # Data_Total_Font_Color (opzionale) indica il colore scelto per le righe dei totali # (preimpostato su Data_Font_Color). # Data_Total_BG_Color (opzionale) indica il colore di sfondo per le righe dei totali # Data_Header_Font (opzionale) indica il nome del carattere per le intestazioni # delle tabelle (preimpostato su Data_Font). # Data_Header_Font_Color (opzionale) indica il colore del testo nelle intestazioni # delle tabelle (preimpostato su Data_Font_Color). # Data_Header_BG_Color (opzionale) il colore di sfondo per le intestazioni delle tabelle. # File_Out indica il nome del file o la cartella di destinazione per la pagina # (o le pagine) del rapporto. Se viene indicato il nome di un file, # tutti i rapporti saranno concentrati in un documento unico. # Se si specifica invece il nome di una cartella, ogni sezione # del rapporto sar in un file a s. Infine, se viene inserito # qui il segno '-' verr inviato allo Standard Output un rapporto # in un unico file. # Meta_Refresh (opzionale) indica in secondi il tempo di validit della pagina, # trascorso il quale il browser dovr richiederne una versione # aggiornata al server. Il valore preimpostato equivale a 24 ore. # Se questo valore non specificato oppure 0, # la stringa META REFRESH non sar inserita nel file HTML. # Image_Dir (opzionale): come previsto per Analog, qui possibile indicare # la cartella nella quale trovare i file grafici dei marchi # da inserire a pie' di pagina. # Stylesheet (opzionale) individua un foglio di stile, per consentire a Report Magic # di utilizzare gli stili per la formattazione del testo # Graph_Level (opzionale): nei rapporti gerarchici, stabilisce # il livello che deve essere preso in considerazione # per la creazione dei grafici. L'opzione ignorata # per i rapporti di tipo diverso. # Show_Bytes_As (opzionale) determina fino a che punto i valori in byte saranno # semplificati nei rapporti. Le opzioni valide sono # K, M, G, T, etc. Se nessun valore fornito, i byte # saranno ridotti al pi piccolo numero intero. # Nota: tutti i colori possono essere espressi con uno dei nomi previsti dallo standard HTML # o con il simbolo # seguito dal codice colore esadecimale. I colori preimpostati # per lo sfondo e per il testo generale sono rispettivamente il bianco (#FFFFFF) # e il nero (#000000). [reports] BG_Color = #FFFFFF Background = immagini/sfondo.jpg Font = Arial, Helvetica Font_Color = #000000 Title_BG_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../immagini/ Stylesheet = styles.css Graph_Level = 1 Show_Bytes_As = # ----------------------- GENERALE -------------------------- # Rows (opzionale) specifica quali righe inserire nel Riepilogo generale. # Se questa voce viene omessa, tutte le righe saranno inserite. # Per disabilitare il Riepilogo generale, impostare l'opzione su NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- SINTETICO -------------------------- # Rows (opzionale) specifica quali righe inserire nel Riepilogo sintetico. # Se questa voce viene omessa, non sar creato il Riepilogo sintetico. # possibile impostare ALL per mostrare tutte le righe disponibili. [QUICK] Rows = m, W, D, H, B # ----------------------- GRAFICI -------------------------- # BG_Color (opzionale) permette di specificare un colore da usare per # lo sfondo dei grafici. Se nessun colore viene specificato, # sar utilizzato il colore dello sfondo delle pagine del rapporto. # Font (opzionale) permette di indicare un carattere TrueType da utilizzare # per le didascalie dei grafici. necessario indicare il percorso # completo per il file che corrisponde al carattere scelto. Volendo, si pu # anche impostare tre valori (separati da una virgola) per indicare - in # punti tipografici - nell'ordine: le dimensioni del carattere # per il titolo dei grafici, per la legenda degli assi # e per le etichette dei dati. # Font_Color (opzionale) il colore del testo nei grafici. preimpostato sul colore # del testo nella pagina. # Reverse_Time (opzionale): se impostato su 1, inverte l'ordine dei dati/tempo nei grafici. # Utilizzabile nel caso in cui il file di log del server presenti i dati partendo # dai pi recenti e procedendo a ritroso. # Width (opzionale) imposta la larghezza desiderata (in pixel) per i grafici; # preimpostata su 400. # Height (opzionale) imposta l'altezza desiderata (in pixel) per i grafici; # preimpostata su 300. # 3d (opzionale) impostata su 1, produrr grafici tridimensionali, su 0 invece grafici a due # dimensioni; (preimpostata su 1). # Data_Colors (opzionale) elenca i nomi dei colori da utilizzare per i grafici a barre. # Per una lista di nomi validi, vedere il file docs/config.html. # Cycle_Colors (opzionale) impostata su 1, far s che ogni barra nei grafici a barre # sia di colore diverso, in base alla lista indicata in Data_Colors. Impostata su 0, # produrr barre di un unico colore, il primo della lista (preimpostata su 1). # Shadows (opzionale) impostata su 1, creer l'effetto-ombra dietro alle barre, # nei grafici a barre. Su 0, nessun effetto-ombra (preimpostata su 1). # Format (opzionale) permette di scegliere il formato per i grafici. I formati validi # sono PNG e JPEG. Quello preselezionato PNG perch produce file meno pesanti. # opportuno leggere la pagina docs/config.html per capire per quali ragioni # questa opzione potrebbe non funzionare con la vostra versione di Report Magic. # * Tutti i colori possono essere espressi con il nome HTML o col simbolo # seguito # dalle sei cifre del codice colori esadecimale. [graphs] BG_Color = #FFFFCC Font = C:\Windows\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Data_Colors = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGAZIONE -------------------------- # Queste impostazioni si riferiscono all'aspetto e alla localizzazione # della pagina di navigazione. # File_Out (opzionale) indica il nome del file che contiene il men di navigazione. # Se nessuna istruzione viene specificata, non verr creata la struttura a cornici. # BG_Color (opzionale) il colore dello sfondo per la pagina di navigazione. # Background (opzionale) un'immagine da usare come sfondo per la pagina di navigazione. # Font (opzionale) il nome del carattere scelto per il men di navigazione. # Font_Color (opzionale) il colore scelto per il testo del men di navigazione. # Bullet_Image (opzionale) indica la posizione sul disco del pallino decorativo # utilizzabile nel men di navigazione. # Stylesheet (opzionale) individua un foglio di stile, per consentire a Report Magic # di utilizzare gli stili per la formattazione del testo # Top_Logo (opzionale) indica il nome di un file (il percorso relativo rispetto alla # directory di lavoro) che contiene uno spezzone di HTML da inserire in testa # alla pagina. Se questo e` fornito, sostituisce il testo # "Navigare lungo il rapporto". # * Tutti i colori possono essere espressi con il nome HTML o col simbolo # seguito # dalle sei cifre del codice colori esadecimale. [navigation] File_Out = nav.html BG_Color = #FFFFFF Background = immagini/sfondo.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = immagini/bullet.gif Stylesheet = styles.css Top_Logo = testata.txt # ----------------------- SITO WEB -------------------------- # Queste impostazioni forniscono semplicemente alcune informazioni e collegamenti # da utilizzare nelle pagine dei rapporti statistici. # Title (opzionale) indica il titolo che appare in apertura del rapporto # (oltre che sulla barra superiore del browser) e nella pagina-contenitore # della struttura a cornici. Se non viene specificato, Report Magic # utilizzer una formula generica del tipo "Statistiche per il sito web..." # utilizzando l'indicazione dell'host fornita da Analog, se presente. # Base_URL (opzionale) l'URL del sito al quale le statistiche si riferiscono. # Se non viene specificato, Report Magic utilizzer l'URL eventualmente # indicato da Analog, se presente. # Webmaster (opzionale) l'indirizzo e-mail del gestore del sito, o comunque di qualcuno # al quale il visitatore possa chiedere informazioni sulle statistiche di accesso. # Se nessun indirizzo viene inserito, l'opzione sparir dal rapporto. # Company_Logo (opzionale) indica il nome di un file di testo (localizzato con un percorso # relativo, rispetto alla cartella di lavoro di Report Magic) che contiene # uno spezzone di HTML da inserire nel rapporto, per aggiungere in fondo # alla pagina uno o pi marchi scelti dall'utente al posto di quelli predefiniti # (Analog e Report Magic). [website] Title = Rapporto statistico per il sito..... Webmaster = webmaster@miodominio.it Base_URL = http://www.miodominio.it Company_Logo = marchi.txt rmagic-2.21/lang/ja/0040755000175000010010000000000007642616034013206 5ustar kilroyNonermagic-2.21/lang/ja/cdata.ini0100644000175000010010000002152307642525574014773 0ustar kilroyNone# ------------------------------------------------------------------- # cdata.ini # # ݡȤԤ # ǽ: 2000 August 25 By: JW # Analog 4.11ReportMagic2.0ǻѤǤޤ # # ------------------------------------------------------------------- # # ˡȥޥˡ # # ƹܤ¾Ѥ˥ޥ뤳ȤǤޤ # ˡѥ᡼ʥˤΰȤΰ̣򵭽Ҥޤ # # LongName # Υեɤǡ٤ƤΥݡȤˤ󥿥ȥ # ΤγץݡȎ®ݡȤˤԥȥꤷޤ # # Type # ΥեɤǡɽƤ˴ؤԤȤǤޤ # ǤΤϡΤȤǤ: # Data ơ֥ɽ (ǥե) # Filter ե륿䥽ȤξͿޤ(FLOOR SORT ) # ե륿򤫤ϡɽ˥ޥåΤޤ # ϡˤ[f]ꤷޤ # Index ֹꤷޤ 򤹤ȡԤ˺ֹꤷޤe.g. [N_] # Level طݡȤˤ٥ꤷޤ e.g. [l] # # Unit # Units # ΥեɤǡΤγץݡȾΡ򤵤줿Ԥñ̤ꤷޤ # # Activity # ѥݡȤǤϡ׹ԤΥ⡼ͤʿͤɽ뤳ȤǤޤ # ϡݡΥǡѤƺޤ # 'Activity'ѥ᡼Ǥϡ׹ԤǻѤʸϤꤹ뤳ȤǤޤ # # NumberFormat # ٤ƤˤϡͥեޥåȤͿ뤳ȤǤޤꤷʤС̤ͤɽޤ # 㤨СѡȤɽ뤿ˤϡ'#.#%'ȤեޥåȤͿ뤳Ȥǡ # ͤȤȤˡ饤줿ѡȵɽ뤳Ȥˤʤޤ # ʤեޥåȤ˴ؤܤܺ٤ϡdocs/numfmt.html򸫤Ƥ # # Width # Υեɤǡꤷޤ # 㤨, [D_]ǤϡWidth5ꤵƤΤǡ5ʬäƤޤ # # TimeFormat # Υեɤǡդ֤ΥեޥåȤꤷޤ(. [D_] and [d]) # ܺ٤ϡdocs/datefmt.html򻲾ȤƤ # ------------------------------------------------------------------- # # General Summary Report Lines # [HN] LongName = ۥ̾ [HU] LongName = ۥURL [PS] LongName = ץ೫ϻ TimeFormat = mmm d, yyyy h:nn [FR] LongName = ֺǽΥꥯȼ TimeFormat = mmm d, yyyy h:nn [LR] LongName = ֺǸΥꥯȼ TimeFormat = mmm d, yyyy h:nn # - This has been deprecated but should remain for backwards compatibility [L7] LongName = Ƕ᣷֤ζڤȤʤ볫ϻ TimeFormat = mmm d, yyyy h:nn [E7] LongName = Ƕ᣷֤ζڤȤʤ뽪λ TimeFormat = mmm d, yyyy h:nn [SR] LongName = ꥯȷ Units = ꥯ Unit = ꥯ [S7] LongName = ǶΣ֤ꥯȷ Units = ꥯ Unit = ꥯ [PR] LongName = ۡڡؤꥯȷ Units = ڡΥꥯ Unit = ڡΥꥯ [P7] LongName = Ƕ᣷֤Ρۡڡؤꥯȷ Units = ڡΥꥯ Unit = ڡΥꥯ [FL] LongName = ꥯȥ顼 Units = ꥯ Unit = ꥯ [F7] LongName = Ƕ᣷֤Ρꥯȥ顼 Units = ꥯ Unit = ꥯ [RR] LongName = 쥯Ȥ줿ꥯȷ Units = ꥯ Unit = ꥯ [R7] LongName = Ƕ᣷֤Ρ쥯Ȥ줿ꥯȷ Units = ꥯ Unit = ꥯ [NC] LongName = ֥ɤΤʤեιԿ Units = Unit = [C7] LongName = Ƕ᣷֤Ρ֥ɤΤʤեιԿ Units = Unit = [NF] LongName = ۤʤեؤΥꥯȷ Units = ե Unit = ե [N7] LongName = Ƕ᣷֤ΡۤʤեؤΥꥯȷ Units = ե Unit = ե [NH] LongName = ۤʤۥȤΥꥯȷ Units = ۥ Unit = ۥ [H7] LongName = ǶΣ֤ΡۤʤۥȤΥꥯȷ Units = ۥ Unit = ۥ [CL] LongName = 줿եιԿ Units = Unit = [UL] LongName = ̣ʥեι Units = Unit = [BT] LongName = žǡ Units = Х Unit = Х Format = bytes [B7] LongName = Ƕ᣷֤Ρžǡ Units = Х Unit = Х Format = bytes [VE] LongName = AnalogΥС # # Standard Reports Column Letters # [R_] LongName = ꥯȿ Type = Data Activity = %0 ꥯȽ NumberFormat = # [r] LongName = ꥯȿ Type = Data NumberFormat = #.#% [S_] LongName = Ƕ᣷֤Υꥯȿ Type = Data Activity = Ƕ᣷֤ǡ%0 ꥯȽ NumberFormat = # [s] LongName = Ƕ᣷֤ꥯȿ Type = Data NumberFormat = #.#% [P_] LongName = ڡؤΥꥯȿ Type = Data Activity = %0 ڡ NumberFormat = # [p] LongName = ڡؤΥꥯ Type = Data NumberFormat = #.#% [Q_] LongName = Ƕ᣷֤ΥڡؤΥꥯȿ Type = Data Activity = Ƕ᣷֤ǡ%0 ڡ NumberFormat = # [q] LongName = Ƕ᣷֤ΥڡؤΥꥯ Type = Data NumberFormat = #.#% [B_] LongName = ̿Хȿ Type = Data Activity = %0 Х Format = bytes [b] LongName = Хȿ Type = Data NumberFormat = #.#% [C_] LongName = Ƕ᣷֤̿Хȿ Type = Data Activity = Ƕ᣷֤ǡ%0 Х [c] LongName = Ƕ᣷֤Хȿ Type = Data NumberFormat = #.#% [D_] LongName = ǽ Type = Data Width = 5 TimeFormat = mmm. d, yyyy h:nn [d] LongName = ǽ Type = Data Width = 3 TimeFormat = mmm. d, yyyy [E_] LongName = 󥢥 Type = Data Width = 5 TimeFormat = mmm. d, yyyy h:nn [e] LongName = 󥢥 Type = Data Width = 3 TimeFormat = mmm. d, yyyy [N_] Type = Index [l] Type = Level # ------------------------------------------------------------ # ե륿ϡ¾Ȥ̯˻ˡۤʤޤ # ե륿ϡǡùϤޤ # ɤΥե륿Ǥ⡢Widthꤹ뤳Ȥꤹ뤳ȤǽǤ # ɤǤ⡢MatchesLongNamesResultꤹ뤳ȤǤޤ: # # ColX_MatchX ե륿򤫤ǡФɽꤷޤ(//Բ) # ColX_LongNameX ɽŬ礷ˡϤʸϤǤ # ɽηʸ %1-%9ˤƤϤƤޤ # ColX_ResultX_n ɽηʸ֤뤿ʸꤷޤ # 񼰤ϡ"ʸ[]֤ʸ"Τ褦ˤޤ # ⤷⡢ʸ֤ʤˤϡɽηʸΤޤ޽Ϥޤ # ⤷⡢[]ϤޤäƤΤСthat will be used when no match is made in the set. # ------------------------------------------------------------ # # FLOOR and SORTBY (cols 1 and 2) # [f] Type = Filter # Need this to keep the CRO splitter happy Width = 2 # # FLOOR # Col1_Match1 = ^\-(\d+)([RBPrbp]) Col1_LongName1 = ΥݡȤϡ%2 %1 ̰η̤ɽƤޤ Col1_Result1_2 = <{gdta_x_axis}->set_align('center', 'right'); with $self->{gdta_x_axis}->set_align('center', 'left'); (b) when using 2d graphics around 1134th line of GDGraph-1.xx/Graph/axestype3d.pm replace $self->{gdta_x_axis}->set_align('center', 'right'); with $self->{gdta_x_axis}->set_align('center', 'left'); (1) Install zlib $ ./configure $ make # make install (as root) (2) Install libpng $ mv zlib* zlib $ mv libpng* libpng $ cd libpng $ cp scripts/makefile.linux Makefile $ make # make install (as root) (3) Install freetype (N.B.) Only in the case of freetype2.x.x, change the source before performing ./configure as follows In ./include/freetype/config/ftoption.h, replace #undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER with #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER $ ./configure $ make # make install (as root) (4) Install jpeg-6b $ ./configure --enable-shared $ make $ make test # make install (as root) (5) Install gd Edit Makefile [In the case of gd1.8.3] The following changes, (a) and (b), has to be made and add (c) in INCLUDEDIRS (a) CFLAGS = -O -DHAVE_LIBXPM -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBTTF -DJISX0208 (b) LIBS = -lgd -lpng -lz -ljpeg -lttf -lm (c) -I/usr/local/include/freetype [In the case of gd1.8.4] The following changes, (a) and (b), has to be made and add (c) in INCLUDEDIRS (a) CFLAGS = -O -DHAVE_LIBXPM -DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE -DJISX0208 (b) LIBS = -lgd -lpng -lz -ljpeg -lfreetype -lm (c) -I/usr/local/include/freetype2/freetype/config -I/usr/local/include/freetype2/ $ make # make install (as root) (6) Install PerlModule After extracting files from a binary of Report Magic, the following command is supposed to install necessary PerlModule. $perl Install.PL However it occasionary fails because of existing environments and so the instructions for manual installment is given as follows. (a) Install GD (both for GD-1.33 and GD-1.41 are the same) $ cd GD-1.XX $ perl Makefile.PL $ make $ make test (optional) $ make html (optional) $ make install (b) Install GDText $ cd GDTextUtil-0.XX $ perl Makefile.PL $ make $ make test $ make demo $ make install (c) Install GDGraph $ cd GDGraph-1.XX $ perl Makefile.PL $ make $ make install (d) Install GDGraph3d $ cd GDGraph3d-0.XX $ perl Makefile.PL $ make $ make install (e) Install Config::IniFiles $ cd Config-IniFiles-2.XX $ perl Makefile.PL $ make $ make install (f) Install HTML::Tagset $ cd HTML-Tagset-3.XX $ perl Makefile.PL $ make $ make install (g) Install HTML::Parser $ cd HTML-Parser-3.XX $ perl Makefile.PL $ make $ make install (h) Install File::Spec $ cd File-Spec-0.XX $ perl Makefile.PL $ make $ make install rmagic-2.21/lang/ja/lang.ini0100644000175000010010000001377007642525574014645 0ustar kilroyNone# ------------------------------------------------------------------- # lang.ini # # # ǽ: 2000 August 25 By: JW # Analog 4.11ReportMagic2.0ǻѤǤޤ # # ------------------------------------------------------------------- # # ˡȥޥˡ # # Υեˤϡ顼դ˴ؤåReportMagicǻѤ뤽¾ʸϤҤƤޤ # 򡢳Ƹ֤Ƥ # åʬϡ꥽ֹǻȤޤ # # ------------------------------------------------------------------- #------------------------------- # SymbolȤϡISOƤƸ줴ȤΥɤΤȤǤ # ϡƥڡƬˤˤƻѤޤ #------------------------------- [Language] Symbol = ja CharacterSet = EUC-JP [Text] # -- (S0001 - S0008)˴ؤƤϡcdata.ini(1-4)⤷rdata.ini(5-8)˰ưȤʤޤ #S0001 - S0009 **Deprecated** # # ݡȾɽ͡ʥåǤ # O0001 = ե졼ʤǥݡȤ򸫤ʤ顢ܼ ϤƤ O0002 = ʸƬ O0003 = ΥݡȤϡ%0 ˺. O0004 = оݴ %0 %1 ޤǡ O0005 = ץݡȺեȡ O0006 = פ꤬Ȥ Ϣ # - դɽݤΡ"ALT"°ǻѤޤʴˤʤޤ: # '̽: Υꥯȿ' O0007 = %0: %1 by %2. # - O0003ΥݡȺǻѤեեޥåȤǤ O0008 = mmmm d, yyyy h:nn # - ϡơ֥ǥե륿Ѥ줿Ȥ˻Ѥޤ O0009 = Υե륿ϰʲΥݡȤǻѤ줿 # - ե졼ǻѤ륿ȥǤ O0010 = ܼ O0011 = ݡȥڡ # - ܼ̤ˤɽޤ O0012 = ݡ
        ܼ # - ߥդǡΤ3̤Ȥʤǡ򡢰ɽݤΥȥȤʤޤ O0013 = Ĥ # ǥեȤΥȥ̾Ǥ %0AnalogΥۥ֤̾ޤ O0014 = %0 ֥Ȥ #------------------------------- # Υϡաٹ𡢥顼Τ٤ƤνϤ˴ؤꤷޤ # 顼åȥݡȤɽ̤ˤ뤳ȤǽǤ #------------------------------- [Errors] N0000 = %0 N0001 = %0 ˥ݡȥե档 N0002 = --> ե롧%0 N0003 = ... %0 ˲ե档 N0004 = ݡȺϤޤ (%0) N0005 = --> ϥǡե롧%0 N0006 = --> ϥѥ%0 N0007 = --> ܼե롧%0 N0008 = --> ϥݡȥե롧%0 N0009 = --> ϥե졼ե롧%0 N0010 = ݡȺλ (%0) N0011 = Ȥե %0 ˽񤭹档 W0000 = %0 W0001 = ٹ: [%0] ̤ΤΥݡȤǤ ΥݡȤκ̵뤵ޤ W0002 = ٹ: [%0] ̤ΤǤ 뤹٤Ƥ̵뤵ޤ W0003 = ٹ: [%1] ݡȤƤ롢"%0"ϡ̤ΤΥݡȷǤ ΥݡȤκ̵뤵ޤ W0004 = ٹ: %1 ݡȤǡ%0 ȯ뤳ȤǤޤ ΥݡȤǤϥդ뤳ȤǤޤ W0005 = ٹ: ꤵƤե򳫤ȤǤޤ: %0. ǥեȤΥեѤޤ W0006 = ٹ: ޥɥ饤̵Ǥ, %0, ̵ͤ뤵ޤ W0008 = ٹ: "%0" ǧ뤳ȤǤޤ ̵ͤ뤵ޤ E0000 = %0 E0001 = 顼: -- ݡȥեɤ߹ळȤǤޤ: %0. -- E0002 = 顼: -- ܼեɤ߹ळȤǤޤ: %0. -- E0003 = 顼: -- ݡȥե˽񤭹ळȤǤޤ: %0. -- E0004 = 顼: -- ܼե˽񤭹ळȤǤޤ: %0. -- E0005 = 顼: -- ǡեɤ߹ळȤǤޤ: %0 -- E0006 = 顼: -- ե졼ѥե˽񤭹ळȤǤޤ: %0 -- E0007 = 顼: -- ܼե˽񤭹ळȤǤޤ: %0 -- E0008 = 顼: -- ݡȥե˽񤭹ळȤǤޤ file: %0 -- E0009 = 顼: -- ǥեȤե򳫤ȤǤޤ, %0.*. -- #E0010 ** Moved to warnings level: W0004 E0011 = 顼: -- %0 ϡĤʤƤΤǡ³Ǥޤ -- E0012 = 顼: -- 顼ե򳫤ȤǤޤ: %0 -- #E0013 ** Moved to warnings level: W0005 E0014 = 顼: -- ʤꤷե򳫤ȤǤޤ %0, -- E0015 = <:ǽȺǸǯ˴ؤƤϡ 1ǯʬΤȤǡʤˡ¾٤ƥǡʤʤ뤳Ȥ¿Ǥ EOT [Q_] ShortName = QUARTERLY LongName = Ⱦ̥ݡ DataName = Ⱦ GraphType = Line TimeFormat = q yyyy ReportType = TimeReport MostActive = Ǥ⺮Ⱦ Average = Ⱦʿ Description = <:ǽȺǸλȾ˴ؤƤϡ ȾʬΤȤǡʤˡ¾٤ƥǡʤʤ뤳Ȥ¿Ǥ EOT [m] ShortName = MONTHLY LongName = ̥ݡ DataName = ReportType = TimeReport TimeFormat = mmmm yyyy GraphType = Line MostActive = Ǥ⺮ Average = ʿ Description = <:ǽȺǸη˴ؤƤϡ ηʬΤȤǡʤˡ¾٤ƥǡʤʤ뤳Ȥ¿Ǥ EOT [W_] ShortName = WEEKLY LongName = ̥ݡ DataName = Ƭ ReportType = TimeReport TimeFormat = mmmm d, yyyy GraphType = Line MostActive = Ǥ⺮콵 Average = ʿ Description = <:ǽȺǸν˴ؤƤϡ νʬΤȤǡʤˡ¾٤ƥǡʤʤ뤳Ȥ¿Ǥ EOT [D_] ShortName = DAILYREP ShortName = FULLDAILY LongName = ̥ݡ DataName = ReportType = TimeReport TimeFormat = mmmm d, yyyy GraphType = Line MostActive = Ǥ⺮ Average = ʿ Description = <: ⤷֤ˡ̾100٤δֳ֤ΤΤޤޤƤΤʤС IISѤƤ뤳Ȥ˵ޤ EOT [E_] ShortName = REDIR LongName = 쥯ȥݡ DataName = ե̾ ReportType = HierarchicalReport MostActive = Ǥ쥯Ȥ¿äꥯ Description = < Netscape Communicator 4.5ϡWindows95ưꥫѥС ǤϡΤ褦ˤʤޤ:
        Mozilla/4.5 [en] (Win95; U)
      ޤWindows98ưMSIE 4.01ϡΤ褦ˤʤޤ:
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] ShortName = BROWSERSUM LongName = ֥饦γ DataName = ֥饦μ ReportType = HierarchicalReport GraphType = Bar,Pie MostActive = ǤѤƤ֥饦μ Description = < ֥饦ϡNetscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera Τ褦ʷǥƥʬޤ ɤΥƥǤ⡢'MSIE 5.0''Netscape 4.5'ΥСˤäƤ˥ƥʬޤ EOT [p] ShortName = OSREP LongName = OSݡ DataName = OS ReportType = HierarchicalReport MostActive = ǤѤƤOSμ GraphType = Pie Description = <HTTP Working Group. EOT [q] ShortName = QUICK LongName = ® DataName = ® ReportType = QuickSummary Description = <ѡˤΤ줫ꤹ뤳ȤǽǤ # ǥեȤϡ'XHTML 1.0'Ǥ [statistics] File_In = report.dat Frame_File_Out = index.html Frame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = ja #Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- reports -------------------------- # ǤϡݡȤθɤ˴ؤԤޤ # ġΥݡȤȤˡ륻ˤԤȤǽǤ(. [STATUS]) # BG_Color (optional) # ݡȤطʿ # Background (optional) # ݡȤطʥ᡼ # Font (optional) # ե̾ # Font_Color (optional) # եȤο # Title_Font (optional) # ݡȥȥ˴ؤե̾ # Title_BG_Color (optional) # ݡȥȥ˴ؤطʿ # Title_Font_Color (optional) # ݡȥȥ˴ؤեȤο # Data_Font (optional) # ǡ˴ؤե̾ # Data_BG_Color_1 (optional) # ǡԤ˴ؤطʿ # Data_Font_Color_1 (optional) # ǡԤ˴ؤΥեȤο(ǥեͤϡFont_Color). # Data_BG_Color_2 (optional) # ǡԤ˴ؤ⤦طʿ # Data_Font_Color_2 (optional) # ǡԤ˴ؤ⤦ΥեȤο(ǥեͤϡFont_Color). # Data_Total_Font (optional) # ׹Ԥ˴ؤե̾(ǥեͤϡData_Font). # Data_Total_Font_Color (optional) # ׹Ԥ˴ؤեȤο(ǥեͤϡData_Font_Color) # Data_Total_BG_Color (optional) # ׹Ԥ˴ؤطʿ # Data_Header_Font (optional) # ơ֥إåԤ˴ؤե̾ (ǥեͤϡData_Font) # Data_Header_Font_Color (optional) # ơ֥إåԤ˴ؤեȤο (ǥեͤϡData_Font_Color) # Data_Header_BG_Color (optional) # ơ֥إåԤ˴ؤطʿ # Active_Column # պ˻Ѥ®ݡȤˤǤȯϰϤǤꤹꤷޤ # Reverse_Time (optional) # 1򥻥åȤȡַϥݡȤˤ뼴ȿž뤳ȤǤޤ # File_Out # ݡȤϤե⤷ϥǥ쥯ȥꤷޤ # եꤹȡ٤ƤΥݡȤꤵ줿ե˽񤭹ޤޤ # ǥ쥯ȥꤹȡƥݡȥե뤬ǥ쥯ȥ˽Ϥޤ # ⤷⡢'-'ꤷˤϡ٤STDOUT˽Ϥޤ # Meta_Refresh (optional) # ڡͭ¤ÿꤷޤ # 0ꤷ겿ꤷʤȡMETA REFRESHϤޤ # Image_Dir (optional) # AnalogΤ褦ˡReportMagicˤ롢 # ̺Dzɽ᡼եξꤹ뤳ȤǤޤ # Stylesheet (optional) # Ѥ륷Ȥꤷޤ # Graph_Level (optional) # إݡȤˤơդɽإ٥ꤷޤ # إݡȰʳǤϡ̵뤵ޤ #* ٤ƤοϡHTMLο̾⤷ϡ# 6Ĥ16ʿɤǻꤹ뤳ȤǽǤ [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R Reverse_Time = 1 File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 # ----------------------- GENERAL -------------------------- # Rows (optional) # ΤγץݡȤɽԤꤷޤ # ꤷʤȤ٤Ƥɽޤ # ɽʤˤϡNONEꤷƤ [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (optional) # ®ݡȤɽԤꤷޤ # ꤷʤȡ®ݡȤϺޤ # ٤ƤɽˤϡALLꤷƤ [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (optional) # ΰطʿꤷޤ # ꤷʤˤϡݡȥڡطʿѤޤ # Font (optional) # դǻѤTrueTypeեȤꤷޤ # եȤؤΥեѥꤷƤ # ץȤơ3ĤΥեȥ򥫥޶ڤꤹ뤳ȤǤޤ # 줾졢եȥ롢ȥ٥롢ǡ٥ΥեȥȤʤޤ # Font_Color (optional) # վʸ˴ؤ뿧ꤷޤ # ǥեȤϡݡȥڡΥեȤοǤ # Width (optional) # դꤷޤ(ԥñ) ǥեȤ400Ǥ # Height (optional) # դι⤵ꤷޤ(ԥñ) ǥեȤ300Ǥ # 3d (optional) # 1ꤹȡ3Dշɽޤ02DǤǥեȤ1Ǥ # Palette (optional) # դǻѤǤ뿧ΥꥹȤꤷޤ # Ǥ뿧ϡdocs/config.html򻲾ȤƤ # Cycle_Colors (optional) # 1򥻥åȤȡդǡ줽ˤưۤʤ뿧Ѥޤ # 0ꤹȤ٤ƱˤʤޤǥեȤ1Ǥ # Shadows (optional) # 1򥻥åȤ뤳Ȥǡվ˱ƤĤޤ # 0ꤹȱƤϤʤʤޤǥեȤ1Ǥ # Format (optional) # դνϥեޥåȤꤷޤ # PNGJPEGΤ줫Ǥޤ # ǥեȤǤϡPNGˤʤäƤޤȤΤե륵꾮Ǥ # ܤϡdocs/config.html򻲾ȤƤ # * ٤ƤοϡHTMLο̾⤷ϡ# 6Ĥ16ʿɤǻꤹ뤳ȤǽǤ [graphs] BG_Color = #FFFFCC Font = /usr/share/fonts/ja/TrueType/kochi-mincho.ttf,14,14,14 Font_Color = #000000 Width = 400 Height = 400 3d = 1 Palette = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGATION -------------------------- # Ǥϡܼθɤ˴ؤԤޤ # File_Out (optional) # ܼΥե̾ # ꤷʤȡե졼बޤ # BG_Color (optional) # ܼطʿ # Background (optional) # ܼطʥ᡼ # Font (optional) # Ѥե̾ # Font_Color (optional) # եȤο # Bullet_Image (optional) # ܼˤ륤᡼եؤΥ # Stylsheet (optional) # 륷 # * ٤ƤοϡHTMLο̾⤷ϡ# + 6Ĥ16ʿɤǻꤹ뤳ȤǽǤ [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css # ----------------------- WEBSITE -------------------------- # ǤϡݡȤΰŪԤޤ # Title (optional) # ٤ƤΥݡȤκǾƥե졼ΥȥȤɽ륿ȥꤷޤ # ꤷʤȡ"Website statistics for My Domain" Ѥ뤳Ȥˤʤޤ # κݤΡۥ̾ϡAnalog줿ΤѤޤ # Base_URL (optional) # ׾μȤʤäƤ륵ȤURLꤷޤ # ꤷʤȡAnalogǻѤ줿ۥȤURLѤޤ # Webmaster (optional) # ΥݡȤФ䤤碌뤿Υ᡼륢ɥ쥹ꤷޤ # ꤷʤȡȾ˲ɽޤ # Company_Logo (optional) # ݡȤɽHTMLեΰʤե̾ꤷޤ(Хѥ) # ݡȤκDzɽ졢¾Υϼޤ(Analog, Report Magic). [website] Title = ֥Ȥ Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/lang/no/0040755000175000010010000000000007642616034013230 5ustar kilroyNonermagic-2.21/lang/no/cdata.ini0100644000175000010010000002420407642525574015014 0ustar kilroyNone# ------------------------------------------------------------------- # cdata.ini # # Descriptions for columns and lines in reports # Last Updated: 2000 August 25 By: JW # For use with Report Magic for Analog 2.0 # Compatible with Analog 4.11 # # ------------------------------------------------------------------- # # HOW TO USE AND MODIFY # # In each section, you can change descriptive text for another # language. Below is a list of the parameters (keys) and what they mean. # # LongName # This field specifies the descriptive name given to columns in all reports # and rows in the General Report and Quick Summary. # # Type # This field tells Report Magic a little about how to present the column's # contents. Valid types are as follows: # Data Will be shown in a table (default) # Filter This is some kind of filter or sort information (like # FLOOR or SORT) and is written as plain text. Filter columns # are handled with a series of regular expression matches. This # is descibed below with the [f] column. # Index This type of column will set the Index number for the row. e.g. [N_] # Level This type of column gives a level in a hierarchical report. e.g. [l] # # Unit # Units # On General Summary columns (rows) this is the singular and plural for # the units (if any) for the given line. # # Activity # In Time Reports, there is a summary line that list the most active entry # and the average for the period. This is followed by activity data for each # column in the report. The 'Activity' parameter gives the text used to # describe the level of activity for that column. # # NumberFormat # All columns can now be given a number format for formatting. Without a format # the number is shown normally. For percentage values a format of '#.#%' will # display the number with a localized percent sign after the value. See # docs/numfmt.html for details on the format spec. # # Width # This tells the CRO parser how many columns wide the column specifier is. For # example, the [D_] column actually has 5 columns of data so its width is 5. # # TimeFormat # This is used to format the date or time data in columns that have that # data (e.g. [D_] and [d]). See docs/datefmt.html for details on the format spec. # ------------------------------------------------------------------- # # General Summary Report Lines # [HN] LongName = Webstedets navn [HU] LongName = Webstedets adresse [PS] LongName = Starttid for rapportgenerering TimeFormat = yyyy-mm-dd hh:nn [FR] LongName = Tidspunkt for første forespørsel TimeFormat = yyyy-mm-dd hh:nn [LR] LongName = Tidspunkt for siste forespørsel TimeFormat = yyyy-mm-dd hh:nn # - This has been deprecated but should remain for backwards compatibility [L7] LongName = Tidspunkt for starten av "Siste 7 dager" TimeFormat = yyyy-mm-dd hh:nn [E7] LongName = "Siste 7 dager" varer til TimeFormat = yyyy-mm-dd hh:nn [SR] LongName = Vellykkede forspørsler Units = Forespørsler Unit = Forespørsel [S7] LongName = Vellykkede forespørsler siste 7 dager Units = Forespørsler Unit = Forespørsel [PR] LongName = Vellykkede forespørsler etter sider Units = Forespørsler etter sider Unit = Forespørsel etter side [P7] LongName = Vellykkede forespørsler etter sider siste 7 dager Units = Forespørsler etter sider Unit = Forespørsel etter side [FL] LongName = Mislykkede forespørsler Units = Forespørsler Unit = Forespørsel [F7] LongName = Mislykkede forespørsler siste 7 dager Units = Forespørsler Unit = Forespørsel [RR] LongName = Omdirigerte forespørsler Units = Forespørsler Unit = Forespørsel [R7] LongName = Omdirigerte forespørsler siste 7 dager Units = Forespørsler Unit = Forespørsel [NC] LongName = Logglinjer uten statuskode Units = Linjer Unit = Linje [C7] LongName = Logglinjer uten statuskode siste 7 dager Units = Linjer Unit = Linje [NF] LongName = Forskjellige filer etterspurt Units = Filer Unit = Fil [N7] LongName = Forskjellige filer etterspurt siste 7 dager Units = Filer Unit = Fil [NH] LongName = Forskjellige maskiner betjent Units = Maskiner Unit = Maskin [H7] LongName = Forskjellige maskiner betjent siste 7 dager Units = Maskiner Unit = Maskin [CL] LongName = Korrupte logglinjer Units = Linjer Unit = Linje [UL] LongName = Uønskede logglinjer Units = Linjer Unit = Linje [BT] LongName = Total datamengde overført Units = Bytes Unit = Byte Format = bytes [B7] LongName = Total datamengde overført siste 7 dager Units = Bytes Unit = Byte Format = bytes [VE] LongName = Versjon av Analog # # Standard Reports Column Letters # [R_] LongName = Antall forespørsler Type = Data Activity = %0 forespørsler håndtert NumberFormat = # [r] LongName = Prosent av forespørsler Type = Data NumberFormat = #.#% [S_] LongName = Antall forespørsler siste 7 dager Type = Data Activity = %0 forespørsler håndtert siste 7 dager NumberFormat = # [s] LongName = Prosent av forespørsler siste 7 dager Type = Data NumberFormat = #.#% [P_] LongName = Antall sideforespørsler Type = Data Activity = %0 sider sendt. NumberFormat = # [p] LongName = Prosent av sideforespørsler Type = Data NumberFormat = #.#% [Q_] LongName = Antall sideforespørsler siste 7 dager Type = Data Activity = %0 sider sendt siste 7 dager. NumberFormat = # [q] LongName = Prosent av sideforespørsler siste 7 dager Type = Data NumberFormat = #.#% [B_] LongName = Antall bytes overført Type = Data Activity = %0 sendt. Format = bytes [b] LongName = Prosent av bytes Type = Data NumberFormat = #.#% [C_] LongName = Antall bytes overført siste 7 dager Type = Data Activity = %0 sendt siste 7 dager. Format = bytes [c] LongName = Prosent av bytes overført siste 7 dager Type = Data NumberFormat = #.#% [D_] LongName = Dato og tid for siste aksessering Type = Data Width = 5 TimeFormat = yyyy-mm-dd hh:nn [d] LongName = Dato for siste aksessering Type = Data Width = 3 TimeFormat = yyyy-mm-dd hh:nn [E_] LongName = Dato og tid for første aksessering Type = Data Width = 5 TimeFormat = yyyy-mm-dd hh:nn [e] LongName = Dato for først aksessering Type = Data Width = 3 TimeFormat = yyyy-mm-dd hh:nn [N_] Type = Index [l] Type = Level # ------------------------------------------------------------ # These filters use a slightly different set of options than other columns. # Filters will parse their data value and output a text description. For # each filter you can have any number of Columns specified by Width. # Each Column can have any number of Matches, LongNames and Result sets: # # ColX_MatchX The Regular Expressions (without //) to match the contents # of the filter data. # ColX_LongNameX The basic text of the output string for the corresponding # filter match. Replacements from the matches are %1-%9 # ColX_ResultX_n The replacement text (if any) for the matched variables. The # format for this matchset[tab]output text. If no result set is # given, then the match variable is outputted as listed. If a # result line starts with the [tab] then that will be used when # no match is made in the set. # ------------------------------------------------------------ # # FLOOR and SORTBY (cols 1 and 2) # [f] Type = Filter # Need this to keep the CRO splitter happy Width = 2 # # FLOOR # Col1_Match1 = ^\-(\d+)([RBPrbp]) Col1_LongName1 = Denne rapporten viser de første %1 resultatene sortert etter %2. Col1_Result1_2 = < tag #------------------------------- [Language] Symbol = NO CharacterSet = iso-8859-1 [Text] # -- The summary text items (S0001 - S0008) have all been moved to cdata.ini (1-4) or rdata.ini (5-8) #S0001 - S0009 **Deprecated** # # These are miscellaneous statements that appear on the reports. # O0001 = For navigere gjennom rapportene uten rammer, start fra Navigeringssiden. O0002 = Toppen av dokumentet O0003 = Denne rapporten ble generert %0. O0004 = Rapporttidsomrde fra %0 til %1. O0005 = Webstatistikkrapport produsert av: O0006 = Problemer med nettstedets statistikker? Kontakt oss (p engelsk). # - This is the "ALT" text on graphs. It's something like: # 'Daily Summary: Number of requests by Day of the week.' O0007 = %0: %1 per %2. # - This is the format used by O0003 for the report generation date O0008 = yyyy-mm-dd hh:nn # - This is the alternate table text for filters tables O0009 = Disse filtrene ble brukt i den flgende rapporten. # - These are the title text (attributes) for the frames O0010 = Navigasjonsside O0011 = Rapporinnholdsside # - This is the (printed) title for the navigation window O0012 = Rapport
        Navigasjon # - This is the name given to the slice on a pie chart containing all # slices that are < 3% of total O0013 = Andre # This is the default Title if none is given. %0 is replaced with the HOSTNAME from Analog O0014 = Webstatistikk for %0 #------------------------------- # The ERRORS section specifically covers all the output notices, Warnings # and errors. If you want you can have Report Magic's errors output in # one langauge and the reports in another. #------------------------------- [Errors] N0000 = %0 N0001 = Lager rapportfil i %0. N0002 = --> Innstillinger-fil: %0. N0003 = ... Lager graf-fil i %0. N0004 = Begynner rapportgenerering (%0). N0005 = --> Inndatafil: %0. N0006 = --> Ut-filsti: %0. N0007 = --> Ut-navigasjonsfil: %0. N0008 = --> Ut-rapportfil: %0. N0009 = --> Ut-rammesettfil: %0. N0010 = Rapportgenerering ferdig (%0). N0011 = Skriver meldinger til loggfil %0. W0000 = %0 W0001 = ADVARSEL: Ukjent rapport [%0]. Alle linjer for denne rapporten blir ignorert. W0002 = ADVARSEL: Ukjent kolonne [%0]. Alle kolonner som denne blir ignorert. W0003 = ADVARSEL: Ukjent rapporttype "%0" definert for rapporten [%1]. Ignorerer hele rapporten. W0004 = ADVARSEL: Din Acive_Column %0, ble ikke funnet i kolonnene for %1-rapporten. Ingen grafer vil bli laget for denne rapporten. W0005 = ADVARSEL: Kan ikke pne Company_Logo-filen: %0. Bruker forvalgte logoer. W0006 = ADVARSEL: Kommandolinjeargumentet, %0, som du spesifiserte er ugyldig. Det vil bli ignorert. W0007 = ADVARSEL: Kan ikke pne Top_Logo-filen: %0. Bruker forvalgt tekst. W0008 = ADVARSEL: Innstillingen "%0" er ikke kjent. Den vil bli ignorert. E0000 = %0 E0001 = FEIL: -- Kan ikke lese fra rapportfilen: %0. -- E0002 = FEIL: -- Kan ikke lese fra navigasjonsfilen: %0. -- E0003 = FEIL: -- Kan ikke skrive til rapportfilen: %0. -- E0004 = FEIL: -- Kan ikke skrive til navigasjonsfilen: %0. -- E0005 = FEIL: -- Kan ikke lese fra datafilen: %0 -- E0006 = FEIL: -- Kan ikke skrive til rammesettfilen: %0 -- E0007 = FEIL: -- Kan ikke skrive til navigasjonsfilen: %0 -- E0008 = FEIL: -- Kan ikke skrive til rapportfilen: %0 -- E0009 = FEIL: -- Kunne ikke pne en forvalgt innstillingsfil som passer med, %0.*. -- #E0010 ** Moved to warnings level: W0004 E0011 = FEIL: -- Pkrevd fil %0 mangler eller er korrupt. Kan ikke fortsette. -- E0012 = FEIL: -- Kan ikke pne feil-loggfilen: %0 -- #E0013 ** Moved to warnings level: W0005 E0014 = FEIL: -- Kan ikke pne innstillingsfilen %0, som du spesifiserte. -- E0015 = <Merk: Sannsynligvis vil ikke første og siste år representere et helt år med data, og vil derfor ha færre treff. EOT [Q_] ShortName = QUARTERLY LongName = Kvartalsrapport DataName = Kvartal GraphType = Line TimeFormat = q yyyy ReportType = TimeReport MostActive = Mest aktive kvartal Average = Kvartalsgjennomsnitt Description = <Merk: Sannsynligvis vil ikke første og siste kvartal representere hele kvartal med data, og vil derfor ha færre treff. EOT [m] ShortName = MONTHLY LongName = Månedsrapport DataName = Måned ReportType = TimeReport TimeFormat = mmmm yyyy GraphType = Line MostActive = Mest aktive måned Average = Månedsgjennomsnitt Description = <Merk: Avhengig av rapportens tidsutvalg, kan det hende at første og/eller siste måned ikke representerer en hel måned med data, og vil derfor ha færre treff. EOT [W_] ShortName = WEEKLY LongName = Ukesrapport DataName = Uke begynner ReportType = TimeReport TimeFormat = mmmm d, yyyy GraphType = Line MostActive = Mest aktive uke begynner Average = Ukegjennomsnitt Description = <Merk: Avhengig av rapportens tidsutvalg, kan det hende at første og/eller siste uke ikke representerer en hel 7-dages uke med data, og vil derfor ha færre treff. EOT [D_] ShortName = DAILYREP ShortName = FULLDAILY LongName = Dagsrapport DataName = Dag ReportType = TimeReport TimeFormat = mmmm d, yyyy GraphType = Line MostActive = Mest aktive dag Average = Daglig gjennomsnitt Description = <Merk: Hvis behandlingstiden ser ut til å være ca. 100 ganger for lang, kjører du antagelig på et IIS-system som rapporterer i intervaller på et 100-dels sekund isteden for hvert sekund. EOT [E_] ShortName = REDIR LongName = Omdirigeringsrapport DataName = Filnavn ReportType = HierarchicalReport MostActive = Mest omdirigerte forespørsel Description = < Netscape Communicator 4.5, amerikansk versjon på Windows 95 vil se ut som:
      >  Mozilla/4.5 [en] (Win95; U)
      MSIE 4.01 på Windows 98 vil se ut som:
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] ShortName = BROWSERSUM LongName = Nettleseroppsummering DataName = Nettlesertype ReportType = HierarchicalReport GraphType = Bar,Pie MostActive = Mest aktive nettlesertype Description = < Nettlesere er delt opp i kategorier som Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera osv. Innenfor hver kategori er det også en underkategori per versjonsnummer som 'MSIE 5.0' eller 'Netscape 4.5'. EOT [p] ShortName = OSREP LongName = Operativsystemrapport DataName = Operativsystem ReportType = HierarchicalReport MostActive = Mest populære operativsystem GraphType = Pie Description = <HTTP Working Group. EOT [q] ShortName = QUICK LongName = Kort sammendrag DataName = Kortj sammendrag ReportType = QuickSummary Description = < tags). Default is 'XHTML 1.0'. [statistics] File_In = report.dat Frame_File_Out = index.html Frame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = no Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- reports -------------------------- # These settings describe the look and location of all the reports. Individual # reports can be defined separately in their own sections (e.g. [STATUS]) # BG_Color (optional) is the background color of the report page. # Background (optional) is an image for the page background # Font (optional) is the name of the desired typeface # Font_Color (optional) is the color of the output text. # Title_Font (optional) is the name of the desired typeface for the report title # Title_BG_Color (optional) is the background color of the report title. # Title_Font_Color (optional) is the color of the title text. # Data_Font (optional) is the name of the desired typeface for the data. # Data_BG_Color_1 (optional) is the background color of one set of data rows. # Data_Font_Color_1 (optional) is the color of the text for the data in one set of # rows (defaults to Font_Color). # Data_BG_Color_2 (optional) is the background color of the other set of data rows. # Data_Font_Color_2 (optional) is the color of the text for the data in the other # set of rows (defaults to Font_Color). # Data_Total_Font (optional) is the name of the desired typeface for the summary # data rows (defaults to Data_Font). # Data_Total_Font_Color (optional) is the name of the color for the text in the # summary data rows (defaults to Data_Font_Color). # Data_Total_BG_Color (optional) is the background color of the summary data rows # Data_Header_Font (optional) is the name of the desired typeface for the table # header rows (defaults to Data_Font). # Data_Header_Font_Color (optional) is the name of the color for the text in the # table header rows (defaults to Data_Font_Color). # Data_Header_BG_Color (optional) is the background color of data table headers. # Active_Column tells which column to use for graphs and determining the # most active period or item in the Quick Summary. # Reverse_Time (optional) if set to 1 will reverse the data sets for # time report graphs. Use this if your data runs newest to oldest. # File_Out is the file or directory for the report page(s). If this is # a filename then all reports are put in one file. If this is a # directory name, then each report will have its own file. If this # is the symbol '-' then a single file report will be sent to STDOUT. # Meta_Refresh (optional) is the number of Seconds until the page expires. # If this is 0 or not included, then no META REFRESH tag will be given. # Image_Dir (optional) like the Analog option can be set to tell Report # Magic where to find the logo images for the bottom of the page. # Stylesheet (optional) points to a stylesheet for Report Magic to use for styles. # Graph_Level (optional) sets the level in a hierarchy that is graphed for # hierarchical reports. This is ignored for all other reports. # Show_Bytes_As (optional) determines how much byte values are simplified # when shown in reports. Valid values are K, M, G, T, etc. If no value # is given, then bytes are fully reduced to the smallest whole number. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 Show_Bytes_As = M # ----------------------- GENERAL -------------------------- # Rows (optional) specifies which rows to include in the general # summary. If not included, then ALL rows are shown. To # disable the General Summary, use the keyword NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (optional) tells which rows to show for the Quick Summary. # If not included, then no Quick Summary is made. You # can use the keyword ALL to show all available rows. [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (optional) allows you to specify a color to be used for the # graphing area of the graph. If none is given this will use the # report page background color. # Font (optional) allows you to specify a TrueType Font to use for the # graphs. This should provide the full pathname to the font. You # may also, optionally, include 3 font point-sizes, separated by # commas specifying the size of the graph titles, axes labels and # data labels. # Font_Color (optional) is the color of the graph text. Defaults to the # report page text color. # Width (optional) gives the desired width (in pixels) of the graph. Default is 400 # Height (optional) gives the desired height (in pixels) of the graph. Default is 300 # 3d (optional) if set to 1, will draw 3d graphs, 0 draws 2d graphs. Default is 1. # Palette (optional) gives a list of color names to use for the bars in the # bar charts. For valid names, see the docs/config.html. # Cycle_Colors (optional) if set to 1, each bar in a series on the bar charts # will use a different color from the Data_Colors list. If set to 0, # all bars will use the first color. Default is 1. # Shadows (optional) if set to 1 will draw drop-shadows on the bars in the # bar charts. Set to 0 to disable the shadows. Default is 1. # Format (optional) give the desired ouput format for graph images. Valid # values are PNG and JPEG. Default is PNG because the files are # much smaller. See docs/config.html for why this may have no # effect on your version of Report Magic. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGATION -------------------------- # These settings describe the look and location of the navigation page. # File_Out (optional) is the name of the file for the navigation page. If # no value is given for this option, then no frameset will be built. # BG_Color (optional) is the background color of the navigation page. # Background (optional) is an image for the page background # Font (optional) is the name of the desired typeface # Font_Color (optional) is the color of the output text. # Bullet_Image (optional) is a vitual link to the navigation bullet image. # Stylesheet (optional) points to a stylesheet for Report Magic to use for # styles. # Top_Logo (optional) is the name of a file (relative to the working # directory) that contains a snippet of HTML to insert at the # top of the page. If this is provided it replaces the "Report # Navigation" text. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css Top_Logo = logofile.html # ----------------------- WEBSITE -------------------------- # These settings just provide some general information for the statistics # Title (optional) is the title that appears at the top of every report # file and the title for the frameset. If not given, this will # use standard text like "Website statistics for My Domain" with # the Host Name value if provided by Analog. # Base_URL (optional) is the URL of the site for which these statistics # were collected. If not given this will use the Host URL value # if provided by Analog # Webmaster (optional) is the email address to contact for questions on # the reports. If no value is given, the contact statement will # not be included. # Company_Logo (optional) is the name of a file (relative to the working # directory) that contains a snippet of HTML to insert into the # report. This appears at the bottom of the report and removes # the other logos (Analog, Report Magic). [website] Title = Mine webstatistikker Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/lang/pl/0040755000175000010010000000000007642616035013230 5ustar kilroyNonermagic-2.21/lang/pl/cdata.ini0100644000175000010010000002003407642525574015010 0ustar kilroyNone# ------------------------------------------------------------------- # cdata.ini # # Descriptions for columns and lines in reports # Last Updated: 2000 August 25 By: JW # For use with Report Magic for Analog 2.0 # Compatible with Analog 4.11 # # ------------------------------------------------------------------- # # HOW TO USE AND MODIFY # # In each section, you can change descriptive text for another # language. Below is a list of the parameters (keys) and what they mean. # # LongName # This field specifies the descriptive name given to columns in all reports # and rows in the General Report and Quick Summary. # # Type # This field tells Report Magic a little about how to present the column's # contents. Valid types are as follows: # Data Will be shown in a table (default) # Filter This is some kind of filter or sort information (like # FLOOR or SORT) and is written as plain text. Filter columns # are handled with a series of regular expression matches. This # is descibed below with the [f] column. # Index This type of column will set the Index number for the row. e.g. [N_] # Level This type of column gives a level in a hierarchical report. e.g. [l] # # Unit # Units # On General Summary columns (rows) this is the singular and plural for # the units (if any) for the given line. # # Activity # In Time Reports, there is a summary line that list the most active entry # and the average for the period. This is followed by activity data for each # column in the report. The 'Activity' parameter gives the text used to # describe the level of activity for that column. # # NumberFormat # All columns can now be given a number format for formatting. Without a format # the number is shown normally. For percentage values a format of '#.#%' will # display the number with a localized percent sign after the value. See # docs/numfmt.html for details on the format spec. # # Width # This tells the CRO parser how many columns wide the column specifier is. For # example, the [D_] column actually has 5 columns of data so its width is 5. # # TimeFormat # This is used to format the date or time data in columns that have that # data (e.g. [D_] and [d]). See docs/datefmt.html for details on the format spec. # ------------------------------------------------------------------- # # General Summary Report Lines # [HN] LongName = Nazwa hosta [HU] LongName = Adres hosta [PS] LongName = Data uruchomienia programu TimeFormat = d mmm yyyy, h:nn [FR] LongName = Data pierwszego zapytania TimeFormat = d mmm yyyy, h:nn [LR] LongName = Data ostatniego zapytania TimeFormat = d mmm yyyy, h:nn # - This has been deprecated but should remain for backwards compatibility [L7] LongName = Time last 7 days starts after TimeFormat = mmm d, yyyy h:nn [E7] LongName = Time last 7 days lasts until TimeFormat = mmm d, yyyy h:nn [SR] LongName = Ilo udanych zapyta Units = Zapyta Unit = Zapytanie [S7] LongName = Successful requests in last 7 days Units = Requests Unit = Request [PR] LongName = Successful requests for pages Units = Requests for pages Unit = Request for a page [P7] LongName = Successful requests for pages in last 7 days Units = Requests for pages Unit = Request for a page [FL] LongName = Ilo bdnych zapyta Units = Zapyta Unit = Zapytanie [F7] LongName = Failed requests in last 7 days Units = Requests Unit = Request [RR] LongName = Redirected requests Units = Requests Unit = Request [R7] LongName = Redirected requests in last 7 days Units = Requests Unit = Request [NC] LongName = Logfile lines without status code Units = Lines Unit = Line [C7] LongName = Logfile lines without status code in last 7 days Units = Lines Unit = Line [NF] LongName = Ilo danych plikw (rnych) Units = Plikw Unit = Plik [N7] LongName = Distinct files requested in last 7 days Units = Files Unit = File [NH] LongName = Ilo obsuonych komputerw (rnych) Units = Komputery Unit = Komputer [H7] LongName = Distinct hosts served in last 7 days Units = Hosts Unit = Host [CL] LongName = Corrupt lines in the logfile Units = Lines Unit = Line [UL] LongName = Unwanted lines in the logfile Units = Lines Unit = Line [BT] LongName = Cakowita ilo przesanych danych Units = Bajtw Unit = Bajt [B7] LongName = Total data transferred in last 7 days Units = Bytes Unit = Byte [VE] LongName = Version of Analog # # Standard Reports Column Letters # [R_] LongName = Ilo zapyta Type = Data Activity = %0 zapyta obsuonych. [r] LongName = Percentage of the requests Type = Data NumberFormat = #.#% [P_] LongName = Number of page requests Type = Data Activity = %0 pages sent. [p] LongName = Percentage of the page requests Type = Data NumberFormat = #.#% [B_] LongName = Number of bytes transferred Type = Data Activity = %0 bytes served. [b] LongName = Ilo bajtw procentowo Type = Data NumberFormat = #.#% [D_] LongName = Date and time of last access Type = Data Width = 5 TimeFormat = mmm d, yyyy h:nn [d] LongName = Date of last access Type = Data Width = 3 TimeFormat = mmm d, yyyy [N_] Type = Index [l] Type = Level # ------------------------------------------------------------ # These filters use a slightly different set of options than other columns. # Filters will parse their data value and output a text description. For # each filter you can have any number of Columns specified by Width. # Each Column can have any number of Matches, LongNames and Result sets: # # ColX_MatchX The Regular Expressions (without //) to match the contents # of the filter data. # ColX_LongNameX The basic text of the output string for the corresponding # filter match. Replacements from the matches are %1-%9 # ColX_ResultX_n The replacement text (if any) for the matched variables. The # format for this matchset[tab]output text. If no result set is # given, then the match variable is outputted as listed. If a # result line starts with the [tab] then that will be used when # no match is made in the set. # ------------------------------------------------------------ # # FLOOR and SORTBY (cols 1 and 2) # [f] Type = Filter Width = 2 # Need this to keep the CRO splitter happy # # FLOOR # Col1_Match1 = ^\-(\d+)([RBPrbp]) #Col1_LongName1 = This report shows the first %1 results by %2. Col1_LongName1 = Ten raport pokazuje pierwszych %1 rezultatw. Col1_Result1_2 = < tag #------------------------------- [Language] Symbol = EN CharacterSet = iso-8859-2 [Text] # -- The summary text items (S0001 - S0008) have all been moved to cdata.ini (1-4) or rdata.ini (5-8) #S0001 - S0009 **Deprecated** # # These are miscellaneous statements that appear on the reports. # O0001 = To navigate the reports without frames, start from the Navigation Page. O0002 = Top of Document O0003 = Raport zosta wygenerowany dnia %0. O0004 = Przedzia czasowy raportu: od %0 do %1. O0005 = Raport wygenerowany przez: O0006 = Problem with your site statistics? Contact us. # - This is the "ALT" text on graphs. It's something like: # 'Daily Summary: Number of requests by Day of the week.' O0007 = %0: %1 by %2. # - This is the format used by O0003 and O0004 for the report generation date and # the reporting period start and end times #O0008 = mmmm d, yyyy h:nn O0008 = d mmmm yyyy, h:nn # - This is the alternate table text for filters tables O0009 = These filters were used in the following report. # - These are the title text (attributes) for the frames O0010 = Navigation Page O0011 = Report Content Page # - This is the (printed) title for the navigation window #O0012 = Report
        Navigation O0012 = Wybr
        raportw # - This is the name given to the slice on a pie chart containing all # slices that are < 3% of total O0013 = Other # This is the default Title if none is given. %0 is replaced with the HOSTNAME from Analog O0014 = Website statistics for %0 #------------------------------- # The ERRORS section specifically covers all the output notices, Warnings # and errors. If you want you can have Report Magic's errors output in # one langauge and the reports in another. #------------------------------- [Errors] N0000 = %0 N0001 = Creating report file in %0. N0002 = --> Settings file: %0. N0003 = ... Creating graph file in %0. N0004 = Beginning report creation (%0). N0005 = --> Input data file: %0. N0006 = --> Output path: %0. N0007 = --> Output navigation file: %0. N0008 = --> Output report file: %0. N0009 = --> Output frameset file: %0. N0010 = Report creation complete (%0). N0011 = Writing messages to log file %0. W0000 = %0 W0001 = WARNING: Unknown report [%0]. All lines for this report are ignored. W0002 = WARNING: Unknown column [%0]. All columns like this are ignored. W0003 = WARNING: Unknown report type "%0" defined for report [%1]. Ignoring entire report. W0004 = WARNING: Your Active_Column, %0, was not found in the columns for the %1 report. No graphs will be created for this report. W0005 = WARNING: Can't open the Company_Logo file: %0. Defaulting to standard logos. W0006 = WARNING: The command line argument, %0, that you specified is invalid. It will be ignored. E0000 = %0 E0001 = ERROR: -- Can't read from the report file: %0. -- E0002 = ERROR: -- Can't read from the navigation file: %0. -- E0003 = ERROR: -- Can't write to the report file: %0. -- E0004 = ERROR: -- Can't write to the navigation file: %0. -- E0005 = ERROR: -- Can't read from the data file: %0 -- E0006 = ERROR: -- Can't write to the frameset file: %0 -- E0007 = ERROR: -- Can't write to the navigation file: %0 -- E0008 = ERROR: -- Can't write to the report file: %0 -- E0009 = ERROR: -- Could not open a default settings file matching, %0.*. -- #E0010 ** Moved to warnings level: W0004 E0011 = ERROR: -- Required file %0 is missing or corrupt. Cannot continue. -- E0012 = ERROR: -- Can't open the error log file: %0 -- #E0013 ** Moved to warnings level: W0005 E0014 = ERROR: -- Can't open the settings file %0, that you specified. -- E0015 = < Netscape Communicator 4.5, wersja angielska, dziaajca na Windows 95 wygldaaby mniej wicej tak:
        Mozilla/4.5 [en] (Win95; U)
      MSIE 4.01 dziaajcy na Windows 98 wygldaby mniej wicej tak:
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] ShortName = BROWSER LongName = Przegldarki - podsumowanie DataName = Typ przegldarki ReportType = HierarchicalReport GraphType = Bar,Pie MostActive = Najczciej uywany typ przegldarki Description = < Przegldarki s podzielone na rozpoznane kategorie takie jak Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera itd. W ramach kategorii instniej podkategorie grupujce przegldarki po numerach wersji, takie jak 'MSIE 5.0' czy 'Netscape 4.5'. EOT [v] ShortName = VHOST LongName = Hosty wirtualne DataName = Host wirtualny ReportType = Simple GraphType = Bar MostActive = Najczciej odwiedzane wirtualne hosty Description = <HTTP Working Group. EOT [Z_] ShortName = ORGANISATION LongName = Organizacje DataName = Organizacja ReportType = HierarchicalReport MostActive = Najaktywniejsza organizacja GraphType = Pie Description = < tag #------------------------------- [Language] Symbol = PT CharacterSet = iso8859-1 [Text] # -- The summary text items (S0001 - S0008) have all been moved to cdata.ini (1-4) or rdata.ini (5-8) #S0001 - S0009 **Deprecated** # # These are miscellaneous statements that appear on the reports. # O0001 = Para navegar nos relatórios sem frames, comece pela Página de Navegação. O0002 = Princípio do documento O0003 = Este relatório foi gerado em %0. O0004 = Período do relatório: de %0 a %1. O0005 = Relatório de estatísticas Web gerado por: O0006 = Problemas com as estatísticas do seu site? Contacte-nos. # - This is the "ALT" text on graphs. It's something like: # 'Daily Summary: Number of requests by Day of the week.' O0007 = %0: %1 por %2. # - This is the format used by O0003 and O0004 for the report generation date and # the reporting period start and end times O0008 = d-mmmm-yyyy h:nn # - This is the alternate table text for filters tables O0009 = Estes filtros foram utilizados nos seguintes relatórios. # - These are the title text (attributes) for the frames O0010 = Página de Navegação O0011 = Página de conteúdo do relatório # - This is the (printed) title for the navigation window O0012 = Indíce do
      Relatório # - This is the name given to the slice on a pie chart containing all # slices that are < 3% of total O0013 = Outros # This is the default Title if none is given. %0 is replaced with the HOSTNAME from Analog O0014 = Estatísticas do Website de %0 #------------------------------- # The ERRORS section specifically covers all the output notices, Warnings # and errors. If you want you can have Report Magic's errors output in # one langauge and the reports in another. #------------------------------- [Errors] N0000 = %0 N0001 = Creating report file in %0. N0002 = --> Settings file: %0. N0003 = ... Creating graph file in %0. N0004 = Beginning report creation (%0). N0005 = --> Input data file: %0. N0006 = --> Output path: %0. N0007 = --> Output navigation file: %0. N0008 = --> Output report file: %0. N0009 = --> Output frameset file: %0. N0010 = Report creation complete (%0). N0011 = Writing messages to log file %0. W0000 = %0 W0001 = WARNING: Unknown report [%0]. All lines for this report are ignored. W0002 = WARNING: Unknown column [%0]. All columns like this are ignored. W0003 = WARNING: Unknown report type "%0" defined for report [%1]. Ignoring entire report. W0004 = WARNING: Your Active_Column, %0, was not found in the columns for the %1 report. No graphs will be created for this report. W0005 = WARNING: Can't open the Company_Logo file: %0. Defaulting to standard logos. W0006 = WARNING: The command line argument, %0, that you specified is invalid. It will be ignored. E0000 = %0 E0001 = ERROR: -- Can't read from the report file: %0. -- E0002 = ERROR: -- Can't read from the navigation file: %0. -- E0003 = ERROR: -- Can't write to the report file: %0. -- E0004 = ERROR: -- Can't write to the navigation file: %0. -- E0005 = ERROR: -- Can't read from the data file: %0 -- E0006 = ERROR: -- Can't write to the frameset file: %0 -- E0007 = ERROR: -- Can't write to the navigation file: %0 -- E0008 = ERROR: -- Can't write to the report file: %0 -- E0009 = ERROR: -- Could not open a default settings file matching, %0.*. -- #E0010 ** Moved to warnings level: W0004 E0011 = ERROR: -- Required file %0 is missing or corrupt. Cannot continue. -- E0012 = ERROR: -- Can't open the error log file: %0 -- #E0013 ** Moved to warnings level: W0005 E0014 = ERROR: -- Can't open the settings file %0, that you specified. -- E0015 = <Note: Dependendo do período do relatório, o primeiro e o último trimestre podem não representar um trimestre completo, resultando daí menos acessos. EOT [w] ShortName = HORASEMANA LongName = Sumário de Horas da Semana DataName = Hora ReportType = TimeSummary TimeFormat = wwww, h:00 - h:59 GraphType = Line MostActive = Hora da semana mais activa # ** Need to see the data format, but probably want to do weekday hours and # weekend hours #Summary1 = [8-16],Work Hours (8:00am-4:59pm) #Summary2 = [0-7,17-23],After Hours (5:00pm-7:59am) Description = <Note: Dependendo do período do relatório, o primeiro e o último ano podem não representar um ano completo, resultando daí menos acessos. EOT [x] LongName = Resumo Geral DataName = Resumo geral Description = <Nota: Dependendo do período do relatório, o primeiro e o último mês podem não representar um mês completo, resultando daí menos acessos. EOT [W_] LongName = Relatório Semanal DataName = Início da semana TimeFormat = d mmmm yyyy MostActive = Início da semana mais activa Average = Média semanal Description = <Nota: Dependendo do período do relatório, a primeira e a última semana podem não representar uma semana completa, resultando daí menos acessos. EOT [D_] LongName = Relatório Diário DataName = Dia TimeFormat = d mmmm yyyy MostActive = Dia mais activo Average = Média Diária Description = < Netscape Communicator 4.5, versão US English executado em Windows 95 aparecerá como:
        Mozilla/4.5 [en] (Win95; U)
      MSIE 4.01 executado em Windows 98 aparecerá como:
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] LongName = Resumo de Rrowsers DataName = Tipo de browser MostActive = Tipo de browser mais activo Description = < Os browsers classificam-se por categorias reconhecidas como Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera e similares. Dentro de cada categoria existe também um subgrupo por número de versão como 'MSIE 5.0' ou 'Netscape 4.5'. EOT [v] LongName = Relatóio de Domínios Virtuais DataName = Nome do domínio virtual MostActive = Domínio virtual mais activo Description = <HTTP Working Group. EOT [Z_] LongName = Relatório de Organizações DataName = Organização MostActive = Organização mais activa Description = <Nota se o tempo de processamento parece ser 100 vezes maior do que o correcto, então é provável que o servidor seja um sistema IIS que informa o tempo em intervalos de centésimas de segundo em vez de segundos. EOT [N_] LongName = Relatório de Consultas de Pesquisa DataName = Consulta de pesquisa MostActive = Consulta de pesquisa mais comum Description = < tag #------------------------------- [Language] Symbol = PT CharacterSet = iso8859-1 [Text] # -- The summary text items (S0001 - S0008) have all been moved to cdata.ini (1-4) or rdata.ini (5-8) #S0001 - S0009 **Deprecated** # # These are miscellaneous statements that appear on the reports. # O0001 = Para navegar nos relatórios sem frames, comece pela Página de Navegação. O0002 = Princípio do documento O0003 = Este relatório foi gerado em %0. O0004 = Período do relatório: de %0 a %1. O0005 = Relatório de estatísticas Web gerado por: O0006 = Problemas com as estatísticas ? Contacte-nos. # - This is the "ALT" text on graphs. It's something like: # 'Daily Summary: Number of requests by Day of the week.' O0007 = %0: %1 por %2. # - This is the format used by O0003 and O0004 for the report generation date and # the reporting period start and end times O0008 = d-mmmm-yyyy h:nn # - This is the alternate table text for filters tables O0009 = Estes filtros foram utilizados nos seguintes relatórios. # - These are the title text (attributes) for the frames O0010 = Página de Navegação O0011 = Página de conteúdo do relatório # - This is the (printed) title for the navigation window O0012 = Indíce do
      Relatório # - This is the name given to the slice on a pie chart containing all # slices that are < 3% of total O0013 = Outros # This is the default Title if none is given. %0 is replaced with the HOSTNAME from Analog O0014 = Estatísticas do Website de %0 #------------------------------- # The ERRORS section specifically covers all the output notices, Warnings # and errors. If you want you can have Report Magic's errors output in # one langauge and the reports in another. #------------------------------- [Errors] N0000 = %0 N0001 = Creating report file in %0. N0002 = --> Settings file: %0. N0003 = ... Creating graph file in %0. N0004 = Beginning report creation (%0). N0005 = --> Input data file: %0. N0006 = --> Output path: %0. N0007 = --> Output navigation file: %0. N0008 = --> Output report file: %0. N0009 = --> Output frameset file: %0. N0010 = Report creation complete (%0). N0011 = Writing messages to log file %0. W0000 = %0 W0001 = WARNING: Unknown report [%0]. All lines for this report are ignored. W0002 = WARNING: Unknown column [%0]. All columns like this are ignored. W0003 = WARNING: Unknown report type "%0" defined for report [%1]. Ignoring entire report. W0004 = WARNING: Your Active_Column, %0, was not found in the columns for the %1 report. No graphs will be created for this report. W0005 = WARNING: Can't open the Company_Logo file: %0. Defaulting to standard logos. W0006 = WARNING: The command line argument, %0, that you specified is invalid. It will be ignored. E0000 = %0 E0001 = ERROR: -- Can't read from the report file: %0. -- E0002 = ERROR: -- Can't read from the navigation file: %0. -- E0003 = ERROR: -- Can't write to the report file: %0. -- E0004 = ERROR: -- Can't write to the navigation file: %0. -- E0005 = ERROR: -- Can't read from the data file: %0 -- E0006 = ERROR: -- Can't write to the frameset file: %0 -- E0007 = ERROR: -- Can't write to the navigation file: %0 -- E0008 = ERROR: -- Can't write to the report file: %0 -- E0009 = ERROR: -- Could not open a default settings file matching, %0.*. -- #E0010 ** Moved to warnings level: W0004 E0011 = ERROR: -- Required file %0 is missing or corrupt. Cannot continue. -- E0012 = ERROR: -- Can't open the error log file: %0 -- #E0013 ** Moved to warnings level: W0005 E0014 = ERROR: -- Can't open the settings file %0, that you specified. -- E0015 = <Note: Dependendo do período do relatório, o primeiro e o último trimestre podem não representar um trimestre completo, resultando daí menos acessos. EOT [w] ShortName = HORASEMANA LongName = Sumário de Horas da Semana DataName = Hora ReportType = TimeSummary TimeFormat = wwww, h:00 - h:59 GraphType = Line MostActive = Hora da semana mais activa # ** Need to see the data format, but probably want to do weekday hours and # weekend hours #Summary1 = [8-16],Work Hours (8:00am-4:59pm) #Summary2 = [0-7,17-23],After Hours (5:00pm-7:59am) Description = <Note: Dependendo do período do relatório, o primeiro e o último ano podem não representar um ano completo, resultando daí menos acessos. EOT [x] LongName = Resumo Geral DataName = Resumo geral Description = <Nota: Dependendo do período do relatório, o primeiro e o último mês podem não representar um mês completo, resultando daí menos acessos. EOT [W_] LongName = Relatório Semanal DataName = Início da semana TimeFormat = d mmmm yyyy MostActive = Início da semana mais ativa Average = Média semanal Description = <Nota: Dependendo do período do relatório, a primeira e a última semana podem não representar uma semana completa, resultando daí menos acessos. EOT [D_] LongName = Relatório Diário DataName = Dia TimeFormat = d mmmm yyyy MostActive = Dia mais ativo Average = Média Diária Description = < Netscape Communicator 4.5, versão US English executado em Windows 95 aparecerá como:
        Mozilla/4.5 [en] (Win95; U)
      MSIE 4.01 executado em Windows 98 aparecerá como:
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] LongName = Resumo de Rrowsers DataName = Tipo de browser MostActive = Tipo de browser mais ativo Description = < Os browsers classificam-se por categorias reconhecidas como Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera e similares. Dentro de cada categoria existe também um subgrupo por número de versão como 'MSIE 5.0' ou 'Netscape 4.5'. EOT [v] LongName = Relatóio de Domínios Virtuais DataName = Nome do domínio virtual MostActive = Domínio virtual mais ativo Description = <HTTP Working Group. EOT [Z_] LongName = Relatório de Organizações DataName = Organização MostActive = Organização mais ativa Description = <Nota se o tempo de processamento parece ser 100 vezes maior do que o correto, então é provável que o servidor seja um sistema IIS que informa o tempo em intervalos de centésimas de segundo em vez de segundos. EOT [N_] LongName = Relatório de Consultas de Pesquisa DataName = Consulta de pesquisa MostActive = Consulta de pesquisa mais comum Description = < tag #------------------------------- [Language] Symbol = RU CharacterSet = windows-1251 [Text] # -- The summary text items (S0001 - S0008) have all been moved to cdata.ini (1-4) or rdata.ini (5-8) #S0001 - S0009 **Deprecated** # # These are miscellaneous statements that appear on the reports. # O0001 = . O0002 = O0003 = %0. O0004 = %0 %1. O0005 = # O0006 = Problem with your site statistics? Contact us. O0006 = # - This is the "ALT" text on graphs. It's something like: # 'Daily Summary: Number of requests by Day of the week.' O0007 = %0: %1 by %2. # - This is the format used by O0003 for the report generation date O0008 = mmmm d, yyyy h:nn # - This is the alternate table text for filters tables O0009 = These filters were used in the following report. # - These are the title text (attributes) for the frames O0010 = O0011 = # - This is the (printed) title for the navigation window O0012 =
         # - This is the name given to the slice on a pie chart containing all # slices that are < 3% of total O0013 = # This is the default Title if none is given. %0 is replaced with the HOSTNAME from Analog O0014 = %0 #------------------------------- # The ERRORS section specifically covers all the output notices, Warnings # and errors. If you want you can have Report Magic's errors output in # one langauge and the reports in another. #------------------------------- [Errors] N0000 = %0 N0001 = Creating report file in %0. N0002 = --> Settings file: %0. N0003 = ... Creating graph file in %0. N0004 = Beginning report creation (%0). N0005 = --> Input data file: %0. N0006 = --> Output path: %0. N0007 = --> Output navigation file: %0. N0008 = --> Output report file: %0. N0009 = --> Output frameset file: %0. N0010 = Report creation complete (%0). N0011 = Writing messages to log file %0. W0000 = %0 W0001 = WARNING: Unknown report [%0]. All lines for this report are ignored. W0002 = WARNING: Unknown column [%0]. All columns like this are ignored. W0003 = WARNING: Unknown report type "%0" defined for report [%1]. Ignoring entire report. W0004 = WARNING: Your Active_Column, %0, was not found in the columns for the %1 report. No graphs will be created for this report. W0005 = WARNING: Can't open the Company_Logo file: %0. Defaulting to standard logos. W0006 = WARNING: The command line argument, %0, that you specified is invalid. It will be ignored. E0000 = %0 E0001 = ERROR: -- Can't read from the report file: %0. -- E0002 = ERROR: -- Can't read from the navigation file: %0. -- E0003 = ERROR: -- Can't write to the report file: %0. -- E0004 = ERROR: -- Can't write to the navigation file: %0. -- E0005 = ERROR: -- Can't read from the data file: %0 -- E0006 = ERROR: -- Can't write to the frameset file: %0 -- E0007 = ERROR: -- Can't write to the navigation file: %0 -- E0008 = ERROR: -- Can't write to the report file: %0 -- E0009 = ERROR: -- Could not open a default settings file matching, %0.*. -- #E0010 ** Moved to warnings level: W0004 E0011 = ERROR: -- Required file %0 is missing or corrupt. Cannot continue. -- E0012 = ERROR: -- Can't open the error log file: %0 -- #E0013 ** Moved to warnings level: W0005 E0014 = ERROR: -- Can't open the settings file %0, that you specified. -- E0015 = <Note: Most likely, the first and last years will not represent a complete year's worth of data, resulting in lower hits. EOT [Q_] ShortName = QUARTERLY LongName = DataName = GraphType = Line TimeFormat = q yyyy ReportType = TimeReport MostActive = Average = Description = <Note: Most likely, the first and last quarters will not represent a complete quarter's worth of data, resulting in lower hits. EOT [m] ShortName = MONTHLY LongName = DataName = ReportType = TimeReport TimeFormat = mmmm yyyy GraphType = Line MostActive = Average = Description = <Note: Depending on the report time frame, the first and last months may not represent a complete month's worth of data, resulting in lower hits. EOT [W_] ShortName = WEEKLY LongName = DataName = ReportType = TimeReport TimeFormat = mmmm d, yyyy GraphType = Line MostActive = Average = Description = <Note: Depending on the report time frame for this report the first and last week may not represent a full seven day week, resulting in lower hits. EOT [D_] ShortName = DAILYREP ShortName = FULLDAILY LongName = DataName = ReportType = TimeReport TimeFormat = mmmm d, yyyy GraphType = Line MostActive = Average = Description = <Note if your processing time appears to be about 100-times too long, then you are probably hosted on an IIS system that reports in 100th second intervals rather than second intervals. EOT [E_] ShortName = REDIR LongName = DataName = ReportType = HierarchicalReport MostActive = Description = < Netscape Communicator 4.5, US English version running on Windows 95 would look like:
        Mozilla/4.5 [en] (Win95; U)
      MSIE 4.01 running on Windows 98 would look like:
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] ShortName = BROWSERSUM LongName = DataName = ReportType = HierarchicalReport GraphType = Bar,Pie MostActive = Description = < Browsers are broken down by recognized categories such as Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera and the like. Within each category is also a subgroup by version number such as 'MSIE 5.0' or 'Netscape 4.5'. EOT [p] ShortName = OSREP LongName = DataName = ReportType = HierarchicalReport MostActive = GraphType = Pie Description = <HTTP Working Group. EOT [q] ShortName = QUICK LongName = DataName = ReportType = QuickSummary Description = < tag'en. #------------------------------- [Language] Symbol = SE CharacterSet = iso8859-1 [Text] # -- Resursenheterna (S0001 - S0008) har flyttats till cdata.ini (1-4) resp. rdata.ini (5-8) #S0001 - S0009 **Utgtt** # # Detta r diverse uttryck som frekommer i rapporterna. # O0001 = För att navigera runt i rapporten utan ramar, starta med Navigeringssidan. O0002 = Dokumentets början O0003 = Denna rapport genererades %0. O0004 = Rapporten baseras på ett urval från %0 till %1. O0005 = Web statistik rapport producerad av: O0006 = Problem med statistiken över din Webplats? Kontakta oss. # - Detta r "ALT" texten fr grafer. Den kan se ut ungefr s hr: # 'Daglig summering: Antal frfrgningar sorterat efter veckodag.' O0007 = %0: %1 per %2. # - Detta format anvnds av O0003 och O0004 fr tidpunkt fr rapport generering och # reportens urvalsperiod O0008 = yyyy-mm-dd hh:nn # - Detta r den alternativa tabelltexten fr filtrerade tabeller O0009 = Dessa filter användes i följande rapport. # - Detta r titeltexten (attributen) fr ramarna O0010 = Navigeringssida O0011 = Innehållsförteckning över rapport # - Detta r den (utskrivna) titeln fr navigationsfnstret O0012 = Rapport
        Navigering # - Detta namn ges till alla "trtbitar" i ett cirkeldiagram som r mindre n # 3% av den totala ytan O0013 = Övrigt # Detta anvnds som default vrde d titel saknas. %0 byts ut mot HOSTNAME frn Analog O0014 = Webplats statistik för %0 #------------------------------- # ERRORS sektionen innefattar informations-, varnings- och felmeddelanden. # Om du vill kan du lta Report Magic's anvndarinteraktion vara p ett annat # sprk n rapporternas. #------------------------------- [Errors] N0000 = %0 N0001 = Skapar rapport fil i %0. N0002 = --> Konfigurations fil: %0. N0003 = ... Skapar graf fil i %0. N0004 = Startar rapport generering (%0). N0005 = --> Indata fil: %0. N0006 = --> Skvg till resultat: %0. # For Dos: N0006 = --> Skvg till resultat: %0. N0007 = --> Utdata navigerings fil: %0. N0008 = --> Utdata rapport fil: %0. N0009 = --> Utdata fil fr ramar: %0. # For Dos: N0009 = --> Utdata fil fr ramar: %0. N0010 = Rapport generering klar (%0). N0011 = Skriver meddelanden till loggfil %0. W0000 = %0 W0001 = VARNING: Oknd rapport typ [%0]. Alla rader fr denna rapport ignoreras. # For Dos: W0001 = VARNING: Oknd rapport typ [%0]. Alla rader fr denna rapport ignoreras. W0002 = VARNING: Oknd kolumn typ [%0]. Alla dessa kolumnerna ignoreras. # For Dos: W0002 = VARNING: Oknd kolumn typ [%0]. Alla dessa kolumnerna ignoreras. W0003 = VARNING: Oknd rapport typ "%0" definierad fr rapport [%1]. Ignorerar hela rapporten. # For Dos: W0003 = VARNING: Oknd rapport typ "%0" definierad fr rapport [%1]. Ignorerar hela rapporten. W0004 = VARNING: Din Active_Column, %0, kunde inte lokaliseras bland kolumnerna fr rapporten %1. Inga grafer kommer att skapas fr denna rapport. # For Dos: W0004 = VARNING: Din Active_Column, %0, kunde inte lokaliseras bland kolumnerna fr rapporten %1. Inga grafer kommer att skapas fr denna rapport. W0005 = VARNING: Kan inte ppna filen som angivits fr Company_Logo: %0. Standard logotyp kommer att anvndas. # For Dos: W0005 = VARNING: Kan inte ppna filen som angivits fr Company_Logo: %0. Standard logotyp kommer att anvndas. W0006 = VARNING: Argument som angavs p kommandoraden, %0, r inte giltigt. Argumentet ignoreras. # For Dos: W0006 = VARNING: Argument som angavs p kommandoraden, %0, r inte giltigt. Argumentet ignoreras. W0007 = WARNING: Kan inte ppna filen som angivits fr Top_Logo: %0. Standard text kommer att visas. # For Dos: W0007 = WARNING: Kan inte ppna filen som angivits fr Top_Logo: %0. Standard text kommer att visas. W0008 = WARNING: Instllningen, "%0" r felaktig. Den kommer att ignoreras. # For Dos: W0008 = WARNING: Instllningen, "%0" r felaktig. Den kommer att ignoreras. W0008 = WARNING: Instllningen "%0" r oknd. Den kommer att ignoreras. # For Dos: W0008 = WARNING: Instllningen "%0" r oknd. Den kommer att ignoreras. E0000 = %0 E0001 = FEL: -- Kan inte lsa rapportfilen: %0. -- # For Dos: E0001 = FEL: -- Kan inte lsa rapportfilen: %0. -- E0002 = FEL: -- Kan inte lsa navigationsfilen: %0. -- # For Dos: E0002 = FEL: -- Kan inte lsa navigationsfilen: %0. -- E0003 = FEL: -- Kan inte skriva till rapportfilen: %0. -- E0004 = FEL: -- Kan inte skriva till navigationsfilen: %0. -- E0005 = FEL: -- Kan inte lsa datafilen: %0 -- # For Dos: E0005 = FEL: -- Kan inte lsa datafilen: %0 -- E0006 = FEL: -- Kan inte skriva till ramfilen: %0 -- E0007 = FEL: -- Kan inte skriva till navigationsfilen: %0 -- E0008 = FEL: -- Kan inte skriva till rapportfilen: %0 -- E0009 = FEL: -- Kan inte ppna default instllningsfil som matchar, %0.*. -- # For Dos: E0009 = FEL: -- Kan inte ppna default instllningsfil som matchar, %0.*. -- #E0010 ** Flyttat till varnings niv: W0004 E0011 = FEL: -- Ndvndig fil %0 saknas eller r felaktig. Kan inte fortstta. -- # For Dos: E0011 = FEL: -- Ndvndig fil %0 saknas eller r felaktig. Kan inte fortstta. -- E0012 = FEL: -- Kan inte ppna fel-log filen: %0 -- # For Dos: E0012 = FEL: -- Kan inte ppna fel-log filen: %0 -- #E0013 ** Flyttat till varnings niv: W0005 E0014 = FEL: -- Kan inte ppna instllningsfil %0, som du angav. -- # For Dos: E0014 = FEL: -- Kan inte ppna instllningsfil %0, som du angav. -- E0015 = <Notera: Beroende på rapportens urvalstid består kanske inte första och sista månaden av komplett data, vilket isåfall resulterar i mindre besök. EOT [W_] LongName = Veckorapport DataName = Vecka startar TimeFormat = dd mmm yyyy MostActive = Mest aktiva veckan startar Average = Genomsnitt per vecka Description = <Notera: Beroende på rapportens urvalstid består kanske inte första och sista veckan av en full 7 dagars vecka, vilket isåfall resulterar i mindre besök. EOT [D_] LongName = Daglig rapport DataName = Dag TimeFormat = dd mmm yyyy MostActive = Mest aktiva dagen Average = Genomsnitt per dag Description = < Netscape Communicator 4.5, Engelsk (Amerikansk) version under Windows 95 ser ut så här:
        Mozilla/4.5 [en] (Win95; U)
      MSIE 4.01 under Windows 98 ser ut så här:
        Mozilla/4.0 (compatible; MSIE 4.01; Windows 98). EOT [b] LongName = Summering av webbläsar typ DataName = Webbläsartyp MostActive = Vanligaste webbläsartypen Description = < I statistiken identifieras kategorier av webbläsare som Netscape Navigator/Communicator, Microsoft Internet Explorer, WebTV, Opera o.s.v. Inom varje kategori finns också undergrupper med versionsnummer som t.ex. 'MSIE 5.0' or 'Netscape 4.5'. EOT [v] LongName = Rapport över virtuella Webplatser DataName = Virtuell Webplats MostActive = Vanligaste virtuella Webplatsen Description = <HTTP Working Group. EOT [Z_] LongName = Rapport över organisationer DataName = Organisation MostActive = Vanligast organisation Description = <Notera om din processeringstid förefaller vara 100 gånger för lång så använder du troligtvis ett IIS system som rapporterar i 100 sekunds intervaller istället för sekundintervall. EOT [N_] LongName = Rapport över sökningar DataName = Ställd fråga MostActive = Vanligaste frågan Description = <Notera: Första och sista året kan vara ofullständiga vilket isåfall resulterar i mindre antal besök. EOT [Q_] LongName = Kvartalsrapport DataName = Kvartal MostActive = Mest aktiva kvartalet Average = Genomsnitt per kvartal Description = <Notera: Första och sista kvartalet kan vara ofullständiga vilket isåfall resulterar i mindre antal besök. EOT [w] LongName = Summering per veckans timmar DataName = Timme TimeFormat = www, hh:00 - hh:59 MostActive = Veckans mest aktiva timme Description = < taggar). Frinstllt vrde r 'XHTML 1.0'. [statistics] File_In = report.dat Frame_File_Out = index.html FRame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = se Verbose = NWE Format = XHTML 1.0 # ----------------------- reports -------------------------- # Fljande instllningar anger utseende och placering fr alla rapporter. Rapporter # kan dessutom ha individuella instllningar i respektive rapports sektion (ex. [STATUS]). # BG_Color (valfritt) rapportens bakgrundsfrg # Background (valfritt) rapportens bakgrundsbild # Font (valfritt) namnet p nskat typsnitt # Font_Color (valfritt) frgen p text. # Title_Font (valfritt) namnet p det typsnitt som anvnds fr rapportens titel # Title_BG_Color (valfritt) bakgrundsfrgen fr rapportens titel. # Title_Font_Color (valfritt) frgen p titeltexten. # Data_Font (valfritt) namnet p det typsnitt som anvnds fr data. # Data_BG_Color_1 (valfritt) bakgrundsfrgen som anvnds fr udda rader med data (tabeller). # Data_Font_Color_1 (valfritt) frgen p texten i udda rader med data (frinstllt = Font_Color). # Data_BG_Color_2 (valfritt) bakgrundsfrgen som anvnds fr jmna rader med data (tabeller). # Data_Font_Color_2 (valfritt) frgen p texten i jmna rader med data (frinstllt = Font_Color). # Data_Total_Font (valfritt) namnet p det typsnitt som anvnds fr summerande datarader (frinstllt = Data_Font). # Data_Total_Font_Color (valfritt) frgen p texten i summerande datarader (frinstllt = Data_Font_Color). # Data_Total_BG_Color (valfritt) bakgrundsfrgen som anvnds i summerande datarader. # Data_Header_Font (valfritt) namnet p typsnitt som anvnds fr tabellens rubrikrad (frinstllt = Data_Font). # Data_Header_Font_Color (valfritt) frgen p texten i tabellens rubrikrad (frinstllt = Data_Font_Color). # Data_Header_BG_Color (valfritt) bakgrundsfrgen som anvnds i tabellens rubrikrad. # Active_Column anger vilken kolumn som inehller grafdata samt berkning fr mest aktiva period och # data i snabbsummeringen. # Reverse_Time (valfritt) anges till 1 om du vill vnda tidsaxeln i time reports. # Anvnd detta om det senaste hndelserna fr din Webserver kommer frst i loggfilen. # File_Out nament p den fil eller katalog dr du vill din(a) rapport(er). Om detta r ett filnamn # kommer alla rapporter i en fil. r det ett katalognamn kommer respektive rapport i en egen fil. # Om detta r symblen '-' kommer hela rapporten (som en fil) att skickas till STDOUT. # Meta_Refresh (valfritt) antalet sekunder innan sidan upphr att glla. # Om detta r 0 eller saknas kommer ingen META REFRESH tag att anges. # Image_Dir (valfritt) liknande Analog's instllning, kan anvndas fr att tala om fr Report # Magic var logotyp bilder fr sidfoten kan hittas. # Stylsheet (valfritt) pekar ut ett stylesheet som Report Magic skall anvnda. # Graph_Level (valfritt) anger vilken niv i en hierarkisk rapport som grafen skall # beskriva. Denna instllning ignoreras fr alla andra rapporter. # Show_Bytes_As (valfritt) avgr hur mycket ett byte vrde frenklas vid visning # i en rapport. Giltiga vrden r K, M, G, T, etc. Om inget angivits # kommer minsta mjliga heltal att visas. # * Alla frger kan anges som HTML frgnamn eller ett staket (#) och en 6-siffrig hexadeciaml frgkod [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 # ----------------------- GENERAL -------------------------- # Rows (valfritt) anger vilka rader som skall inkluderas i versiktsrapporten # Om detta inte anges visas alla rader. Om du inte vill ha ngon versikt, # ange NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (valfritt) anger vilka rader som skall visas i snabbsummeringen. # Om detta inte anges kommer inte snabbsummeringen att skapas. # Du kan anvnda nyckelordet ALL fr att visa alla rader. [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (valfritt) lter dig ange den frg som skall anvndas som bakgrund fr grafen. # Om inget anges kommer rapportens bakgrundsfrg att anvndas. # Font (valfritt) lter dig ange en TrueType Font att anvndas i grafer. # Detta skall vara fullstndig skvg till fonten. Du kan ven # (valfritt) ange 3 fontstorlekar (angivet i punkter), separerade med # kommatecken som anger storleken fr grafens titel, axlar, etiketter och # dataetiketter. # Font_Color (valfritt) anger frgen fr grafens text. Frinstllt vrde r # rapportens textfrg. # Width (valfritt) anger nskad bredd (i pixlar) fr grafen. Frinstllt vrde r 400 # Height (valfritt) anger nskad hjd (i pixlar) fr grafen. Frinstllt vrde r 300 # 3d (valfritt) Ange 1 om du vill ha 3D grafer, 0 ritar 2D grafer. Frinstllt vrde r 1. # Palette (valfritt) anger en lista med frgnamn att anvndas i stapeldiagrammen. # Se docs/config.html fr giltiga namn. # Cycle_Colors (valfritt) Ange 1 om du vill att varje stapel i stapeldiagrammet skall anvnda # olika frger frn Data_Colors listan. Ange 0 om du vill att alla staplar skall anvnda # den frsta frgen. Frinstllt vrde r 1. # Shadows (valfritt) Ange 1 om du vill ha skuggor till staplarna i stapeldiagram. # Ange 0 om du inte vill ha skuggor. Frinstllt vrde r 1. # Format (valfritt) anger nskat bildformat fr grafbilder. Giltiga vrden # r PNG och JPEG. Frinstllt vrde r PNG fr de bilderna r mycket mindre. # Se docs/config.html fr att f reda varfr detta kanske inte gller fr din # version av Report Magic. # * Alla frger kan anges som HTML frgnamn eller ett staket (#) och en 6-siffrig hexadeciaml frgkod [graphs] BG_Color = #FFFFCC #Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGATION -------------------------- # Fljande instllningar beskriver utseendet och placering utav navigeringssidan. # File_Out (valfritt) namnet p den fil som utgr navigeringssidan. # Om detta inte anges kommer inte ramsidan att skapas. # BG_Color (valfritt) bakgrundsfrgen fr navigeringssidan. # Background (valfritt) en bild att anvnda som sidans bakgrund # Font (valfritt) namnet p nskat typsnitt # Font_Color (valfritt) frgen p den text som skrivs ut. # Bullet_Image (valfritt) en lnk till den bild som skall anvndas som punktlnk. # Stylsheet (valfritt) pekar ut ett stylesheet som Report Magic skall anvnda fr stilar. # Top_Logo (valfritt) r namnet p den fil (relativt till arbetskatalogen) # vilken innehller en snutt HTML som skall infras verst p sidan. # Om detta angivits s erstter det "Report Navigation". # * Alla frger kan anges som HTML frgnamn eller ett staket (#) och en 6-siffrig hexadeciaml frgkod [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css # ----------------------- WEBSITE -------------------------- # Fljande instllningar erbjuder bara lite generell information fr statistiken # Title (valfritt) den titel som skrivs ut verst i varje rapportfil # samt titeln fr ramen. Om detta inte anges kommer en standardtext # att anvndas, ungefr "Website statistics for My Domain" med # med Webplatsens namn om detta finns i rapporten producerad av Analog. # Base_URL (valfritt) Adressen (URL) till Webplatsen frn vilken denna statistik # r insamlad. Om detta inte anges kommer Webplatsens URL att anvndas om # detta finns i rapporten producerad av Analog. # Webmaster (valfritt) E-post adressen till den som skall kontaktas om man har # frgor angende rapporterna. Om detta inte anges kommer ingen text om # vem som skall kontaktas att inkluderas. # Company_Logo (valfritt) namnet p den fil (relativt arbetskatalogen) # som innehller en liten bit HTML kod att infoga i rapporten. # Denna kommer att visas lngst ned i rapporten och erstter andra # logotyper (Analog, Report Magic). [website] Title = My Website Statistics Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/lang/zh/0040755000175000010010000000000007642616035013236 5ustar kilroyNonermagic-2.21/lang/zh/cdata.ini0100644000175000010010000002202207642525574015015 0ustar kilroyNone# ------------------------------------------------------------------- # cdata.ini # # Descriptions for columns and lines in reports # Last Updated: 2000 August 25 By: JW # For use with Report Magic for Analog 2.0 # Compatible with Analog 4.11 # # ------------------------------------------------------------------- # # HOW TO USE AND MODIFY # # In each section, you can change descriptive text for another # language. Below is a list of the parameters (keys) and what they mean. # # LongName # This field specifies the descriptive name given to columns in all reports # and rows in the General Report and Quick Summary. # # Type # This field tells Report Magic a little about how to present the column's # contents. Valid types are as follows: # Data Will be shown in a table (default) # Filter This is some kind of filter or sort information (like # FLOOR or SORT) and is written as plain text. Filter columns # are handled with a series of regular expression matches. This # is descibed below with the [f] column. # Index This type of column will set the Index number for the row. e.g. [N_] # Level This type of column gives a level in a hierarchical report. e.g. [l] # # Unit # Units # On General Summary columns (rows) this is the singular and plural for # the units (if any) for the given line. # # Activity # In Time Reports, there is a summary line that list the most active entry # and the average for the period. This is followed by activity data for each # column in the report. The 'Activity' parameter gives the text used to # describe the level of activity for that column. # # NumberFormat # All columns can now be given a number format for formatting. Without a format # the number is shown normally. For percentage values a format of '#.#%' will # display the number with a localized percent sign after the value. See # docs/numfmt.html for details on the format spec. # # Width # This tells the CRO parser how many columns wide the column specifier is. For # example, the [D_] column actually has 5 columns of data so its width is 5. # # TimeFormat # This is used to format the date or time data in columns that have that # data (e.g. [D_] and [d]). See docs/datefmt.html for details on the format spec. # ------------------------------------------------------------------- # # General Summary Report Lines # [HN] LongName = DW [HU] LongName = } [PS] LongName = {}lɶ TimeFormat = mmm d, yyyy h:nn [FR] LongName = Ĥ@ӭnDɶ TimeFormat = mmm d, yyyy h:nn [LR] LongName = ̫@ӭnDɶ TimeFormat = mmm d, yyyy h:nn # - This has been deprecated but should remain for backwards compatibility [L7] LongName = eCѰ_lɶ TimeFormat = mmm d, yyyy h:nn [E7] LongName = eCѲפɶ TimeFormat = mmm d, yyyy h:nn [SR] LongName = \nDӼ(requests) Units = Requests Unit = Request [S7] LongName = eCѦ\nDӼ Units = Requests Unit = Request [PR] LongName = \nDӼ(pageviews) Units = Requests for pages Unit = Request for a page [P7] LongName = eCѦ\nDӼ Units = Requests for pages Unit = Request for a page [FL] LongName = ѪnDӼ Units = Requests Unit = Request [F7] LongName = eCѥѪnDӼ Units = Requests Unit = Request [RR] LongName = V(redirect)nDӼ Units = Requests Unit = Request [R7] LongName = eCV(redirect)nDӼ Units = Requests Unit = Request [NC] LongName = CSAX(status code)Ӽ Units = Lines Unit = Line [C7] LongName = eCѬCSAX(status code)Ӽ Units = Lines Unit = Line [NF] LongName = Pɮ(Distinct files)Ӽ Units = Files Unit = File [N7] LongName = eCѤPɮ(Distinct files)Ӽ Units = Files Unit = File [NH] LongName = sPD(Distinct hosts)Ӽ Units = Hosts Unit = Host [H7] LongName = eCѦsPD(Distinct hosts)Ӽ Units = Hosts Unit = Host [CL] LongName = C~榡Ӽ Units = Lines Unit = Line [UL] LongName = CnӼ Units = Lines Unit = Line [BT] LongName = `@ǿ骺ƶq(Bytes) Units = Bytes Unit = Byte Format = bytes [B7] LongName = eC`@ǿ骺ƶq(Bytes) Units = Bytes Unit = Byte Format = bytes [VE] LongName = Analog # # Standard Reports Column Letters # [R_] LongName = nDӼ Type = Data Activity = %0 requests handled. NumberFormat = # [r] LongName = nDӼƦʤ Type = Data NumberFormat = #.#% [S_] LongName = eCѭnDӼ Type = Data Activity = %0 requests handled in the last 7 days. NumberFormat = # [s] LongName = eCѭnDӼƦʤ Type = Data NumberFormat = #.#% [P_] LongName = nDӼ Type = Data Activity = %0 pages sent. NumberFormat = # [p] LongName = nDӼƦʤ Type = Data NumberFormat = #.#% [Q_] LongName = eCѺnDӼ Type = Data Activity = %0 pages sent in the last 7 days. NumberFormat = # [q] LongName = eCѺnDӼƦʤ Type = Data NumberFormat = #.#% [B_] LongName = ǿƶq(bytes) Type = Data Activity = %0 served. Format = bytes [b] LongName = ǿƶqʤ Type = Data NumberFormat = #.#% [C_] LongName = eCѶǿƶq(bytes) Type = Data Activity = %0 served in the last 7 days. [c] LongName = eCѶǿƶqʤ Type = Data NumberFormat = #.#% [D_] LongName = ̫@ӭnDBɶ Type = Data Width = 5 TimeFormat = mmm. d, yyyy h:nn [d] LongName = ̫@ӭnD Type = Data Width = 3 TimeFormat = mmm. d, yyyy [E_] LongName = Ĥ@ӭnDBɶ Type = Data Width = 5 TimeFormat = mmm. d, yyyy h:nn [e] LongName = Ĥ@ӭnD Type = Data Width = 3 TimeFormat = mmm. d, yyyy [N_] Type = Index [l] Type = Level # ------------------------------------------------------------ # These filters use a slightly different set of options than other columns. # Filters will parse their data value and output a text description. For # each filter you can have any number of Columns specified by Width. # Each Column can have any number of Matches, LongNames and Result sets: # # ColX_MatchX The Regular Expressions (without //) to match the contents # of the filter data. # ColX_LongNameX The basic text of the output string for the corresponding # filter match. Replacements from the matches are %1-%9 # ColX_ResultX_n The replacement text (if any) for the matched variables. The # format for this matchset[tab]output text. If no result set is # given, then the match variable is outputted as listed. If a # result line starts with the [tab] then that will be used when # no match is made in the set. # ------------------------------------------------------------ # # FLOOR and SORTBY (cols 1 and 2) # [f] Type = Filter # Need this to keep the CRO splitter happy Width = 2 # # FLOOR # Col1_Match1 = ^\-(\d+)([RBPrbp]) Col1_LongName1 = oӳi%1ӥ%2ͪ. Col1_Result1_2 = < tag #------------------------------- [Language] Symbol = zh-TW CharacterSet = Big5 [Text] # -- The summary text items (S0001 - S0008) have all been moved to cdata.ini (1-4) or rdata.ini (5-8) #S0001 - S0009 **Deprecated** # # These are miscellaneous statements that appear on the reports. # O0001 = To navigate the reports without frames, start from the Navigation Page. O0002 = Top of Document O0003 = oͩG %0. O0004 = ɶ %0 %1. O0005 = Web statistics report produced by: O0006 = A̺έpD? иڭp. # - This is the "ALT" text on graphs. It's something like: # 'Daily Summary: Number of requests by Day of the week.' O0007 = %0: %1 by %2. # - This is the format used by O0003 for the report generation date O0008 = mmmm d, yyyy h:nn # - This is the alternate table text for filters tables O0009 = These filters were used in the following report. # - These are the title text (attributes) for the frames O0010 = Navigation Page O0011 = Report Content Page # - This is the (printed) title for the navigation window O0012 = # - This is the name given to the slice on a pie chart containing all # slices that are < 3% of total O0013 = Other # This is the default Title if none is given. %0 is replaced with the HOSTNAME from Analog O0014 = Website statistics for %0 #------------------------------- # The ERRORS section specifically covers all the output notices, Warnings # and errors. If you want you can have Report Magic's errors output in # one langauge and the reports in another. #------------------------------- [Errors] N0000 = %0 N0001 = Creating report file in %0. N0002 = --> Settings file: %0. N0003 = ... Creating graph file in %0. N0004 = Beginning report creation (%0). N0005 = --> Input data file: %0. N0006 = --> Output path: %0. N0007 = --> Output navigation file: %0. N0008 = --> Output report file: %0. N0009 = --> Output frameset file: %0. N0010 = Report creation complete (%0). N0011 = Writing messages to log file %0. W0000 = %0 W0001 = WARNING: Unknown report [%0]. All lines for this report are ignored. W0002 = WARNING: Unknown column [%0]. All columns like this are ignored. W0003 = WARNING: Unknown report type "%0" defined for report [%1]. Ignoring entire report. W0004 = WARNING: Your Active_Column, %0, was not found in the columns for the %1 report. No graphs will be created for this report. W0005 = WARNING: Can't open the Company_Logo file: %0. Defaulting to standard logos. W0006 = WARNING: The command line argument, %0, that you specified is invalid. It will be ignored. E0000 = %0 E0001 = ERROR: -- Can't read from the report file: %0. -- E0002 = ERROR: -- Can't read from the navigation file: %0. -- E0003 = ERROR: -- Can't write to the report file: %0. -- E0004 = ERROR: -- Can't write to the navigation file: %0. -- E0005 = ERROR: -- Can't read from the data file: %0 -- E0006 = ERROR: -- Can't write to the frameset file: %0 -- E0007 = ERROR: -- Can't write to the navigation file: %0 -- E0008 = ERROR: -- Can't write to the report file: %0 -- E0009 = ERROR: -- Could not open a default settings file matching, %0.*. -- #E0010 ** Moved to warnings level: W0004 E0011 = ERROR: -- Required file %0 is missing or corrupt. Cannot continue. -- E0012 = ERROR: -- Can't open the error log file: %0 -- #E0013 ** Moved to warnings level: W0005 E0014 = ERROR: -- Can't open the settings file %0, that you specified. -- E0015 = <`N: ]ƥiणAĤ@M̫@~iण|㪺ܡC EOT [Q_] ShortName = QUARTERLY LongName = u DataName = u GraphType = Line TimeFormat = q yyyy ReportType = TimeReport MostActive = ̬Du Average = u Description = <`N: ]ƥiणAĤ@M̫@uiण|㪺ܡC EOT [m] ShortName = MONTHLY LongName = DataName = ReportType = TimeReport TimeFormat = mmmm yyyy GraphType = Line MostActive = ̬D Average = 륭 Description = <`N: ]ƥiणAĤ@M̫@몺iण|㪺ܡC EOT [W_] ShortName = WEEKLY LongName = g DataName = @g}l ReportType = TimeReport TimeFormat = mmmm d, yyyy GraphType = Line MostActive = ̬DP}l Average = g Description = <`N: ]ƥiणAĤ@M̫@giण|㪺ܡC EOT [D_] ShortName = DAILYREP ShortName = FULLDAILY LongName = DataName = ReportType = TimeReport TimeFormat = mmmm d, yyyy GraphType = Line MostActive = ̬D Average = 饭 Description = <`N:pGABzɶܬ100jA iAONީC100έp@IIStΡC EOT [E_] ShortName = REDIR LongName = sɦV DataName = ɦW ReportType = HierarchicalReport MostActive = ̦hQsɦVnD Description = <odߨC EOT [q] ShortName = QUICK LongName = ֳtKn DataName = ֳtKn ReportType = QuickSummary Description = <path) { my $scr = File::Spec->catfile($dir, $script); if( -r $scr && (!$IsWin32 || -x _) ) { $script = $scr; $script = $0 if -f $0 && (!-T $script); last; } # end if } # end foreach } # end unless die("Cannot find current script '$0'") unless(-f $script); my($Script,$Bin) = fileparse($script); $RealBin = $Bin; } # end if } else { $RealBin = $FindBin::RealBin; } # end if $RealBin = "." unless $RealBin; } # end BEGIN #-------------------------------# # Setup which libraries we need # #-------------------------------# # If you're running Perl 5.004 you'll need to get this from CPAN, # it ships with 5.005 and 5.6 use File::Spec; # - Add execution directory to lib path, resolving symbolic refs use lib $RealBin; # - Read INI files use Config::IniFiles; # - Our own internal libraries (ship with software) use wadg::Formatter; use wadg::Errors; use wadg::HTMLWriter; use wadg::rm::Settings; use wadg::rm::CROParser; use wadg::rm::Graphs; use wadg::rm::Report; use wadg::rm::Report::GeneralSummary; use wadg::rm::Report::TimeReport; use wadg::rm::Report::TimeSummary; use wadg::rm::Report::HierarchicalReport; use wadg::rm::Report::RangeReport; use wadg::rm::Report::QuickSummary; #-------------------------------# # Declare our global variables # #-------------------------------# my %config; $config{_INTERNAL} = (); $config{_INTERNAL}{'_TITLE'} = 'Report Magic'; $config{_INTERNAL}{'_VERSION'} = '2.21'; my( $rdata, $cdata, $lang ); my $logFile = *STDERR; my %statistics; my %navigation; my( $HEADER, $PREFIX, $HEADER_USED ) = ( "$config{_INTERNAL}{_TITLE} $config{_INTERNAL}{_VERSION}\nCopyright (C) 1999-2003 Wadsack-Allen. All rights reserved.\n", 'rmagic: ', 0 ); #-------------------------------------# # CGI detection and initialization # #-------------------------------------# if( exists $ENV{'REQUEST_METHOD'} ) { # -- Set CGI mode for everything else to respond to $config{_INTERNAL}{_CGI} = 'CGI'; # -- Use CGI module to read our parameters # NOTE: This is redundant (it's done in Settings.pm) but # by putting here, we can run-time error right away require CGI; # -- Send out the CGI header right now. # Do this by hand, because if we instantiate a CGI # object here, we will consume STDIN (for POST) thus # making it impossible to get later in Settings.pm print STDOUT "Content-type: text/html\n"; # NOTE we could add other headers here, e.g. no-cache print STDOUT "\n"; } # end if #-------------------------------------# # Build our objects and configuration # #-------------------------------------# my $formatter = new wadg::Formatter(); my $croParser = new wadg::rm::CROParser; $croParser->{globals}{'NAME'} = $config{_INTERNAL}{_TITLE}; $croParser->{globals}{'VERSION'} = $config{_INTERNAL}{_VERSION}; # # Load the English language message file for default error messages # $lang = new Config::IniFiles( -file => File::Spec->catfile( $RealBin, 'lang', 'en', 'lang.ini' ), ); if( !defined $lang ) { # Can't use message function if $lang is undefined so just print these notices print $HEADER; print "\nERROR: Language file " . File::Spec->catfile( $RealBin, 'lang', 'en', 'lang.ini' ) . " is missing or corrupt.\n\n"; &finalize( -1 ); } # end if # - Register our exception handlers now that language is loaded wadg::Errors::set_warning_handler( \&message ); wadg::Errors::set_error_handler( \&finalize ); # -- Get the rest of the root 'language' files (to load settings) $rdata = new Config::IniFiles( -file => File::Spec->catfile( $RealBin, 'lang', '.root', 'rdata.ini' ), ); if( !defined $rdata || !$rdata->Sections ) { warn $rdata; wadg::Errors::error( -1, 'E0011', File::Spec->catfile( $RealBin, 'lang', '.root', 'rdata.ini' ) ); } # end if $cdata = new Config::IniFiles( -file => File::Spec->catfile( $RealBin, 'lang', '.root', 'cdata.ini' ), ); if( !defined $cdata || !$cdata->Sections ) { warn $!; wadg::Errors::error( -1, 'E0011', File::Spec->catfile( $RealBin, 'lang', '.root', 'cdata.ini' ) ); } # end if # # Store the report-names list into the package variable # So that we can look them up when we read the settings file ## Yes, this really is an ugly hack! And we end up doing short-name lookups twice! # { # scope for variables my( $S ); foreach $S ( $rdata->Sections() ) { my $sn; foreach $sn ( $rdata->val( $S, 'ShortName' ) ) { push @wadg::rm::Settings::KNOWN_REPORTS, $sn; } # end foreach } # end foreach } # end scope # # - Get user configuration (without losing data already in %config...) # tie %config, 'wadg::rm::Settings', ( -argv => \@ARGV, -version => $HEADER, -default => 'reports', -preset => \%config, ); # # Throw an error message if that fails # unless( %config && defined( tied(%config) ) ) { # -- Make sure error messages are printed in this case! $statistics{Verbose} .= 'E'; # Get the filenames that should have been tried: my $requested = join( ',', grep( !/^-/, @ARGV ) ); if( $requested ) { wadg::Errors::error( -1, 'E0014', $requested ); } else { # Get the default name part. my( $base ) = fileparse( $0, '\..*' ); wadg::Errors::error( -1, 'E0009', $base ); } # end if } # end unless # # -- Separate out the program specific parts of the settings # %statistics = %{$config{statistics}}; tied(%config)->get_nav_styles(); %navigation = %{$config{navigation}}; delete $config{statistics}; delete $config{navigation}; $config{reports}{Meta_Refresh} = $statistics{Meta_Refresh}; $config{reports}{No_Robots} = $statistics{No_Robots}; $config{reports}{Format} = $statistics{Format}; # # - Get input report settings and text files in the user's language # { # Scope for variables # Default language is 'en' $statistics{Language} = 'en' unless defined $statistics{Language}; my @language = ($RealBin, 'lang', $statistics{Language}); # Do new lang.ini here only if not english, 'cause english is already loaded if( $statistics{Language} ne 'en' ) { my $fileN = File::Spec->catfile( @language, 'lang.ini' ); unless( -e $fileN ) { wadg::Errors::error( -1, 'E0011', $fileN ); } # end if $lang = new Config::IniFiles( -file => $fileN, -import => $lang ); } # end if # Load the language-specific extensions # Can import the object we're writing to 'cause import makes a copy. my $fileN = File::Spec->catfile( @language, 'rdata.ini' ); unless( -e $fileN ) { wadg::Errors::error( -1, 'E0011', $fileN ); } # end if $rdata = new Config::IniFiles( -file => $fileN, -import => $rdata ); $fileN = File::Spec->catfile( @language, 'cdata.ini' ); unless( -e $fileN ) { wadg::Errors::error( -1, 'E0011', $fileN ); } # end if $cdata = new Config::IniFiles( -file => $fileN, -import => $cdata ); } # end scope # # Build next level of inheritance by inserting $rdata into %config # delete $config{x}; delete $config{q}; { # scope for variables my( $S, $P, %short_names ); # -- Push the rdata under config, gathering a shortname -> letter mapping foreach $S ( $rdata->Sections() ) { my $sn; foreach $sn ( $rdata->val( $S, 'ShortName' ) ) { $short_names{uc($sn)} = $S if $sn; } # end foreach $config{$S} = {} unless ref $config{$S} eq 'HASH'; foreach $P ( $rdata->Parameters( $S ) ) { $config{$S}{$P} = $rdata->val( $S, $P ) unless defined $config{$S}{$P}; } # end foreach } # end foreach # -- Now convert shortname sections to letters overriding the letter values foreach $S (keys %config) { next unless defined $short_names{uc($S)}; $config{$short_names{uc($S)}} = {} unless ref $config{$short_names{uc($S)}} eq 'HASH'; foreach $P (keys %{$config{$S}}) { $config{$short_names{uc($S)}}{$P} = $config{$S}{$P}; } # end foreach delete $config{$S}; } # end foreach } # end scope # -- Localize the formatter $formatter->localize( 'day_abrev', $lang->val( 'Dates', 'shortDays' ) ); $formatter->localize( 'day_names', $lang->val( 'Dates', 'longDays' ) ); $formatter->localize( 'month_abrev', $lang->val( 'Dates', 'shortMonths' ) ); $formatter->localize( 'month_names', $lang->val( 'Dates', 'longMonths' ) ); $formatter->localize( 'number_sep', $lang->val( 'Symbols', 'decimalList' ) ); $formatter->localize( 'decimal_sep', $lang->val( 'Symbols', 'decimalSeparator' ) ); $formatter->localize( 'decimal_digits', $lang->val( 'Symbols', 'decimalDigits' ) ); $formatter->localize( 'percent', $lang->val( 'Symbols', 'percent' ) ); # -- Configure the Report class # --- Rather than settings globals here, lets create a 'report defaults' hash that sets # the rest of the default options ( CDATA => $cdata, LANG => $lang, FORMATTER => $formatter ) # Then call 'new wadg::rm::Report( token => $reportType, CONFIG => $config{$reportType}, %report_defaults )' my %report_defaults = ( _CDATA => $cdata, _LANG => $lang, _FORMATTER => $formatter, _CONFIG => \%config ); $wadg::rm::Report::FORMATTER = $formatter; $wadg::rm::Report::LANG = $lang; $wadg::rm::Report::CONFIG = \%config; #---------------------------------------# # If there's an error log file, open it # #---------------------------------------# if( $statistics{Log_File} ) { my @now = localtime; my $now = (1900 + $now[5]) . '/' . (1 + $now[4]) . '/' . $now[3] . ' ' . $now[2] . ':' . $now[1]; my $infile; ($infile, undef, undef) = fileparse( $statistics{File_In}, '\..*' ); $statistics{Log_File} =~ s/%infile%/$infile/gi; $statistics{Log_File} =~ s/\${infile}/$infile/gi; $statistics{Log_File} =~ s/%infile%/$infile/gi; $statistics{Log_File} =~ s/%([^%]+)%/$formatter->formatDate( $1, $now )/ge; if( !open( $logFile, ">>$statistics{Log_File}" ) ) { wadg::Errors::error( -1, 'E0012', $statistics{Log_File} ); } # end if # - Tell user of logfile on STDOUT print( $formatter->formatMessage( $lang->val( 'Errors', 'N0011' ), $statistics{Log_File} ) . "\n" ); } # end if # - Send output to the logfile (or STDERR) # and auto-flush (so user can 'tail -f') select( $logFile ); $| = 1; # - Output the starting notice and date/time. my $now = localtime; message( 'N0004', $now ); #-----------------------------------# # Configure and format our settings # #-----------------------------------# # -- Convert any date formatting codes in the input file name using today's date my @now = localtime; $now = (1900 + $now[5]) . '/' . (1 + $now[4]) . '/' . $now[3] . ' ' . $now[2] . ':' . $now[1]; $statistics{File_In} =~ s/%([^%]+)%/$formatter->formatDate( $1, $now )/ge; my $infile; ($infile, undef, undef) = fileparse( $statistics{File_In}, '\..*' ); # -- Build a quick_summary report object # We will push max values onto this report's _summaries list # but it would be better if we could push them on the CROParser # so we can remove the whole redundant report building at the end! my $quick_summary = undef; if( defined $config{q}{Rows} && ($config{reports}{File_Out} ne '-')) { # Update QuickSummary ALL list if necessary if( $config{q}{Rows} =~ /ALL/i ) { my( $rep, @repList ); foreach $rep ( keys %config ) { if( defined $rdata->val( $rep, 'MostActive' ) ) { push @repList, $rep; } # end if } # end if $config{q}{Rows} = join( ',', @repList ); } # end if my $reportStyle = $config{q}{ReportType}; $reportStyle =~ s/^\s*(.+)\s*$/$1/; if( "wadg::rm::Report::$reportStyle"->isa( 'wadg::rm::Report::QuickSummary' ) ) { $quick_summary = "wadg::rm::Report::$reportStyle"->new( token => 'q', %report_defaults ); } else { # -- Unknown style, so notify the user and dump the report wadg::Errors::warning( 'W0003', $reportStyle, 'q' ); } # end if $wadg::rm::Report::QuickSummary::CONFIG = \%config; } # end if #-----------------------------------# # Start processing the data file # #-----------------------------------# # - Output notice of settings file and input file being read message( 'N0002', tied(%config)->getFilename() ); message( 'N0005', $statistics{File_In} ); # Add Analog paths if CGI mode has been configured and load data if( exists $config{CGI}{Analog_Config} ) { $croParser->{Analog} = $config{CGI}{Analog}; $croParser->{Analog_Config} = $config{CGI}{Analog_Config}; wadg::Errors::error( -1, 'E0020' ) if $croParser->getFile(); } # Otherwise Get data from Analog's computer readable output file elsif ( $croParser->getFile( $statistics{File_In} ) ) { wadg::Errors::error( -1, 'E0005', $statistics{File_In}, "\n"); } # end if # Set a default title, if none is given if( !defined $config{website}{Title} && defined $croParser->{globals}{HN} ) { $config{website}{Title} = $formatter->formatMessage( $lang->val( 'Text', 'O0014' ), $croParser->{globals}{HN} ); } # end if # Set a default base URL, if none is given if( !defined $config{website}{Base_URL} && defined $croParser->{globals}{HU} ) { $config{website}{Base_URL} = $croParser->{globals}{HU}; } # end if # # Convert any outfiles that contain formatting codes or stdout specifier # use date of last request OR current date if date of last request is undefined # if( defined $croParser->{globals}{DataEnd} ) { $now = $formatter->getDateString( @{$croParser->{globals}{DataEnd}} ); } else { my @now = localtime; $now = (1900 + $now[5]) . '/' . (1 + $now[4]) . '/' . $now[3] . ' ' . $now[2] . ':' . $now[1]; } # end if # - Format the date globals in the CROParser to our specs if( defined $croParser->{globals}{GenerationTime} ) { $croParser->{globals}{GenerationTime} = $formatter->formatDate( $lang->val( 'Text', 'O0008' ), $formatter->getDateString( @{$croParser->{globals}{GenerationTime}} ) ); } # end if if( defined $croParser->{globals}{DataStart} ) { $croParser->{globals}{DataStart} = $formatter->formatDate( $lang->val( 'Text', 'O0008' ), $formatter->getDateString( @{$croParser->{globals}{DataStart}} ) ); } # end if if( defined $croParser->{globals}{DataEnd} ) { $croParser->{globals}{DataEnd} = $formatter->formatDate( $lang->val( 'Text', 'O0008' ), $formatter->getDateString( @{$croParser->{globals}{DataEnd}} ) ); } # end if foreach ( $config{reports}{File_Out}, $navigation{File_Out}, $statistics{Frame_File_Out}, $statistics{Log_File}, $statistics{Include}, $config{website}{Title}, $croParser->{header}, $croParser->{footer}, ) { next if !defined; s/%infile%/$infile/gi; # For backward compatibility s/\$\{infile\}/$infile/gi; s/\$\{([^\:\}]+)\:([^\}]+)\}/$formatter->format_value( $2, $croParser->{globals}{$1}) || "\${$1:$2}"/ge; s/\$\{([^\:\}]+)\}/$croParser->{globals}{$1} || "\${$1}"/ge; s/%([^%]+)%/$formatter->formatDate( $1, $now )/ge; } # end foreach $wadg::rm::Report::GLOBALS = $croParser->{globals}; #---------------------------------# # Begin creating the reports # #---------------------------------# # - Create initial report files my $report_writer = &openOutputFiles( $config{reports}{File_Out} ); # # Start reading input data and process according to report type # my( $report, $columns) = ( '', '', ); my @lineData; my $currentReport = new wadg::rm::Report( code => undef ); $currentReport->{token} = ''; # # Now process the rest of the reports. # while( !$croParser->eof ) { ( $report, $columns, @lineData ) = $croParser->nextLine(); # # When report changes, start new report. # if( $report ne $currentReport->{token} ) { # Finish old report # - Push summaries onto quick_summary if( defined $quick_summary && defined $config{$currentReport->{token}}{ShortName}) { my( $dType ) = split( /[\012\015]+/, $config{$currentReport->{token}}{ShortName}); my $summ = $currentReport->{_summaries}{$dType}{max}; if( defined $summ ) { $quick_summary->{_summaries}{$dType} = {} unless defined $quick_summary->{_summaries}{$dType}; $quick_summary->{_summaries}{$dType}{max} = {} unless defined $quick_summary->{_summaries}{$dType}{max}; foreach ( keys %{$summ} ) { $quick_summary->{_summaries}{$dType}{max}{$_} = $summ->{$_}; } # end foreach } # end if } # end if # - Outputs summaries and close table, close file if multi-file mode if( ($statistics{One_File} != 1) && (defined $currentReport->{writer}) ) { undef $currentReport->{REPORTSPAN}; # No duplicate dates $currentReport->end_report(); wadg::rm::Report::closeReportFile( $currentReport->{writer}, $croParser->{footer}, $currentReport->{token} ); } else { $currentReport->end_report(); } # end if # -- Skip blank lines next unless defined $report; # -- Start the new report, extensibly my $reportStyle = $config{$report}{ReportType}; $reportStyle =~ s/^\s*(.+)\s*$/$1/; if( $reportStyle eq 'Simple' ) { $currentReport = new wadg::rm::Report( token => $report, %report_defaults ); } elsif( !defined $reportStyle ) { # -- Unknown report, so notify the user and dump the report wadg::Errors::warning( 'W0001', $report ); $croParser->nextReport(); next; } elsif( "wadg::rm::Report::$reportStyle"->isa( 'wadg::rm::Report' ) ) { $currentReport = "wadg::rm::Report::$reportStyle"->new( token => $report, %report_defaults ); } elsif( $reportStyle->isa( 'wadg::rm::Report' ) ) { $currentReport = new $reportStyle( token => $report, %report_defaults ); } else { # -- Unknown style, so notify the user and dump the report wadg::Errors::warning( 'W0003', $reportStyle, $report ); $croParser->nextReport(); next; } # end if # -- If multiple report files, then start a new file here if( $statistics{One_File} != 1 ) { my( $sn ) = split /[\012\015]+/, $config{$report}{ShortName}; my $fileN = File::Spec->catfile( $config{reports}{File_Out}, "$sn" . $config{$report}{File_Extension} ); message( 'N0001', $fileN ); $report_writer = wadg::rm::Report::openReportFile( $fileN, $croParser->{header}, $report ); unless( defined $report_writer ) { wadg::Errors::error( -1, 'E0008', $fileN ); } # end unless } # end if $currentReport->{writer} = $report_writer; $currentReport->{columns} = $columns; $currentReport->{_GLOBALS} = $croParser->{globals}; # - Output new report title & description $currentReport->title(); $currentReport->description(); # -- Ouput the first table if( $currentReport->isa( 'wadg::rm::Report::GeneralSummary' ) ) { next if $currentReport->start_table(); } else { $currentReport->start_table(); # -- Good report, now set a default for Active_Column if it's not already set if( !defined $config{reports}{Active_Column} ) { $config{reports}{Active_Column} = substr( $columns, 0, 1 ); if( $config{reports}{Active_Column} eq uc($config{reports}{Active_Column}) ) { $config{reports}{Active_Column} .= '_'; } # end if } # end if } # end if } elsif( $currentReport->{columns} ne $columns ) { # When COLUMNS change, close old table and start new one. # Except in case of a General Summary unless( $currentReport->isa( 'wadg::rm::Report::GeneralSummary' ) ) { # - Need to close table $currentReport->end_table(); # - Now, start a new one $currentReport->{columns} = $columns; while( $currentReport->start_table() ) { # If this returns non-zero then the report is not defined, # so, just dump the report $croParser->nextReport(); next; } # end while } # end unless $currentReport->{columns} = $columns; } # end if # # Process each report line in the current report context. # $currentReport->process( @lineData ); } # end while #---------------------------------------# # Finish up all the processing and quit # #---------------------------------------# # - Finish the last report $currentReport->end_report(); # - Close the output file &closeOutputFile( $report_writer ); # - Quick summary reopens the output file to insert summary information $report = 'q'; if( defined $config{$report}{Rows} && defined $quick_summary ) { # Store the globals $quick_summary->{_GLOBALS} = $croParser->{globals}; # File name for single file mode is the output file my $fileN = $config{reports}{File_Out}; # -- Use Report to open new file or QuickSummary to insert in current one if( $statistics{One_File} == 0 ) { my( $sn ) = split /[\012\015]+/, $config{$report}{ShortName}; $fileN = File::Spec->catfile( $config{reports}{File_Out}, "$sn" . $config{$report}{File_Extension} ); message( 'N0001', $fileN ); $report_writer = wadg::rm::Report::openReportFile( $fileN, $croParser->{header}, $report ); } else { $report_writer = wadg::rm::Report::QuickSummary::openReportFile( $config{reports}{File_Out}, $croParser->{header}, $report ); } # end if unless( defined $report_writer ) { wadg::Errors::error( -1, 'E0008', $fileN ); } # end unless $quick_summary->{writer} = $report_writer; $quick_summary->{handle} = $report_writer->{file}; # For the columns, use the active column value and percent-of for the headers my $ac = substr($config{reports}{Active_Column}, 0, 1); $quick_summary->{columns} = 'T' . uc($ac) . lc($ac); $quick_summary->title(); $quick_summary->description(); $quick_summary->start_table(); $quick_summary->process(); $quick_summary->end_report(); if( $statistics{One_File} == 0 ) { wadg::rm::Report::closeReportFile( $quick_summary->{writer}, $croParser->{footer}, $quick_summary->{token} ); } else { wadg::rm::Report::QuickSummary::closeReportFile( $quick_summary->{writer}, $croParser->{footer}, $quick_summary->{token} ); } # end if } # end if # - Output the complete notice and date/time. $now = localtime; message( 'N0010', $now ); &finalize( 0 ); ################################################### # # # Functions # # # ################################################### # ---------------------------------------------------------- # Sub: openOutputFiles # # Args: $filename # $filename The name of the file to store reports in # # Description: Opens the output report file, frameset and # navigation file. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # Created by Corey Kaye / DNS CK # 1999Feb19 Modified to support multi-file reports JW # 1999Feb24 Added support for background images and # title font JW # 1999Nov17 Changed NavFile to support non-frames mode JW # 2000Mar21 Modified to use $filename parameter JW # ---------------------------------------------------------- sub openOutputFiles { # - This is the system-style filename my $fileName = shift; # - These are the URL style HREFs my $fileNav = ''; my $reportFile; # - Use fileparse() to get $outDir, 'cause dirname() will make # 'reports/' into '.' and we want 'reports/' my $outDir; ( undef, $outDir, undef ) = fileparse( $fileName ); # - Make outDir if it's not there if( !-e($outDir) ) { mkpath( $outDir ); } # end if # In multifile report, first page is General Summary if( $statistics{One_File} != 1 ) { message( 'N0006', $outDir ); ###*** Note that the value $config{GENERAL}{File_Extension} is coming up ### undefined here (shouldn't it default to {reports}?) so reports is ### used. If someone does [GENERAL]File_Extensions=xxx this WILL FAIL!!! $fileName = File::Spec->catfile( $fileName, 'GENERAL' . $config{reports}{File_Extension} ); } else { message( 'N0008', $fileName ); } # end if $fileName = basename( $fileName ); my $ln = $lang->val( 'Language', 'Symbol' ); # # Make index File, if doing frameset. # if( $navigation{File_Out} !~ /^(LEFT|RIGHT|TOP|BOTTOM|0)$/i ) { # - Output notices of file being created message( 'N0009', $statistics{Frame_File_Out} ); local *indexFile; $fileNav = $navigation{File_Out}; $fileNav = basename( $fileNav ); unless( open(*indexFile,">$statistics{Frame_File_Out}") ) { wadg::Errors::error( -1, 'E0006', $statistics{Frame_File_Out} ); } # end unless # Get the HTMLWriter object for this file my $iw = new wadg::HTMLWriter( -file => *indexFile, -output => $statistics{Format} ); my $norobots = ""; if( exists $statistics{No_Robots} && defined $statistics{No_Robots} && $statistics{No_Robots} == 1 ) { $norobots = $iw->meta( {name => 'ROBOTS', content => 'NOINDEX,NOFOLLOW' } ); } # end if $iw->write( $iw->doctype( {-flavor => 'Frameset'} ) ); # -flavor is ignored by HTML 3.2 $iw->write( $iw->start_html( {lang => $ln} ) ); $iw->write( $iw->head( $iw->meta( {name => 'AUTHOR', content => "This page created by $config{_INTERNAL}{'_TITLE'} $config{_INTERNAL}{'_VERSION'}"} ), $iw->title( $config{website}{Title} ), $norobots) ); my %frameset = ( cols => "22%,*" ); if( defined $statistics{Frame_Border} ) { $frameset{border} = $statistics{Frame_Border} if $statistics{Frame_Border} ne ''; $frameset{frameborder} = 'no' unless $frameset{Frame_Border}; } # end if $iw->write( $iw->start_frameset( \%frameset ) ); $iw->write( $iw->frame( {src => $fileNav, name => 'NAV', scrolling => 'AUTO', title => $lang->val( 'Text', 'O0010' ) } ) ); $iw->write( $iw->frame( {src => $fileName, name => 'CONTENT', scrolling => 'AUTO', title => $lang->val( 'Text', 'O0011' ) } ) ); $iw->write( $iw->noframes( $formatter->formatMessage( $lang->val( 'Text', 'O0001' ), $fileNav ) ) ); $iw->write( $iw->end_frameset() ); $iw->write( $iw->end_html() ); close *indexFile; } # end if # # Make Report File # If doing a single report file then create that here, otherwise # if doing multiple report files, they will be created at each report # if( $statistics{One_File} == 1 ) { $reportFile = wadg::rm::Report::openReportFile( $config{reports}{File_Out}, $croParser->{header}, 'reports' ); unless( defined $reportFile ) { wadg::Errors::error( -1, 'E0008', $config{reports}{File_Out} ); } # end unless } # end if # # Make NavMenu # Get the content and, if doing frames then store that into a # file, otherwise just keep it for each report table # # Get the HTMLWriter object for this file my $nw = new wadg::HTMLWriter( -output => $statistics{Format}, -stylesheet => $navigation{_styles} ); %{$navigation{website}} = %{$config{website}}; $navigation{reports_File_Out} = $config{reports}{File_Out}; $navigation{reports_File_Extension} = $config{reports}{File_Extension}; $navigation{One_File} = $statistics{One_File}; $navigation{Summary_Rows} = $config{q}{Rows} unless $config{reports}{File_Out} eq '-'; my $navmenu = wadg::rm::Report::createNavMenu( $croParser, $nw, \%navigation ); if( $navigation{File_Out} !~ /^(LEFT|RIGHT|TOP|BOTTOM|0)$/i ) { # - Output notices of file being created message( 'N0007', $navigation{File_Out} ); # -- Open the output file and write this all out. local *navFile; unless( open(*navFile,">$navigation{File_Out}") ) { wadg::Errors::error( -1, 'E0007', $navigation{File_Out} ); } # end unless $nw->{file} = *navFile; my $cs = ''; if( defined $lang->val( 'Language', 'CharacterSet' ) ) { $cs = $nw->meta( {'http-equiv' => 'Content-Type', content => 'text/html; charset=' . $lang->val( 'Language', 'CharacterSet' ) } ); } # end if my $norobots = ''; if( exists $statistics{No_Robots} && defined $statistics{No_Robots} && $statistics{No_Robots} == 1 ) { $norobots = $nw->meta( {name => 'ROBOTS', content => 'NOINDEX,NOFOLLOW' } ); } # end if $nw->write( $nw->doctype( {-flavor => 'Transitional'} ) ); # -flavor is ignored by HTML 3.2 $nw->write( $nw->start_html( { lang => $ln} ) ); my $stylesheet = ''; if( exists $navigation{Stylesheet} && defined $navigation{Stylesheet} && $navigation{Stylesheet} =~ /\w+\s*\{\s*\w+\s*:.*}/ ) { $stylesheet = $nw->style( {type => 'text/css'}, $navigation{Stylesheet} ); } elsif( exists $navigation{Stylesheet} && defined $navigation{Stylesheet} && $navigation{Stylesheet} ) { $stylesheet = $nw->link( { type => 'text/css', href => $navigation{Stylesheet}, rel => 'STYLESHEET' } ); } # end if $nw->write( $nw->head( $cs, $nw->meta( {name => 'AUTHOR', content => "This page created by $config{_INTERNAL}{'_TITLE'} $config{_INTERNAL}{'_VERSION'}"} ), $norobots, $nw->title( $lang->val( 'Text', 'O0010' ) ), $stylesheet, ) ); $nw->write( $nw->body( $navmenu ) ); $nw->write( $nw->end_html() ); close *navFile; } else { $config{reports}{Navigation_Writer} = $nw; $config{reports}{Navigation_Content} = $navmenu; $config{reports}{Navigation_Position} = uc($navigation{File_Out}); $config{reports}{Navigation_Background} = $navigation{Background}; $config{reports}{Navigation_BG_Color} = $navigation{BG_Color}; } # end if # # Copy logos to destination directory, if not using a logo file # and not storing logos in a central place. # if( !$config{website}{Company_Logo} && !$config{reports}{Image_Dir} ) { copy( File::Spec->catfile( $RealBin, 'rmlogo.png' ), File::Spec->catfile( $outDir, 'rmlogo.png' ) ); copy( File::Spec->catfile( $RealBin, 'analogo.png' ), File::Spec->catfile( $outDir, 'analogo.png' ) ); } # end if return $reportFile } # end openOutputFiles # ---------------------------------------------------------- # Sub: closeOutputFile # # Args: $reportFile # $reportFile A handle for the file to be closed # # Description: Closes the report file at the end of # single file mode. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # Created by Jeremy Wadsack / WADG JW # 2000Oct18 Fixed file corruption bug JW # 2001Feb06 Fixed bug in closing of output file JW # ---------------------------------------------------------- sub closeOutputFile { my $reportFile = shift; return wadg::rm::Report::closeReportFile( $reportFile, $croParser->{footer}, 'reports' ); } # end closeOutputFile # ---------------------------------------------------------- # Sub: message # # Args: $code, @args # $code A code to look up in the Errors section of the language file # @args A set of arguments to send into the $code's format # # Description: Output's a message to the screen or logfile # based on the verbosity settings # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 1999Apr30 Created messaging function JW # 1999Sep02 Added support for logfiles JW # 1999Oct14 Added Verbosity control JW # 2000Apr25 Made suitable for an exception handler JW # 2000Jul06 Moved header and prefix back here JW # 2001Jan04 Forced scalar context for $lang-val() JW # 04Feb2003 Added 'WE' for pre-processing stage JW # ---------------------------------------------------------- # # DANGER WILL ROGERS: This is probably a lot more than an # error handler should do.... # sub message { my($code, @args) = @_; # # Before any settings are processed, we have to assume warnings and errors # are good to show # $statistics{Verbose} = 'WE' unless exists $statistics{Verbose}; # # Now write the message to the selected handle (log file or stderr) # if( index( $statistics{Verbose}, substr($code, 0, 1) ) != -1 ) { my $msg = $lang->val( 'Errors', $code ); $msg = $formatter->formatMessage( $msg, @args ); $msg = "$PREFIX$msg\n"; if( defined $HEADER && !$HEADER_USED ) { $msg = $HEADER . $msg; $HEADER_USED = 1; } # end if print $msg; } # end if } # end message # ---------------------------------------------------------- # Sub: finalize # # Args: errorlevel, [@message] # errorlevel An error code to return the the shell (if applicable) # @message Optional list to send to &message before dying # # Description: A fatal exception exception handler that will # clean up the system and exit. Will return an error state # to the shell, where applicable. Will print a message before # exiting if provided. Will exit soft on Macs unless logging # or statistics_Always_Quit is set. Otherwise always exists hard. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 1999 Created function and debugged Mac end JW # 2000APR25 Moved messaging inside funtion and made into # a fatal exception handler JW # 27Feb2003 Added browser message for CGI mode JW # ---------------------------------------------------------- # # WARNING: See note under &message above # sub finalize { my( $arg, $code, @msg ) = @_; # - If there's a message parm, do that first &message( $code, @msg ) if $code; # - If there's a log file, close it if( $statistics{Log_File} ) { close( $logFile ); } # end if # - If running on a Mac then process hard exit if( $^O eq 'MacOS' ) { if( defined $statistics{Log_File} || defined $statistics{Always_Quit} ) { MacPerl::Quit( 1 ); } # end if } # end if # # If we're in CGI mode then send something to the browser # Except ignore last finalize(0) because that's just an 'exit' # if( exists $config{_INTERNAL}{_CGI} && defined $code ) { my $T = $lang->val( 'Errors', 'E0018' ); my $m = $lang->val( 'Errors', 'E0019' ); print STDOUT qq[ $T

      $T

      $m

      [$arg] [$code] @msg

      ]; } # end if exit( $arg ); } # end finalize rmagic-2.21/rmagic.sample0100644000175000010010000000141607642525574014347 0ustar kilroyNone# # Sample Report Magic settings file. # For details on commands see the documentations, starting at docs/index.html # or see the comments in the rmagic.ini file in each language directory # (e.g lang/en/rmagic.ini) # [statistics] File_In = sample.dat Frame_File_Out = index.html Format= XHTML 1.0 [reports] Active_Column=R File_Out = reports/ Title_Font = Helvetica,Arial,sans-serif Title_BG_Color = #000000 Title_Font_Color = #FFCC00 Data_Font = Helvetica,Arial,sans-serif Data_Color_1 = #D0FFD0 Data_Color_2 = #F0FFF0 Data_Total_Color = #FFCC66 Data_Header_Color = #9999CC [QUICK] Rows = ALL [graphs] BG_Color = #FFFFCC [navigation] File_Out = nav.html [website] Title = Web Statistics for my website Webmaster = webmaster@website.com Base_URL = http://www.website.com rmagic-2.21/rmform.html0100644000175000010010000001441307642525574014073 0ustar kilroyNone Report Magic Form Access

      Report Magic Form Access


      Select which reports to show

      [On] [Off] General Summary
      [On] [Off] Monthly Report
      [On] [Off] Weekly Report
      [On] [Off] Daily Summary
      [On] [Off] Daily Report
      [On] [Off] Hourly Summary
      [On] [Off] Domain Report
      [On] [Off] Organisation Report
      [On] [Off] Directory Report
      [On] [Off] File Type Report
      [On] [Off] Request Report
      [On] [Off] File Size Report
      [On] [Off] Referrer Report
      [On] [Off] Search Query Report
      [On] [Off] Search Word Report
      [On] [Off] Browser Summary
      [On] [Off] Operating System Report
      [On] [Off] Status Code Report

      Select colors for the reports

      Background of report pages:

      Color of report title text:

      Background of report title text:

      Select the language for the reports

      Language:



      rmagic-2.21/rmlogo.png0100644000175000010010000000722107642525574013707 0ustar kilroyNonePNG  IHDR;@PLTE+!)1!  .1- 19BJVA N=L & 0 !(=!!D'H)R 5 D *?;L321C-?,2=B)R+W1c1k+Z1k\5-`>=Z9k9s9{B^9w:o 8m8cksZckskZ ^o ocm)c1^{{{{bexs \nx!!s!! !,l!)).j--{))#)))11)?]39sBB{)V^11??55@CVwlD '%!!)&-)))1)))1)-)BB{BBJJB{!E'JB!J!J)RJ)VV%]1{1!1#7^E593Jm9L6)1-1)11199)11111O(TRSvMNPR_Py^^hjzE_e_x{psR!Z!R)Z)R!Z!R)Z)ZZ!Z)c!c)c%c!g)Z1c1g-o/oAqAƯƵƵν֭ƵƲӵ޽ƽν޽}utRNSS% @IDATxڍL[j:Q&mB0`[!RlCTm["!(eJ6&%IHve[@$-X/[{`#B44jit)m3l@6g9o>Bys{}R,?WIG;#>ol%uN/|y#Kz#FPC~>Տc3<3MEPLML]KW/VOv쿯UWg2kL&qXrvE"P.௣%kk1ךkj{J*Jp8T* C˥`(?Xef5Dup3tV+D -]^|#[^eÃjkٙ_/^/H2Q~ KmWLNOO]p\$U", F# n'llh:8stbDBT(E_njINDP36W\W|`wϗjEZ!Z31lP~ocmMMdZ \ıܖЋFc'؄#6OTJMN9]\h$\c2aو\95;}ghkz:NH3 ťZ 7FYP1Wx] S U UUMN/*Bi 0j0cL5Vc :.vKKZ\ZC+ D|ؠQAU_o,6è JJ).U*!υֻE9Mƻ`+z}.:˥ty$$-Y/xV,ƿ| SR`^o|@y8dPgSTƆܪj,,rbZ-I%pdث* rBT ΢l>&Fp:Tb9ՎolXl6gIr'(vhÆ<0auD,plJT/7Թ@ t!vb#E8qP@5R)P°FAM K<p?XZ{\/VEJVT(ğȞc~7))wf`cF^k EY:m-A$[#`cWoww[oX*Y9 Cnz֫H/49673~TOjhN #kJ+xb" Ry鸑j?;-g>0W *m޴~GfS#u >F"o&~\9zNV]>< k("#gI6qoa--^ Cх,eoD~f$lIENDB`rmagic-2.21/sample.dat0100644000175000010010000003331507642525574013660 0ustar kilroyNonex VE analog 4.1 x HN [my organisation] x PS 2000 08 24 10 27 x FR 1999 12 31 10 11 x LR 2000 01 04 13 11 x SR 46 x PR 46 x NF 2 x NH 2 x BT 56764 m RP 14 14 1999 12 m RP 32 32 2000 01 W RP 24 24 1999 12 26 W RP 22 22 2000 01 02 D RP 14 14 1999 12 31 D RP 10 10 2000 01 01 D RP 11 11 2000 01 02 D RP 10 10 2000 01 03 D RP 1 1 2000 01 04 d RP 11 11 Sun d RP 10 10 Mon d RP 1 1 Tue d RP 0 0 Wed d RP 0 0 Thu d RP 14 14 Fri d RP 10 10 Sat H RP 0 0 2000 01 01 14 H RP 0 0 2000 01 01 15 H RP 0 0 2000 01 01 16 H RP 0 0 2000 01 01 17 H RP 0 0 2000 01 01 18 H RP 0 0 2000 01 01 19 H RP 0 0 2000 01 01 20 H RP 0 0 2000 01 01 21 H RP 0 0 2000 01 01 22 H RP 0 0 2000 01 01 23 H RP 0 0 2000 01 02 00 H RP 0 0 2000 01 02 01 H RP 0 0 2000 01 02 02 H RP 0 0 2000 01 02 03 H RP 0 0 2000 01 02 04 H RP 0 0 2000 01 02 05 H RP 0 0 2000 01 02 06 H RP 0 0 2000 01 02 07 H RP 0 0 2000 01 02 08 H RP 0 0 2000 01 02 09 H RP 1 1 2000 01 02 10 H RP 1 1 2000 01 02 11 H RP 1 1 2000 01 02 12 H RP 0 0 2000 01 02 13 H RP 1 1 2000 01 02 14 H RP 1 1 2000 01 02 15 H RP 0 0 2000 01 02 16 H RP 1 1 2000 01 02 17 H RP 1 1 2000 01 02 18 H RP 0 0 2000 01 02 19 H RP 1 1 2000 01 02 20 H RP 1 1 2000 01 02 21 H RP 1 1 2000 01 02 22 H RP 1 1 2000 01 02 23 H RP 0 0 2000 01 03 00 H RP 0 0 2000 01 03 01 H RP 1 1 2000 01 03 02 H RP 1 1 2000 01 03 03 H RP 1 1 2000 01 03 04 H RP 1 1 2000 01 03 05 H RP 1 1 2000 01 03 06 H RP 1 1 2000 01 03 07 H RP 1 1 2000 01 03 08 H RP 1 1 2000 01 03 09 H RP 1 1 2000 01 03 10 H RP 0 0 2000 01 03 11 H RP 1 1 2000 01 03 12 H RP 0 0 2000 01 03 13 H RP 0 0 2000 01 03 14 H RP 0 0 2000 01 03 15 H RP 0 0 2000 01 03 16 H RP 0 0 2000 01 03 17 H RP 0 0 2000 01 03 18 H RP 0 0 2000 01 03 19 H RP 0 0 2000 01 03 20 H RP 0 0 2000 01 03 21 H RP 0 0 2000 01 03 22 H RP 0 0 2000 01 03 23 H RP 0 0 2000 01 04 00 H RP 0 0 2000 01 04 01 H RP 0 0 2000 01 04 02 H RP 0 0 2000 01 04 03 H RP 0 0 2000 01 04 04 H RP 0 0 2000 01 04 05 H RP 0 0 2000 01 04 06 H RP 0 0 2000 01 04 07 H RP 0 0 2000 01 04 08 H RP 0 0 2000 01 04 09 H RP 0 0 2000 01 04 10 H RP 0 0 2000 01 04 11 H RP 0 0 2000 01 04 12 H RP 1 1 2000 01 04 13 h RP 0 0 0 h RP 0 0 1 h RP 2 2 2 h RP 2 2 3 h RP 2 2 4 h RP 2 2 5 h RP 2 2 6 h RP 2 2 7 h RP 2 2 8 h RP 2 2 9 h RP 6 6 10 h RP 3 3 11 h RP 4 4 12 h RP 1 1 13 h RP 2 2 14 h RP 2 2 15 h RP 0 0 16 h RP 2 2 17 h RP 2 2 18 h RP 0 0 19 h RP 2 2 20 h RP 2 2 21 h RP 2 2 22 h RP 2 2 23 4 RP 0 0 2000 01 03 13 15 4 RP 0 0 2000 01 03 13 30 4 RP 0 0 2000 01 03 13 45 4 RP 0 0 2000 01 03 14 00 4 RP 0 0 2000 01 03 14 15 4 RP 0 0 2000 01 03 14 30 4 RP 0 0 2000 01 03 14 45 4 RP 0 0 2000 01 03 15 00 4 RP 0 0 2000 01 03 15 15 4 RP 0 0 2000 01 03 15 30 4 RP 0 0 2000 01 03 15 45 4 RP 0 0 2000 01 03 16 00 4 RP 0 0 2000 01 03 16 15 4 RP 0 0 2000 01 03 16 30 4 RP 0 0 2000 01 03 16 45 4 RP 0 0 2000 01 03 17 00 4 RP 0 0 2000 01 03 17 15 4 RP 0 0 2000 01 03 17 30 4 RP 0 0 2000 01 03 17 45 4 RP 0 0 2000 01 03 18 00 4 RP 0 0 2000 01 03 18 15 4 RP 0 0 2000 01 03 18 30 4 RP 0 0 2000 01 03 18 45 4 RP 0 0 2000 01 03 19 00 4 RP 0 0 2000 01 03 19 15 4 RP 0 0 2000 01 03 19 30 4 RP 0 0 2000 01 03 19 45 4 RP 0 0 2000 01 03 20 00 4 RP 0 0 2000 01 03 20 15 4 RP 0 0 2000 01 03 20 30 4 RP 0 0 2000 01 03 20 45 4 RP 0 0 2000 01 03 21 00 4 RP 0 0 2000 01 03 21 15 4 RP 0 0 2000 01 03 21 30 4 RP 0 0 2000 01 03 21 45 4 RP 0 0 2000 01 03 22 00 4 RP 0 0 2000 01 03 22 15 4 RP 0 0 2000 01 03 22 30 4 RP 0 0 2000 01 03 22 45 4 RP 0 0 2000 01 03 23 00 4 RP 0 0 2000 01 03 23 15 4 RP 0 0 2000 01 03 23 30 4 RP 0 0 2000 01 03 23 45 4 RP 0 0 2000 01 04 00 00 4 RP 0 0 2000 01 04 00 15 4 RP 0 0 2000 01 04 00 30 4 RP 0 0 2000 01 04 00 45 4 RP 0 0 2000 01 04 01 00 4 RP 0 0 2000 01 04 01 15 4 RP 0 0 2000 01 04 01 30 4 RP 0 0 2000 01 04 01 45 4 RP 0 0 2000 01 04 02 00 4 RP 0 0 2000 01 04 02 15 4 RP 0 0 2000 01 04 02 30 4 RP 0 0 2000 01 04 02 45 4 RP 0 0 2000 01 04 03 00 4 RP 0 0 2000 01 04 03 15 4 RP 0 0 2000 01 04 03 30 4 RP 0 0 2000 01 04 03 45 4 RP 0 0 2000 01 04 04 00 4 RP 0 0 2000 01 04 04 15 4 RP 0 0 2000 01 04 04 30 4 RP 0 0 2000 01 04 04 45 4 RP 0 0 2000 01 04 05 00 4 RP 0 0 2000 01 04 05 15 4 RP 0 0 2000 01 04 05 30 4 RP 0 0 2000 01 04 05 45 4 RP 0 0 2000 01 04 06 00 4 RP 0 0 2000 01 04 06 15 4 RP 0 0 2000 01 04 06 30 4 RP 0 0 2000 01 04 06 45 4 RP 0 0 2000 01 04 07 00 4 RP 0 0 2000 01 04 07 15 4 RP 0 0 2000 01 04 07 30 4 RP 0 0 2000 01 04 07 45 4 RP 0 0 2000 01 04 08 00 4 RP 0 0 2000 01 04 08 15 4 RP 0 0 2000 01 04 08 30 4 RP 0 0 2000 01 04 08 45 4 RP 0 0 2000 01 04 09 00 4 RP 0 0 2000 01 04 09 15 4 RP 0 0 2000 01 04 09 30 4 RP 0 0 2000 01 04 09 45 4 RP 0 0 2000 01 04 10 00 4 RP 0 0 2000 01 04 10 15 4 RP 0 0 2000 01 04 10 30 4 RP 0 0 2000 01 04 10 45 4 RP 0 0 2000 01 04 11 00 4 RP 0 0 2000 01 04 11 15 4 RP 0 0 2000 01 04 11 30 4 RP 0 0 2000 01 04 11 45 4 RP 0 0 2000 01 04 12 00 4 RP 0 0 2000 01 04 12 15 4 RP 0 0 2000 01 04 12 30 4 RP 0 0 2000 01 04 12 45 4 RP 1 1 2000 01 04 13 00 5 RP 0 0 2000 01 03 13 15 5 RP 0 0 2000 01 03 13 20 5 RP 0 0 2000 01 03 13 25 5 RP 0 0 2000 01 03 13 30 5 RP 0 0 2000 01 03 13 35 5 RP 0 0 2000 01 03 13 40 5 RP 0 0 2000 01 03 13 45 5 RP 0 0 2000 01 03 13 50 5 RP 0 0 2000 01 03 13 55 5 RP 0 0 2000 01 03 14 00 5 RP 0 0 2000 01 03 14 05 5 RP 0 0 2000 01 03 14 10 5 RP 0 0 2000 01 03 14 15 5 RP 0 0 2000 01 03 14 20 5 RP 0 0 2000 01 03 14 25 5 RP 0 0 2000 01 03 14 30 5 RP 0 0 2000 01 03 14 35 5 RP 0 0 2000 01 03 14 40 5 RP 0 0 2000 01 03 14 45 5 RP 0 0 2000 01 03 14 50 5 RP 0 0 2000 01 03 14 55 5 RP 0 0 2000 01 03 15 00 5 RP 0 0 2000 01 03 15 05 5 RP 0 0 2000 01 03 15 10 5 RP 0 0 2000 01 03 15 15 5 RP 0 0 2000 01 03 15 20 5 RP 0 0 2000 01 03 15 25 5 RP 0 0 2000 01 03 15 30 5 RP 0 0 2000 01 03 15 35 5 RP 0 0 2000 01 03 15 40 5 RP 0 0 2000 01 03 15 45 5 RP 0 0 2000 01 03 15 50 5 RP 0 0 2000 01 03 15 55 5 RP 0 0 2000 01 03 16 00 5 RP 0 0 2000 01 03 16 05 5 RP 0 0 2000 01 03 16 10 5 RP 0 0 2000 01 03 16 15 5 RP 0 0 2000 01 03 16 20 5 RP 0 0 2000 01 03 16 25 5 RP 0 0 2000 01 03 16 30 5 RP 0 0 2000 01 03 16 35 5 RP 0 0 2000 01 03 16 40 5 RP 0 0 2000 01 03 16 45 5 RP 0 0 2000 01 03 16 50 5 RP 0 0 2000 01 03 16 55 5 RP 0 0 2000 01 03 17 00 5 RP 0 0 2000 01 03 17 05 5 RP 0 0 2000 01 03 17 10 5 RP 0 0 2000 01 03 17 15 5 RP 0 0 2000 01 03 17 20 5 RP 0 0 2000 01 03 17 25 5 RP 0 0 2000 01 03 17 30 5 RP 0 0 2000 01 03 17 35 5 RP 0 0 2000 01 03 17 40 5 RP 0 0 2000 01 03 17 45 5 RP 0 0 2000 01 03 17 50 5 RP 0 0 2000 01 03 17 55 5 RP 0 0 2000 01 03 18 00 5 RP 0 0 2000 01 03 18 05 5 RP 0 0 2000 01 03 18 10 5 RP 0 0 2000 01 03 18 15 5 RP 0 0 2000 01 03 18 20 5 RP 0 0 2000 01 03 18 25 5 RP 0 0 2000 01 03 18 30 5 RP 0 0 2000 01 03 18 35 5 RP 0 0 2000 01 03 18 40 5 RP 0 0 2000 01 03 18 45 5 RP 0 0 2000 01 03 18 50 5 RP 0 0 2000 01 03 18 55 5 RP 0 0 2000 01 03 19 00 5 RP 0 0 2000 01 03 19 05 5 RP 0 0 2000 01 03 19 10 5 RP 0 0 2000 01 03 19 15 5 RP 0 0 2000 01 03 19 20 5 RP 0 0 2000 01 03 19 25 5 RP 0 0 2000 01 03 19 30 5 RP 0 0 2000 01 03 19 35 5 RP 0 0 2000 01 03 19 40 5 RP 0 0 2000 01 03 19 45 5 RP 0 0 2000 01 03 19 50 5 RP 0 0 2000 01 03 19 55 5 RP 0 0 2000 01 03 20 00 5 RP 0 0 2000 01 03 20 05 5 RP 0 0 2000 01 03 20 10 5 RP 0 0 2000 01 03 20 15 5 RP 0 0 2000 01 03 20 20 5 RP 0 0 2000 01 03 20 25 5 RP 0 0 2000 01 03 20 30 5 RP 0 0 2000 01 03 20 35 5 RP 0 0 2000 01 03 20 40 5 RP 0 0 2000 01 03 20 45 5 RP 0 0 2000 01 03 20 50 5 RP 0 0 2000 01 03 20 55 5 RP 0 0 2000 01 03 21 00 5 RP 0 0 2000 01 03 21 05 5 RP 0 0 2000 01 03 21 10 5 RP 0 0 2000 01 03 21 15 5 RP 0 0 2000 01 03 21 20 5 RP 0 0 2000 01 03 21 25 5 RP 0 0 2000 01 03 21 30 5 RP 0 0 2000 01 03 21 35 5 RP 0 0 2000 01 03 21 40 5 RP 0 0 2000 01 03 21 45 5 RP 0 0 2000 01 03 21 50 5 RP 0 0 2000 01 03 21 55 5 RP 0 0 2000 01 03 22 00 5 RP 0 0 2000 01 03 22 05 5 RP 0 0 2000 01 03 22 10 5 RP 0 0 2000 01 03 22 15 5 RP 0 0 2000 01 03 22 20 5 RP 0 0 2000 01 03 22 25 5 RP 0 0 2000 01 03 22 30 5 RP 0 0 2000 01 03 22 35 5 RP 0 0 2000 01 03 22 40 5 RP 0 0 2000 01 03 22 45 5 RP 0 0 2000 01 03 22 50 5 RP 0 0 2000 01 03 22 55 5 RP 0 0 2000 01 03 23 00 5 RP 0 0 2000 01 03 23 05 5 RP 0 0 2000 01 03 23 10 5 RP 0 0 2000 01 03 23 15 5 RP 0 0 2000 01 03 23 20 5 RP 0 0 2000 01 03 23 25 5 RP 0 0 2000 01 03 23 30 5 RP 0 0 2000 01 03 23 35 5 RP 0 0 2000 01 03 23 40 5 RP 0 0 2000 01 03 23 45 5 RP 0 0 2000 01 03 23 50 5 RP 0 0 2000 01 03 23 55 5 RP 0 0 2000 01 04 00 00 5 RP 0 0 2000 01 04 00 05 5 RP 0 0 2000 01 04 00 10 5 RP 0 0 2000 01 04 00 15 5 RP 0 0 2000 01 04 00 20 5 RP 0 0 2000 01 04 00 25 5 RP 0 0 2000 01 04 00 30 5 RP 0 0 2000 01 04 00 35 5 RP 0 0 2000 01 04 00 40 5 RP 0 0 2000 01 04 00 45 5 RP 0 0 2000 01 04 00 50 5 RP 0 0 2000 01 04 00 55 5 RP 0 0 2000 01 04 01 00 5 RP 0 0 2000 01 04 01 05 5 RP 0 0 2000 01 04 01 10 5 RP 0 0 2000 01 04 01 15 5 RP 0 0 2000 01 04 01 20 5 RP 0 0 2000 01 04 01 25 5 RP 0 0 2000 01 04 01 30 5 RP 0 0 2000 01 04 01 35 5 RP 0 0 2000 01 04 01 40 5 RP 0 0 2000 01 04 01 45 5 RP 0 0 2000 01 04 01 50 5 RP 0 0 2000 01 04 01 55 5 RP 0 0 2000 01 04 02 00 5 RP 0 0 2000 01 04 02 05 5 RP 0 0 2000 01 04 02 10 5 RP 0 0 2000 01 04 02 15 5 RP 0 0 2000 01 04 02 20 5 RP 0 0 2000 01 04 02 25 5 RP 0 0 2000 01 04 02 30 5 RP 0 0 2000 01 04 02 35 5 RP 0 0 2000 01 04 02 40 5 RP 0 0 2000 01 04 02 45 5 RP 0 0 2000 01 04 02 50 5 RP 0 0 2000 01 04 02 55 5 RP 0 0 2000 01 04 03 00 5 RP 0 0 2000 01 04 03 05 5 RP 0 0 2000 01 04 03 10 5 RP 0 0 2000 01 04 03 15 5 RP 0 0 2000 01 04 03 20 5 RP 0 0 2000 01 04 03 25 5 RP 0 0 2000 01 04 03 30 5 RP 0 0 2000 01 04 03 35 5 RP 0 0 2000 01 04 03 40 5 RP 0 0 2000 01 04 03 45 5 RP 0 0 2000 01 04 03 50 5 RP 0 0 2000 01 04 03 55 5 RP 0 0 2000 01 04 04 00 5 RP 0 0 2000 01 04 04 05 5 RP 0 0 2000 01 04 04 10 5 RP 0 0 2000 01 04 04 15 5 RP 0 0 2000 01 04 04 20 5 RP 0 0 2000 01 04 04 25 5 RP 0 0 2000 01 04 04 30 5 RP 0 0 2000 01 04 04 35 5 RP 0 0 2000 01 04 04 40 5 RP 0 0 2000 01 04 04 45 5 RP 0 0 2000 01 04 04 50 5 RP 0 0 2000 01 04 04 55 5 RP 0 0 2000 01 04 05 00 5 RP 0 0 2000 01 04 05 05 5 RP 0 0 2000 01 04 05 10 5 RP 0 0 2000 01 04 05 15 5 RP 0 0 2000 01 04 05 20 5 RP 0 0 2000 01 04 05 25 5 RP 0 0 2000 01 04 05 30 5 RP 0 0 2000 01 04 05 35 5 RP 0 0 2000 01 04 05 40 5 RP 0 0 2000 01 04 05 45 5 RP 0 0 2000 01 04 05 50 5 RP 0 0 2000 01 04 05 55 5 RP 0 0 2000 01 04 06 00 5 RP 0 0 2000 01 04 06 05 5 RP 0 0 2000 01 04 06 10 5 RP 0 0 2000 01 04 06 15 5 RP 0 0 2000 01 04 06 20 5 RP 0 0 2000 01 04 06 25 5 RP 0 0 2000 01 04 06 30 5 RP 0 0 2000 01 04 06 35 5 RP 0 0 2000 01 04 06 40 5 RP 0 0 2000 01 04 06 45 5 RP 0 0 2000 01 04 06 50 5 RP 0 0 2000 01 04 06 55 5 RP 0 0 2000 01 04 07 00 5 RP 0 0 2000 01 04 07 05 5 RP 0 0 2000 01 04 07 10 5 RP 0 0 2000 01 04 07 15 5 RP 0 0 2000 01 04 07 20 5 RP 0 0 2000 01 04 07 25 5 RP 0 0 2000 01 04 07 30 5 RP 0 0 2000 01 04 07 35 5 RP 0 0 2000 01 04 07 40 5 RP 0 0 2000 01 04 07 45 5 RP 0 0 2000 01 04 07 50 5 RP 0 0 2000 01 04 07 55 5 RP 0 0 2000 01 04 08 00 5 RP 0 0 2000 01 04 08 05 5 RP 0 0 2000 01 04 08 10 5 RP 0 0 2000 01 04 08 15 5 RP 0 0 2000 01 04 08 20 5 RP 0 0 2000 01 04 08 25 5 RP 0 0 2000 01 04 08 30 5 RP 0 0 2000 01 04 08 35 5 RP 0 0 2000 01 04 08 40 5 RP 0 0 2000 01 04 08 45 5 RP 0 0 2000 01 04 08 50 5 RP 0 0 2000 01 04 08 55 5 RP 0 0 2000 01 04 09 00 5 RP 0 0 2000 01 04 09 05 5 RP 0 0 2000 01 04 09 10 5 RP 0 0 2000 01 04 09 15 5 RP 0 0 2000 01 04 09 20 5 RP 0 0 2000 01 04 09 25 5 RP 0 0 2000 01 04 09 30 5 RP 0 0 2000 01 04 09 35 5 RP 0 0 2000 01 04 09 40 5 RP 0 0 2000 01 04 09 45 5 RP 0 0 2000 01 04 09 50 5 RP 0 0 2000 01 04 09 55 5 RP 0 0 2000 01 04 10 00 5 RP 0 0 2000 01 04 10 05 5 RP 0 0 2000 01 04 10 10 5 RP 0 0 2000 01 04 10 15 5 RP 0 0 2000 01 04 10 20 5 RP 0 0 2000 01 04 10 25 5 RP 0 0 2000 01 04 10 30 5 RP 0 0 2000 01 04 10 35 5 RP 0 0 2000 01 04 10 40 5 RP 0 0 2000 01 04 10 45 5 RP 0 0 2000 01 04 10 50 5 RP 0 0 2000 01 04 10 55 5 RP 0 0 2000 01 04 11 00 5 RP 0 0 2000 01 04 11 05 5 RP 0 0 2000 01 04 11 10 5 RP 0 0 2000 01 04 11 15 5 RP 0 0 2000 01 04 11 20 5 RP 0 0 2000 01 04 11 25 5 RP 0 0 2000 01 04 11 30 5 RP 0 0 2000 01 04 11 35 5 RP 0 0 2000 01 04 11 40 5 RP 0 0 2000 01 04 11 45 5 RP 0 0 2000 01 04 11 50 5 RP 0 0 2000 01 04 11 55 5 RP 0 0 2000 01 04 12 00 5 RP 0 0 2000 01 04 12 05 5 RP 0 0 2000 01 04 12 10 5 RP 0 0 2000 01 04 12 15 5 RP 0 0 2000 01 04 12 20 5 RP 0 0 2000 01 04 12 25 5 RP 0 0 2000 01 04 12 30 5 RP 0 0 2000 01 04 12 35 5 RP 0 0 2000 01 04 12 40 5 RP 0 0 2000 01 04 12 45 5 RP 0 0 2000 01 04 12 50 5 RP 0 0 2000 01 04 12 55 5 RP 0 0 2000 01 04 13 00 5 RP 0 0 2000 01 04 13 05 5 RP 1 1 2000 01 04 13 10 o f 0B b o lRb 1 43 93.478 .uk (United Kingdom) o lRb 1 3 6.522 [unresolved numerical addresses] Z f -20R r Z lRb 1 43 93.478 cam.ac.uk Z lRb 1 3 6.522 [unresolved numerical addresses] S f -20R a S Rb 3 6.522 212.240.10.1 S Rb 43 93.478 statslab.cam.ac.uk f f -20R r f lR 1 32 http://google.com/search f lR 2 32 http://google.com/search?q=sample search f lR 1 14 http://referrer.com/ s f -20R r s lR 1 32 http://google.com/ s lR 1 14 http://referrer.com/ N f -20R r N R 32 sample search n f -20R r n R 32 search n R 32 sample B f -20R r B R 24 Mozilla/4.0 (compatible; MSIE 4.01; Windows 98) B R 22 Mozilla/4.0 [en] (X11; I; Linux) b f -20R r b lR 1 24 MSIE b lR 1 22 Netscape p f -20R r p lNR 1 1 24 Windows p lNR 2 24 Windows 98 p lNR 1 2 22 Unix p lNR 2 22 Linux c f -20R a c R 46 200 OK z Rb 0 0.000 0 z Rb 0 0.000 1b- 10b z Rb 0 0.000 11b- 100b z Rb 0 0.000 101b- 1kb z Rb 46 100.000 1kb- 10kb t f -20B b t lRb 1 46 100.000 .html [Hypertext Markup Language] i f -20B b i lRb 1 46 100.000 [root directory] r f -20R r r lRbD 1 25 54.348 2000 01 04 13 11 /sample.html r lRbD 1 21 45.652 2000 01 03 12 11 /sample2.html rmagic-2.21/samples/0040755000175000010010000000000007642616036013341 5ustar kilroyNonermagic-2.21/samples/all-settings-ca.ini0100644000175000010010000002152107642525574017035 0ustar kilroyNone# # ---------------------------------------------------- # Arxiu de variables per a Report Magic per Analog 2.0 # ---------------------------------------------------- # # Aquest arxiu cont tots els ajustos per a Report Magic. # Molts tenen valors simples, i alguns estan comentats. # (Els comentaris sn les lnies que comencen amb # i s'ignoren a Report # Magic). # Cal canviar els valors segons la informaci del vostre lloc web. # Com a mnim cal canviar els segents valors: # File_In = report.dat # Active_Column = R # Webmaster = webmaster@domini.com # Base_URL = http://www.domini.com # # ---------------------------------------------- # USUARIS DE MAC: la ruta de sortida s en format UNIX # (que funciona en sistemes Unix i Windows). Per tal que funcioni en el # mn Macintosh, heu de canviar la ruta emprant ':'. # File_Out = :reports: # Si empreu l'imatge Image_Ball, heu de fer servir especificacions de ruta # estil UNIX, ja que s l'imatge de les pgines web: # Image_Ball = images/bullet.gif # # ---------------------------------------------- # # ----------------------- Estadstiques -------------------------- # Aquests valors descriuen la generaci dels informes estadstics: # File_In s l'arxiu de sortida en format ordinador d'Analog. # Pot ser el smbol "-" per designar l'entrada standard o un pipe. # Frame_File_Out (opcional) s el nom i la localitzaci de la pgina del # conjunt de marcs. Si no es declara pren el valor per defecte # 'index.html', a menys que no s'utilitzi [navigation]File_Out. En aquest # cas no es genera el conjunt de marcs. # No_Robots (opcional) si s'assigna valor 1 afegeix una META marcadors a cada # arxiu de l'informe per evitar que els robots l'indexin. # Log_File (opcional) serveix per determinar el nom de l'ariux en que Report Magic # guardar els missatges del log. # Always_Quit (opcional, noms Mac) si s'assigna valor 1 obligar Report Magic # a sortit, fins i tot si hi ha errors. Per emprar amb la utilitat 'cron'. # Language (opcional) especifica l'idioma que Report Magic ha d'emprar per generar els # informes. Els arxius de l'idioma han de ser a al subdirectori de l'idioma, al # subdirectori lang del directori de Report Magic. # Per tant, per generar informes en catal, cal especificar 'ca' a # Language i els arxius del catal han de ser a rmagic/lang/ca. (per defecte = en). # Include (opcional) inclou les variables definides a l'arxiu ini especificat. # Verbose (opcional) per escollir els missatges d'execuci. # Els valors acceptats sn N per a notificacions,W per a avisos i E per a errors. # Si no s vol cap missatge NONE. (Per defecte = NWE) [statistics] File_In = report.dat Frame_File_Out = index.html No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = ca Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- Informes -------------------------- # Aquestes variables defineixen l'aspecte i la localitzaci de les pgines # de l'informe. Es poden definir informes individuals de forma separada per # cada secci (p. ex. [STATUS]). # BG_Color (opcional) color de fons. # Background (opcional) imatge per al fons de pgina. # Font_Color (opcional) color del text. # Font (opcional) tipus de lletra. # Title_Font (opcional) tipus de lletra per al ttol. # Title_BG_Color (opcional) color de fons per al ttol. # Title_Font_Color (opcional) color del text per al ttol. # Data_Font (opcional) tipus de lletra per a les dades. # Data_BG_Color_1 (opcional) color de fons per a les primeres files de dades. # Data_Font_Color_1 (opcional) color del text de les dades. # Data_BG_Color_2 (opcional) color de fons per a les altres files de dades. # Data_Font_Color_2 (opcional) color del text de les altres dades # Data_Total_Font (opcional) tipus de lletra per als totals. # Data_Total_BG_Color (opcional) color de fons per als totals. # Data_Total_Color (opcional) color del text per als totals. # Data_Header_Font (opcional) tipus de lletra per a les capaleres de les dades. # Data_Header_Font_Color (opcional) color del text de les capaleres. # Data_Header_BG_Color (opcional) color de fons per a les capaleres. # Active_Column determina la columna que serveix de referncia. # Reverse_Time (opcional) amb valor 1 inverteix els conjunts de dades per a la # generaci de grfics amb escala temporal. Util si les dades van de ms # noves a ms velles. # File_Out s el nom d'arxiu o de directori per als informes. # Si s un nom d'arxiu contindr tots els informes i si s un directori tindr tots # els informes per separat. # Si s el smbol '-' l'informe s'envia a la sortida estndard. # Meta_Refresh (opcional) segons abans que la pgina caduqui. # Image_Dir (opcional) directori per a les imatges que es farn servir a l'informe. # Stylsheet (opcional) el full d'estil per crear informes. # Graph_Level (opcional) determina el nivell en una jerarqua del que es # fara el grfic en els informes jerrquics. Aquest valor s'ignora per a tots # els altres informes. [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_BG_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 # ----------------------- General -------------------------- # Rows (opcional) determina les files per incloure al resum general. # Si no s'inclou, es mostren totes les files. # Si no es vol el reum general cal emprar NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- Rpid -------------------------- # Rows (opcional) determina les files per incloure al resum abreviat. # Si no s'inclou no es genera el resum abreviat. # Es pot emprar ALL per a mostrar totes le columnes disponibles. [QUICK] Rows = m, W, D, H, B # ----------------------- Grfics -------------------------- # BG_Color (opcional) color de fons. Si no s'especifica s'agafar el color de fons # de la pgina de l'informe. # Font (opcional) tipus de lletra, amb la ruta completa. Opcionalment es poden afegir # 3 tamanys separats per comes, que es faran servir per al ttol, les etiquetes # dels eixos i les etiquetes de les dades. # Font_Color (opcional) color del text, que per defecte s el mateix que el de la pgina. # Width (opcional) ample del grfic en pxels.Per defecte 400. # Height (opcional) alada del grfic en pxels. Per defecte 300. # 3d (opcional) valor 1 per als grfics 3D (defecte), valor 0 per als grfics 2D. # Palette (opcional) llista de colors per a les barres dels grfics. Els noms els podeu # trobar a docs/config.html. # Cycle_Colors (opcional) valor 1 (defecte) per a pintar cada barra d'un grfic amb un color diferent # de la llista de colors. Amb valor 0 totes les barres tenen el mateix color. # Si vale 0, todas las barras usaran el primer color. El valor por # Shadows (opcional) valor 1 (defecte) per a pintar ombres a les barres dels grfics. # Format (opcional) format de les imatges de sortida. # Els valors acceptats sn PNG y JPEG. El valor per defecte s PNG. [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple,lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- Navegaci -------------------------- # Aquestes variables defineixen l'aspecte i la localitzaci de la pgina de navegaci. # File_Out (opcional) nom de l'arixu de sortida. Si no n'hi ha no es generen marcs. # BG_Color (opcional) color de fons. # Background (opcional) imatge de fons. # Font (opcional) tipus de lletra. # Font_Color (opcional) color del tipus de lletra. # Bullet_Image (opcional) ruta de l'imatge a emprar. # Stylsheet (optional) full d'estil [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css # ----------------------- Lloc web -------------------------- # Aquestes variables proporcionen informaci sobre el lloc web. # Title (opcional) ttol de l'informe. # Base_URL (opcional) URL del lloc web per al que es processen les dades. # Webmaster (opcional) adrea de contacte. # Company_Logo (opcional) nom de l'arxiu amb l'imatge de l'empresa. [website] Title = Estadstiques del lloc Web Webmaster = webmaster@domini.com Base_URL = http://www.domini.com Company_Logo = fineprint.txt rmagic-2.21/samples/all-settings-de.ini0100644000175000010010000003167107642525574017051 0ustar kilroyNone# # ------------------------------------------------- # Report Magic for Analog 2.03 Konfigurationsdatei # ------------------------------------------------- # Deutsche bersetzung: Martin Vorlnder (mv@pdv-systeme.de) # # Diese Datei enthlt alle Einstellungen fr Report Magic. # (Kommentare sind Zeilen, die mit '#' beginnen. Sie werden von Report Magic ignoriert.) # Sie sollten die Werte auf fr Ihren Site zutreffende Daten ndern. # Minimal mssen folgende Einstellungen vorhanden sein: # File_In = report.dat # Active_Column = R # Webmaster = webmaster@mydomain.com # Base_URL = http://www.mydomain.com # # ---------------------------------------------- # MAC-BENUTZER: Die Pfad sind im Unix-Format angegeben # (was auf Unix- und Windows-System funktioniert). Um dies # auf Macintoshs zum Laufen zu bringen, ndern Sie die # Pfad unter Verwendung von ':'. # File_Out = :reports: # Wenn Sie die "Bullet_Image"-Grafik benutzen, denken Sie daran, # bei dieser Unix-Pfade anzugeben, da es sich hier um die Angabe # eines IMG-Tags auf der Webseite handelt: # Bullet_Image = images/bullet.gif # # ---------------------------------------------- # # ----------------------- statistics -------------------------- # Diese Einstellungen beschreiben, wie die Berichte zu generieren sind. # File_In ist die Dateispezifikation der computer-lesbaren Ausgabe (CRO) # von Analog. Wird dies auf "-" gesetzt, werden die CRO-Daten # von STDIN (oder einer Pipe) gelesen. # Frame_File_Out (optional) ist die Dateispezifikation fr die Frameset-Webseite. # Wenn kein Wert angegeben wird, wird 'index.html' verwendet, es sei # denn, [navigation]File_Out ist auch nicht angegeben; in diesem Fall # wird kein Frameset erzeugt. # Frame_Border (optional) setzt die Randbreite des Framesets (0 = kein Rand) # No_Robots (optional) Wird dies auf 1 gesetzt, dann wird in die Berichte # ein META-Tag eingefgt, das Web-Robotern anzeigt, diese Datei nicht # zu indizieren. # Log_File (optional) dies kann auf einen Dateinamen gesetzt werden; in # diese Datei wird Report Magic alle Meldungen schreiben. # Always_Quit (optional, nur Mac) Wird dies auf 1 gesetzt, dann wird Report # Magic beendet, auch wenn Fehler auftreten. Benutzen Sie dies # zusammen mit dem 'cron'-Hilfsprogramm. # Language Stellt die Sprache der erzeugten Berichte ein. Die # sprachspezifischen Dateien mssen sich in dem # Unterverzeichnis gleichen Namens im Unterverzeichnis # lang des Report Magic-Verzeichnis befinden. D.h.: Um # die Berichte in Deutsch auszugeben, wrde man hier 'de' # angeben; die sprachspezifischen Dateien befinden sich # dann in rmagic/lang/de. (Standard = en) # Include Bindet die Einstellungen in der angegebenen INI-Datei mit ein, # deren Einstellungen die in dieser Datei angegebenen berschreiben. # Verbose enthlt einen Satz Zeichen, der angibt, welche Art Meldungen # Report Magic ausgibt. Gltige Zeichen sind N fr normale # Meldungen ("notices"), W fr Warnungen, und E fr Fehler # ("errors"). Benutzen sie den Wert NONE, wenn Sie keine # Ausgaben wnschen. (Standard = NWE) # Format (optional) gibt das Format fr die Ausgabedateien an. Gltige # Werte sind 'XHMTL 1.0' (was CSS-Stylesheets benutzt) und # 'HTML 3.2' (was Unmengen von -Tags benutzt). Standard is 'XHTML 1.0'. [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 Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- reports -------------------------- # Diese Einstellungen beschreiben das Aussehen und die Dateispezifikationen # fr die Berichts-Seite(n). Individuelle Einstellungen fr einzelne Berichte knnen in # deren eigenen Sektionen (z.B. [STATUS]) vorgenommen werden. # BG_Color (optional) ist die Hintergrundfarbe. # Background (optional) ist eine Grafik fr den Seitenhintergrund. # Font (optional) ist der Name des gewnschten Zeichensatzes. # Font_Color (optional) ist die Textfarbe. # Title_Font (optional) ist der Name des fr den Berichts-Titel gewnschten # Zeichensatzes. # Title_BG_Color (optional) ist die Hintergrundfarbe des Berichts-Titels. # Title_Font_Color (optional) ist die Farbe des Berichts-Titel-Texts. # Data_Font (optional) ist der Name des fr die Daten gewnschten Zeichensatzes. # Data_BG_Color_1 (optional) ist die Hintergrundfarbe fr die eine Hlfte der # Datenzeilen. # Data_Font_Color_1 (optional) ist die Textfarbe fr die eine Hlfte der # Datenzeilen (Standard ist Font_Color). # Data_BG_Color_2 (optional) ist die Hintergrundfarbe fr die andere Hlfte der # Datenzeilen. # Data_Font_Color_2 (optional) ist die Textfarbe fr die andere Hlfte der # Datenzeilen (Standard ist Font_Color). # Data_Total_Font (optional) ist der Zeichensatz fr die Summen-Datenzeilen # (Standard ist Data_Font). # Data_Total_Font_Color (optional) ist die Textfarbe fr die Summen-Datenzeilen # (Standard ist Data_Font_Color). # Data_Total_BG_Color (optional) ist die Hintergrundfarbe fr die Summen-Datenzeilen. # Data_Header_Color (optional) ist der Zeichensatz fr die Tabellenkpfe # (Standard ist Data_Font). # Data_Header_Font_Color (optional) ist die Textfarbe fr die Tabellenkpfe # (Standard ist Data_Font_Color). # Data_Header_BG_Color (optional) ist die Hintergrundfarbe fr die Tabellenkpfe. # Active_Column gibt die Spalte an, die zur Erzeugung der Grafiken # und zur Bestimmung der aktivsten Perioden in der Schnellbersicht benutzt wird. # Reverse_Time (optional) Wird dies auf 1 gesetzt, dann wird die Reihen- # folge der Daten in den Zeit-Berichten umgekehrt. Benutzen # Sie dies, wenn Ihre Daten vom jngsten zum ltesten # Datum sortiert sind. # File_Out (optional) ist die Datei- oder Verzeichnisspezifikation fr die # Berichts-Seite(n). Ist dies ein Dateiname, dann werden alle Berichte # in diese Datei geschrieben. Ist dies ein Verzeichnisname, werden # die Berichte in separate Dateien geschrieben. Ist dies das Symbol '-', # dann werden die Berichte nach STDOUT geschrieben. # Meta_Refresh (optional) ist die Anzahl Sekunden, nach der die Seite verfllt. # Wenn 0 angegeben wird oder diese Angabe fehlt, wird # kein "META REFRESH"-Tag erzeugt. # Image_Dir (optional) wie bei der Analog-Option kann damit Report Magic # mitgeteilt werden, in welchem Verzeichnis sich die Logos befinden, # die am unteren Rand der Seiten ausgegeben werden. # Stylesheet (optional) enthlt die Dateispezifikation eines Stylesheets, # das Report Magic fr seine Styledefinitionen benutzt. # Graph_Level (optional) legt den Hierarchielevel fr die Grafik eines # hierarchischen Berichts fest. Wird fr alle anderen # Berichtsarten ignoriert. # Show_Bytes_As (optional) bestimmt, wie weit Bytewerte bei der Ausgabe in # Berichten vereinfacht werden. Gltige Werte sind K, M, G, T usw. # Wird kein Wert angegeben, dann werden Bytes als Ganzzahl ausgegeben. # * Alle Farbangaben knnen HTML-Farbnamen oder ein Hash (#) und ein 6-stelliger # hexadezimaler Farbcode sein. [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_BG_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 Show_Bytes_As = M # ----------------------- GENERAL -------------------------- # Rows (optional) gibt die Zeilen an, die in der Zusammenfassung # ausgegeben werden sollen. Wird dies nicht angegeben, # dann werden ALLE Zeilen angezeigt. Um die Zusammenfassung # abzuschalten, geben Sie das Schlsselwort NONE an. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (optional) gibt die Zeilen an, die in der Schnellbersicht # ausgegeben werden sollen. Wird dies nicht angegeben, # dann wird die Schnellbersicht nicht ausgegeben. # Mit dem Schlsselwort ALL erreichen Sie eine Ausgabe # aller verfgbaren Zeilen. [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (optional) erlaubt Ihnen, eine Hintergrundfarbe fr die # Grafiken anzugeben. Wenn nicht angegeben, wird die Hintergrundfarbe # der Berichtsseite benutzt. # Graph_Font (optional) erlaubt Ihnen, einen TrueType-Font fr die Grafiken # zu benutzen. Der Wert sollte der Dateiname (inklusive Pfad) # der Font-Datei sein. Optional knnen auerdem drei Punkt- # gren (getrennt durch Kommas) fr die Gren des Grafik- # Titels, der Achsenbeschriftung und der Daten-Beschreiftung. # Font_Color (optional) ist die Textfarbe der Grafik-Texte. Standard ist # die Textfarbe der Berichtsseite. # Width (optional) gibt die gewnschte Breite (in Pixeln) der Grafik an. # Standard ist 400. # Height (optional) gibt die gewnschte Hhe (in Pixeln) der Grafik an. # Standard ist 300. # 3d (optional) Wenn dies auf 1 gesetzt wird, werden 3D-Grafiken erstellt, # bei einem Wert von 0 2D-Grafiken. Standard ist 1. # Palette (optional) gibt eine Liste von Farbnamen fr die Balken in # Balkengrafiken. Fr eine Liste der gltigen Namen siehe docs/config.html. # Cycle_Colors (optional) Wenn dies auf 1 gesetzt wird, wird jeder Balken # in einer weiteren Farbe aus der Data_Colors-Liste gefrbt. Bei einem # Wert von 0 werden alle Balken mit der ersten Farbe gefrbt. # Standard ist 1. # Shadows (optional) Wenn dies auf 1 gesetzt wird, werden die Balken in Balkengrafiken # mit Schatten gezeichnet. Ein Wert von 0 schaltet die Schatten ab. # Standard ist 1. # Format (optional) gibt das gewnschte Dateiformat fr die Grafikdateien an. # Gltige Werte sind PNG und JPEG. Standard ist PNG (weil die Dateien # wesentlich kleiner sind). Siehe docs/config.html fr Grnde, warum # dies bei Ihrer Version von Report Magic keine Auswirkungen hat. # * Alle Farbangaben knnen HTML-Farbnamen oder ein Hash (#) und ein 6-stelliger # hexadezimaler Farbcode sein. [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple,lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGATION -------------------------- # Diese Einstellungen beschreiben das Aussehen und die Dateispezifikationen # fr die Navigationsseite. # File_Out (optional) ist die Dateispezifikation fr die Navigationsseite. # Wird kein Wert angegeben, dann wird kein Frameset angelegt. # BG_Color (optional) ist die Hintergrundfarbe. # Background (optional) ist eine Grafik fr den Seitenhintergrund. # Font (optional) ist der Name des gewnschten Zeichensatzes. # Font_Color (optional) ist die Textfarbe. # Bullet_Image (optional) ist die URL zu einer Grafik, die den # Menpunkten vorgeschaltet wird. # Stylesheet (optional) enthlt die Dateispezifikation eines Stylesheets, # das Report Magic fr seine Styledefinitionen benutzt. # Top_Logo (optional) ist ein Dateiname (relativ zum aktuellen # Verzeichnis). Die Datei enthlt HTML-Text, der am Anfang # der Seite eingefgt wird. Dieser Text ersetzt den Text # der Navigationsseite. # * Alle Farbangaben knnen HTML-Farbnamen oder ein Hash (#) und ein 6-stelliger # hexadezimaler Farbcode sein. [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css Top_Logo = logo.txt # ----------------------- WEBSITE -------------------------- # Diese Einstellungen stellen generelle Information fr die Berichte zur Verfgung. # Title (optional) ist der Titel, der oben auf jedem Bericht und im Titel # des Frameset auftaucht. Wenn nicht angegeben, dann wird ein Standard-Text # mit dem Hostnamen ausgegeben (wenn dieser von Analog zur Verfgung # gestellt wird), etwa "Webstatistik fr MeineDomne". # Base_URL (optional) ist die URL des Websites, auf dem die # statistischen Daten gesammelt wurden. Wenn nicht angegeben, # dann wird der HostURL-Wert von Analog verwendet (wenn dieser # zur Verfgung gestellt wurde). # Webmaster (optional) ist eine EMail-Adresse, die bei Fragen # zu den Berichten kontaktiert werden kann. Wird kein Wert # angegeben, wird der Kontakt-Satz nicht ausgegeben. # Company_Logo (optional) ist der Dateiname (relativ zum Arbeitsverzeichnis), # der einen HTML-Schnipsel enthlt, der in die Berichte eingefgt # am unteren Rand anstatt der anderen Logos (Analog, Report Magic) # eingefgt wird. [website] Title = My Website Statistics Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/samples/all-settings-en.ini0100644000175000010010000002771407642525574017066 0ustar kilroyNone# # ---------------------------------------------- # Report Magic for Analog 2.20 Settings File # ---------------------------------------------- # # This file contains all the Report Magic settings. # (Comments are lines starting with '#' and are ignored by Report Magic.) # You should change the values to match your site information. # Minimally, the following need to be changed: # File_In = report.dat # Active_Column = R # Webmaster = webmaster@mydomain.com # Base_URL = http://www.mydomain.com # # ---------------------------------------------- # MAC USERS: The output path, below, is specified in Unix format # (which works for Unix and Windows systems). To run this on # the Macintosh platform, change the path to use ':'. # File_Out = :reports: # If using the Bullet_Image navigational item, remember to use Unix-style # path specifiers here, because this is the image tag on the web page: # Bullet_Image = images/bullet.gif # # ---------------------------------------------- # # ----------------------- statistics -------------------------- # These settings describe how the statisitcs reports are generated. # File_In is the location of the computer readable output from analog. # This can be the symbol "-" to designate that the CRO data # will come from STDIN (or a pipe). # Frame_File_Out (optional) is the name and location of the frameset # page. If no value is given, this defaults to 'index.html' unless # [navigation]File_Out is also not used, in which case no frameset # is created at all. # Frame_Border (optional) sets the width of the border of the frameset (0 for none) # No_Robots (optional) if set to 1 will add a META tag to each report # file to tell robots not to index the file. # Log_File (optional) this can be set to the name of a file that Report # Magic will log all messages to. # Always_Quit (optional, Mac only) if set to 1 will force Report Magic to # Quit, even if errors occur. Use this with the 'cron' utility on Macs. # Language (optional) tells Report Magic what language to use in generating the # reports. The language file must be in the subdirectory of its # name in the lang subdirectory in the Report Magic directory. # That is, to run the report in German you would use 'de' for the # language and the files are found in rmagic/lang/de. (Default = en) # Include (optional) will include all the settings from the specified ini file # overriding those with the settings in this file. # Verbose (optional) is a set of letters indicating what kind of messages to # output when running. Valid values are N for notices, W for warnings # and E for errors. Use NONE for no messages at all. (Default = NWE) # Format (optional) specifies the output file format for the reports. Currently # accepted formats are 'XHTML 1.0' (which uses CSS style sheets) and # 'HTML 3.2' (which uses lots of tags). Default is 'XHTML 1.0'. [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 Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- reports -------------------------- # These settings describe the look and location of all the reports. Individual # reports can be defined separately in their own sections (e.g. [STATUS]) # BG_Color (optional) is the background color of the report page. # Background (optional) is an image for the page background # Font (optional) is the name of the desired typeface # Font_Color (optional) is the color of the output text. # Title_Font (optional) is the name of the desired typeface for the report title # Title_BG_Color (optional) is the background color of the report title. # Title_Font_Color (optional) is the color of the title text. # Data_Font (optional) is the name of the desired typeface for the data. # Data_BG_Color_1 (optional) is the background color of one set of data rows. # Data_Font_Color_1 (optional) is the color of the text for the data in one set of # rows (defaults to Font_Color). # Data_BG_Color_2 (optional) is the background color of the other set of data rows. # Data_Font_Color_2 (optional) is the color of the text for the data in the other # set of rows (defaults to Font_Color). # Data_Total_Font (optional) is the name of the desired typeface for the summary # data rows (defaults to Data_Font). # Data_Total_Font_Color (optional) is the name of the color for the text in the # summary data rows (defaults to Data_Font_Color). # Data_Total_BG_Color (optional) is the background color of the summary data rows # Data_Header_Font (optional) is the name of the desired typeface for the table # header rows (defaults to Data_Font). # Data_Header_Font_Color (optional) is the name of the color for the text in the # table header rows (defaults to Data_Font_Color). # Data_Header_BG_Color (optional) is the background color of data table headers. # Active_Column tells which column to use for graphs and determining the # most active period or item in the Quick Summary. # Reverse_Time (optional) if set to 1 will reverse the data sets for # time report graphs. Use this if your data runs newest to oldest. # File_Out is the file or directory for the report page(s). If this is # a filename then all reports are put in one file. If this is a # directory name, then each report will have its own file. If this # is the symbol '-' then a single file report will be sent to STDOUT. # Meta_Refresh (optional) is the number of Seconds until the page expires. # If this is 0 or not included, then no META REFRESH tag will be given. # Image_Dir (optional) like the Analog option can be set to tell Report # Magic where to find the logo images for the bottom of the page. # Stylesheet (optional) points to a stylesheet for Report Magic to use for styles. # Graph_Level (optional) sets the level in a hierarchy that is graphed for # hierarchical reports. This is ignored for all other reports. # Show_Bytes_As (optional) determines how much byte values are simplified # when shown in reports. Valid values are K, M, G, T, etc. If no value # is given, then bytes are fully reduced to the smallest whole number. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 Show_Bytes_As = M # ----------------------- GENERAL -------------------------- # Rows (optional) specifies which rows to include in the general # summary. If not included, then ALL rows are shown. To # disable the General Summary, use the keyword NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (optional) tells which rows to show for the Quick Summary. # If not included, then no Quick Summary is made. You # can use the keyword ALL to show all available rows. [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (optional) allows you to specify a color to be used for the # graphing area of the graph. If none is given this will use the # report page background color. # Font (optional) allows you to specify a TrueType Font to use for the # graphs. This should provide the full pathname to the font. You # may also, optionally, include 3 font point-sizes, separated by # commas specifying the size of the graph titles, axes labels and # data labels. # Font_Color (optional) is the color of the graph text. Defaults to the # report page text color. # Width (optional) gives the desired width (in pixels) of the graph. Default is 400 # Height (optional) gives the desired height (in pixels) of the graph. Default is 300 # 3d (optional) if set to 1, will draw 3d graphs, 0 draws 2d graphs. Default is 1. # Palette (optional) gives a list of color names to use for the bars in the # bar charts. For valid names, see the docs/config.html. # Cycle_Colors (optional) if set to 1, each bar in a series on the bar charts # will use a different color from the Data_Colors list. If set to 0, # all bars will use the first color. Default is 1. # Shadows (optional) if set to 1 will draw drop-shadows on the bars in the # bar charts. Set to 0 to disable the shadows. Default is 1. # Format (optional) give the desired ouput format for graph images. Valid # values are PNG and JPEG. Default is PNG because the files are # much smaller. See docs/config.html for why this may have no # effect on your version of Report Magic. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGATION -------------------------- # These settings describe the look and location of the navigation page. # File_Out (optional) is the name of the file for the navigation page. If # no value is given for this option, then no frameset will be built. # BG_Color (optional) is the background color of the navigation page. # Background (optional) is an image for the page background # Font (optional) is the name of the desired typeface # Font_Color (optional) is the color of the output text. # Bullet_Image (optional) is a vitual link to the navigation bullet image. # Stylesheet (optional) points to a stylesheet for Report Magic to use for # styles. # Top_Logo (optional) is the name of a file (relative to the working # directory) that contains a snippet of HTML to insert at the # top of the page. If this is provided it replaces the "Report # Navigation" text. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css Top_Logo = logofile.html # ----------------------- WEBSITE -------------------------- # These settings just provide some general information for the statistics # Title (optional) is the title that appears at the top of every report # file and the title for the frameset. If not given, this will # use standard text like "Website statistics for My Domain" with # the Host Name value if provided by Analog. # Base_URL (optional) is the URL of the site for which these statistics # were collected. If not given this will use the Host URL value # if provided by Analog # Webmaster (optional) is the email address to contact for questions on # the reports. If no value is given, the contact statement will # not be included. # Company_Logo (optional) is the name of a file (relative to the working # directory) that contains a snippet of HTML to insert into the # report. This appears at the bottom of the report and removes # the other logos (Analog, Report Magic). [website] Title = My Website Statistics Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/samples/all-settings-es.ini0100644000175000010010000003142507642525574017065 0ustar kilroyNone# # ---------------------------------------------------- # Fichero de ajustes para Report Magic para Analog 2.0 # ---------------------------------------------------- # # Este archivo contiene todos los ajustes de Report Magic. # Muchos de ellos tienen valores simples. Algunos estn comentados. # (Los comentarios son lneas que comienzan con '#' y son ignorados por Report # Magic). # Debe cambiar los valores para que coincidan con la informacin de su sitio. # Mnimamente, los siguientes valores deben ser cambiados: # File_In = report.dat # Active_Column = R # Webmaster = webmaster@midominio.com # Base_URL = http://www.midominio.com # # ---------------------------------------------- # USUARIOS DE MAC: La ruta de salida, abajo, se especifica en formato Unix # (que funciona para sistemas Unix y Windows). Para ejecutar esto en la # plataforma Macintosh, cambie la ruta para que use ':'. # File_Out = :reports: # Si usa la imagen Image_Ball, recuerde emplear especificadores de ruta de # estilo Unix, ya que esta es la marca de imagen en la pgina web: # Image_Ball = images/bullet.gif # # ---------------------------------------------- # # ----------------------- estadsticas -------------------------- # Estos ajustes describen como se generan los informes de estadsticas. # File_In es la localizacin de la salida legible por computador de analog. # Puede ser el smbolo "-" para designar que la salida legible por # computador vendr de la entrada estndar (o una tubera). # Frame_File_Out (opcional) es el nombre y localizacin de la pgina del # conjunto de marcos. Si no se da ningn valor toma el valor por defecto # 'index.html', salvo que tampoco se use [navigation]File_Out, en cuyo caso # no se genera el conjunto de marcos. # Frame_Border (opcional) ajusta el ancho del borde del conjunto de marcos (0 # para ninguno) # No_Robots (opcional) si se le asigna valor 1 aade una marca META a cada # fichero del informe para indicar a los robots que no indexen el fichero. # Log_File (opcional) a este valor se le puede asignar el nombre del fichero # en el que Report Magic guardar los mensajes de log. # Always_Quit (opcional, slo Mac) si vale 1 forzar a Report Magic # a Salir, incluso si ocurren errores. Use este ajuste con la utilidad # 'cron'. # Language (opcional) le dice a Report Magic que idioma emplear al generar los # informes. El fichero de idioma debe estar en el subdirectorio de su nombre # en el subdirectorio lang del directorio de Report Magic. # Es decir, para generar los informes en Espaol se usara 'es' para # Language y los ficheros estaran en rmagic/lang/es. (Valor por defecto = # en). # Include (opcional) incluir todos los ajustes del fichero ini especificado, # reemplazando aquellos con los ajustes de este fichero. # Verbose (opcional) es un conjunto de letras indicando que tipo de mensajes # imprimir cuando se ejecuta. Los valores vlidos son N para notificaciones, # W para avisos y E para errores. Emplee NONE para no tener ningn mensaje # (Valor por defecto = NWE) [statistics] File_In = report.dat Frame_File_Out = index.html Frame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = es Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- informes -------------------------- # Estos ajustes describen el aspecto y localizacin de la(s) pgina(s) del # informe. Se pueden definir informes individuales separadamente en su propia # seccin (p. ej. [STATUS]). # BG_Color (opcional) es el color de fondo. # Background (opcional) es una imagen para el fondo de la pgina # Font_Color (opcional) es el color del texto de salida # Font (opcional) es el nombre del tipo de letra deseado # Title_Font (opcional) es el nombre del tipo de letra deseado para el ttulo # del informe # Title_BG_Color (opcional) es el color de fondo del fichero de informe. # Title_Font_Color (opcional) es el color del texto del ttulo. # Data_Font (opcional) es el nombre del tipo de letra deseado para los datos # Data_BG_Color_1 (opcional) es el color de fondo de un conjunto de filas de # datos. # Data_Font_Color_1 (opcional) es el color del texto en un conjunto de filas de # datos (el valor por defecto es Font_Color). # Data_BG_Color_2 (opcional) es el color de fondo del otro conjunto de filas de # datos. # Data_Font_Color_2 (opcional) es el color del texto del otro conjunto de filas de # datos (el valor por defecto es Font_Color). # Data_Total_Font (opcional) es el nombre del tipo de letra deseado para las # filas de datos del resumen (el valor por defecto es Data_Font). # Data_Total_BG_Color (opcional) es el color de fondo de un conjunto de filas de # datos del resumen. # Data_Total_Color (opcional) es el color del texto en un conjunto de filas de # datos del resumen (el valor por defecto es Data_Font_Color). # Data_Header_Font (opcional) es el tipo de letra deseado para las cabeceras de las # tablas de datos (el valor por defecto es Data_Font). # Data_Header_Font_Color (opcional) es el color del texto en las cabeceras de # las tablas de datos (el valor por defecto es Data_Font_Color). # Data_Header_BG_Color (opcional) es el color de fondo de las cabeceras de las # tablas de datos. # Active_Column indica que columna usar para grficos y determinar el periodo # de tiempo ms activo o item en el resumen abreviado. # Reverse_Time (opcional) si vale 1 invertir los conjuntos de datos para los # grficos de informe de tiempo. Utilice esto si sus datos van de ms nuevos # a ms antiguos. # File_Out es el fichero o directorio para la(s) pgina(s) del informe. Si es # un nombre de fichero entonces todos los informes se colocan en un # fichero. Si es el nombre de un directorio, cada informe tiene su propio # fichero. Si es el smbolo '-' entonces un slo fichero de informe se enva # a la salida estndar. # Meta_Refresh (opcional) es el nmero de segundos hasta que la pgina caduca. # Si vale 0 o no se incluye, entonces no se da ninguna marca META REFRESH. # Image_Dir (opcional) como la opcin de Analog se puede ajustar para decirle # a Report Magic donde encontrar las imgenes de los logos para la parte # inferior de la pgina. # Stylesheet (optional) apunta a una hoja de estilos para usar con Report Magic. # Show_Bytes_As (opcional) determina hasta que puntos los valores son # simplificados cuando se muestran en informes. Los valores # vlidos son K, M, G, T, etc. Si no se asigna ningn valor, los # bytes se reducen completamente al nmero entrero ms pequeo. =# * Todos los colores pueden ser un nombre de color HTML o una almohadilla (#) # y un cdigo de color hexadecimal de 6 dgitos [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_BG_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Show_Bytes_As = M # ----------------------- GENERAL -------------------------- # Rows (opcional) especifica que filas incluir en el resumen general. # Si no se incluye, TODAS las filas son mostradas. Para inhabilitar el Resumen # general hay que usar la palabra clave NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (optional) dice que filas mostrar en el resumen abreviado. # Si no se incluye, no se genera el resumen abreviado. Puede usar la palabra # clave ALL para mostrar todas las columnas disponibles. [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (opcional) permite especificar un color para el area de dibujo del # grfico. Si no se da ninguno se usara el color de fondo de la pgina del # informe. # Font (opcional) permite especificar un tipo de letra TrueType para los # grficos. Debe proporcionarse la ruta completa hasta la fuente. Se pueden # incluir, opcionalmente, 3 tamaos de punto de fuente, separados por comas, # que especifican el tamao de los ttulos del grfico, etiquetas de los # ejes y etiquetas de datos. # Font_Color (opcional) es el color del texto del grfico. Por defecto toma el # valor del color del texto de la pgina del informe. # Width (opcional) ancho deseado (en pixels) del grfico. El valor por # defecto es 400 # Height (opcional) alto deseado (en pixels) del grfico. El valor por # defecto es 300 # 3d (opcional) si vale 1, se pintaran grficos 3d, 0 pinta grficos 2d. # El valor por defecto es 1. # Palette (opcional) da una lista de nombres de colores para usar en las # barras de los grficos de barras. Para nombres vlidos, ver # docs/config.html. # Cycle_Colors (opcional) si vale 1, cada barra en una serie de # grficos de barras usar un color diferente de la lista Data_Colors. # Si vale 0, todas las barras usaran el primer color. El valor por # defecto es 1. # Shadows (opcional) si vale 1 se pintarn sombras en las barras de los # grficos de barras. Si vale 0 se inhabilitan las sombras. El valor # por defecto es 1. # Format (opcional) formato de salida de las imgenes de los grficos. # Los valores vlidos son PNG y JPEG. El valor por defecto es PNG # porqu los archivos son mucho menores. Ver docs/config.html para # saber porqu esto puede no tener efectos en su versin de Report # Magic. # * Todos los colores pueden ser un nombre de color HTML o una almohadilla (#) # y un cdigo de color hexadecimal de 6 dgitos [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple,lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVEGACIN -------------------------- # Estos ajustes describen el aspecto y localizacin de la pgina de # navegacin. # File_Out (opcional) es el nombre del fichero para la pgina de navegacin. # Si no se le asigna valor a esta opcin no se generar el conjunto de # marcos. # BG_Color (opcional) es el color de fondo de la pgina de navegacin # Background (opcional) es una imagen para el fondo de la pgina # Font (opcional) es el nombre del tipo de letra deseado # Font_Color (opcional) es el color del texto de salida. # Bullet_Image (opcional) es un enlace virtual a la imagen de la bola de # navegacin. # Stylesheet (optional) apunta a una hoja de estilos para usar con Report Magic. # Top_Logo (opcional) es el nombre de un fichero (relativo al directorio # de trabajo) que contiene un fragmento de HTML a insertar en # la parte superior de la pgina. Si se incluye reemplaza el # texto del "Informe de Navegacin". # * Todos los colores pueden ser un nombre de color HTML o una almohadilla (#) # y un cdigo de color hexadecimal de 6 dgitos [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css Top_Logo = fineprint.txt # ----------------------- SITIO WEB -------------------------- # Estos ajustes simplemente proporcionan informaciones de enlace para las # estadsticas # Title (opcional) es el ttulo que aparece en la parte superior de cada fichero de # informe y el ttulo para el conjunto de marcos. Si no se proporciona, se # usara un texto estndar como "Estadsticas del sitio Web para Mi Dominio" # con el valor del nombre del host si lo proporciona el Analog. # Base_URL (opcional) es el URL del sitio para el que se han recogido estas # estadsticas. Si no se proporciona se usar el URL del Host si lo # proporciona Analog. # Webmaster (opcional) es la direccin de correo electrnico con la que # contactar para preguntas sobre los informes. Si no se le va valor la frase # de contacto no se incluir. # Company_Logo (opcional) es el nombre de un fichero (relativo al directorio # de trabajo) que contiene un trozo de HTML para insertar en los informes. # Aparece en la parte inferior del informe y elimina los otros logos # (Analog, Report Magic). [website] Title = Estadsticas de mi Web Webmaster = webmaster@midominio.com Base_URL = http://www.midominio.com Company_Logo = fineprint.txt rmagic-2.21/samples/all-settings-fr.ini0100644000175000010010000003147207642525574017067 0ustar kilroyNone# # ------------------------------------------------------ # Report Magic for Analog 2.0 - Fichier de configuration # ------------------------------------------------------ # Traduction franaise : juillet 2000 par D. Schitter # # Ce fichier contient les paramtres de configuration de Report Magic. # La plupart ont une valeur fixe, d'autres sont commentes. # (Les lignes de commentaires commencent par '#' et ne sont pas traites) # Vous devez adapter les valeurs des paramtres votre site. # Au minimum, les valeurs ci-dessous sont adatper : # File_In = report.dat # Active_Column = R # Webmaster = webmaster@mondomaine.com # Base_URL = http://www.mondomaine.com # # ---------------------------------------------- # UTILISATEURS DE MAC : le chemin d'accs des fichiers de sortie # ci-dessous est donn dans un format Unix (qui fonctionne sous # Unix et Windows). Pour l'adapter au systme Macintosh, changez # le chemin en utilisant des ':' # File_Out = :reports: # Si vous utilisez l'image 'Bullet_Image', pensez utiliser le style # Unix pour le chemin car il s'agit ici d'un chemin sur la page web : # Bullet_Image = images/bullet.gif # # ---------------------------------------------- # # ----------------------- STATISTIQUES -------------------------- # Ces paramtres dcrivent comment les rapports statistiques sont gnrs. # File_In localise le fichier de sortie de Analog. # Si le symbole "-" est utilis, les donnes sont lues depuis # STDIN (ou un pipe). # Frame_File_Out (optionel) est le nom et le chemin d'accs vers le frameset # des pages HTML gnres. La valeur par dfaut est 'index.html' tant # que [navigation]File_Out n'est pas indiqu, cas dans lequel aucun # frameset n'est cr. # Frame_Border (optionnel) fixe la largeur de la bordure du frameset # (0 pour aucune bordure) # No_Robots (optionel) ajoute une balise META qui indique aux robots de ne pas # indexer la page HTML, si dfini 1. # Log_File (optionel) permet de spcifier le nom du fichier dans lequel Report # Magic va inscrire ses messages de log durant son excution. # Always_Quit (optionel, uniquement pour les Mac) si dfini 1, force Report # Magic se fermer mme si des erreur sont gnres. A utiliser avec # l'utilitaire 'cron'. # Language (optionel) indique Report Magic la langue utiliser pour les # rapports. Les fichiers de langue choisis doivent se trouver dans # un sous-rpertoire du rpertoire 'lang'. Par exemple, pour afficher # les rapports en franais, les fichiers devront se trouver dans # 'rmagic/lang/fr'. La langue par dfaut est l'anglais : 'en'. # Include (optionel) permet de spcifier un fichier ini utiliser la place # du prsent fichier. # Verbose (optionel) permet de spcifier les messages gnrer pendant l'excution # de Report Magic. Les valeurs possibles sont N pour les notes, W pour # les alertes et E pour les erreurs. Pour ne pas gnrer de messages, # utilisez NONE. La valeur par dfaut est NWE. # Format (optionel) spcifie le format du fichier de sortie contenant le rapport. # Actuellement, sont accepts les formats 'XHTML 1.0' (qui utilise les # feuilles de style CSS) et 'HTML 3.2' (qui utilise un grand nombre de # balises ). Le format par dfaut est 'XHTML 1.0'. [statistics] File_In = report.dat Frame_File_Out = index.html Frame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = fr Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- RAPPORTS -------------------------- # Ces paramtres dfinissent le look et la localisation des pages des rapports. # Les rapports individuels peuvent tres dfinis sparment dans leur section # propre (p.ex. [STATUS]). # Active_Column indique la colonne utiliser pour les graphiques et # dtermine la priode ou la valeur la plus active dans l'Aperu Rapide. # BG_Color (optionel) est la couleur du fond de page. # Background (optionel) est une image pour le fond de page. # Font (optionel) est le nom de la police de caractres. # Font_Color (optionel) est la couleur du texte. # Title_Font (optionel) est le nom de la police de caractres pour le titre. # Title_BG_Color (optionel) est la couleur de fond du titre des rapports. # Title_Font_Color (optionel) est la couleur du titre des rapports. # Data_Font (optionel) est le nom de la police de caractres pour les donnes. # Data_BG_Color_1 (optionel) est la couleur de fond du premier ensemble de # lignes de donnes. # Data_Font_Color_1 (optionel) est la couleur du texte du premier ensemble de # lignes de donnes (Font_Color est la valeur par dfaut). # Data_BG_Color_2 (optionel) est la couleur de fond du second ensemble de # lignes de donnes. # Data_Font_Color_2 (optionel) est la couleur du texte du second ensemble de # lignes de donnes (Font_Color est la valeur par dfaut). # Data_Total_Font (optionel) est le nom de la police de caractres pour les # lignes de donnes du sommaire (Data_Font est la valeur par dfaut). # Data_Total_BG_Color (optionel) est la couleur de fond pour les lignes # de donnes du sommaire # Data_Total_Font_Color (optionel) est la couleur du texte pour les lignes # de donnes du sommaire (Data_Font_Color est la valeur par dfaut). # Data_Header_Font (optionel) est le nom de la police de caractres pour les # en-ttes des tables (Data_Font est la valeur par dfaut). # Data_Header_BG_Color (optionel) est la couleur de fond pour les # en-ttes des tables. # Data_Header_Font_Color (optionel) est la couleur du texte pour les # en-ttes des tables (Data_Font_Color est la valeur par dfaut). # File_Out est le fichier ou rpertoire pour le(s) page(s) du rapport. Si on indique # un nom de fichier, tous les rapports seront contenus dans une page unique. # Si on indique un rpertoire, chaque rapport aura sa propre page. Si on # indique le caractre '-', un fichier contenant le rapport sera envoy vers STDOUT. # Meta_Refresh (optionel) est le nombre de secondes avant expiration de la page HTML. # Si la valeur est 0 ou omise, aucune balise META REFRESH ne sera gnre. # Image_Dir (optionel) permet d'indiquer Report Magic l'endroit o chercher les # images de bas de page. # Graph_Level (optionnel) fixe le niveau hirarchique dans un rapport # hirarchique. Est ignor pour les autres rapports. # Show_Bytes_As (facultatif) dtermine le niveau de simplification dans l'affichage # des donnes reprsentant des octets. Les valeurs possibles sont K, M, G, T, etc. # Si aucune valeur n'est prcise, les donnes sont tronques au plus petit nombre entier. # * Les couleurs peuvent tre indique sous le nom HTML ou sous forme d'un code hexadcimal # sur 6 caractres prcd de '#' (par ex. '#FFFFFF' pour le blanc) [reports] Active_Column = R BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_BG_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Graph_Level = 1 Show_Bytes_As = M # ----------------------- SYNTHESE GENERALE -------------------------- # Rows (optionel) permet de spcifier les colonnes inclure # dans la Synthse Gnrale. Si aucune n'est spcifie, # TOUTES les colonnes sont affiches. Pour ne pas afficher # la Synthse Gnrale, utilisez le mot-cl NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- APERCU RAPIDE -------------------------- # Rows (optionel) permet de spcifier les colonnes inclure # dans l'Aperu Rapide. Si aucune n'est spcifie, # l'Aperu Rapide n'EST PAS affich. En utilisant le # mot-cl ALL, toutes les colonnes disponibles sont affiches. [QUICK] Rows = m, W, D, H, B # ----------------------- GRAPHIQUES -------------------------- # BG_Color (optionel) est la couleur de fond de page d'un graphique. # Si aucune n'est spcifie, utilise la couleur de fond de page # dfinie pour les rapports. # Font (optionel) est le nom de la police de caractres TrueType utiliser # avec les graphiques. Il faut indiquer le chemin entier vers la # police utiliser. Vous pouvez, optionnellement, indiquer 3 tailles # de polices en points, spares par des virgules et reprsentant # respectivement les tailles des titres, des labels des axes et des # labels des donnes. # Font_Color (optionel) est la couleur du texte des graphiques. La valeur par # dfaut est celle des rapports. # Reverse_Time (optionel) permet d'inverser l'chelle des donnes si dfini 1. # A utiliser si vos donnes vont du plus rcent au plus ancien. # Width (optionel) dfini la largeur du graphique en pixels. Valeur par dfaut : 400. # Height (optionel) dfini la hauteur du graphique en pixels. Valeur par dfaut : 300. # 3d (optionel) dite les graphiques en 3D si dfini 1. Valeur par dfaut : 1. # Data_Colors (optionel) spcifie une liste de nom de couleurs utiliser pour les # graphiques en barres. Voir docs/config.html pour la liste des noms. # Cycle_Colors (optionel) si dfini 1, chaque barre d'un graphique en barres # va utiliser une couleur diffrente partir de la liste de Data_Colors. # Si dfini 0, toutes les barres vont utiliser la premire couleur. # Valeur par dfaut : 1. # Shadows (optionel) si dfini 1, affiche des barres avec de l'ombre dans les # graphiques en barres. Pour ne pas afficher les ombres, mettre la valeur 0. # Valeur par dfaut : 1. # Long_Ticks (optionel) si dfini 1, affiche une grille derriere le graphique. # Si dfini 0, affiche uniquement les repres sur les axes. # Valeur par dfaut : 1. # Format (optionel) dtermine le format de sortie des images des graphiques. # Les valeurs admises sont PNG et JPEG. La valeur par dfaut est PNG car # la taille des fichier est plus rduite. Voir docs/config.html pour # apprendre pourquoi ceci peut n'avoir aucun impact sur votre version de # Report Magic. # * Les couleurs peuvent tre indique sous le nom HTML ou sous forme d'un code hexadcimal # sur 6 caractres prcd de '#' (par ex. '#FFFFFF' pour le blanc) [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Data_Colors = lgreen, lblue, lred, lpurple,lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Long_Ticks = 1 Format = png # ----------------------- NAVIGATION -------------------------- # Ces paramtres dfinissent le look et la localisation de la page de navigation. # File_Out (optionel) est le nom de fichier de la page de navigation. # Si aucune valeur n'est indique, aucun frameset ne sera construit. # BG_Color (optionel) est la couleur de fond de page de navigation. # Background (optionel) est une image pour le fond de page. # Font (optionel) est le nom de la police de caractres. # Font_Color (optionel) est la couleur du texte. # Bullet_Image (optionel) est un lien virtuel vers l'image de navigation. # Top_Logo (facultatif) est le nom d'un fichier (relatif au rpertoire de travail) # contenant du code HTML insrer sur le haut de la page. # Si ce fichier est utilis, il remplace le texte standard "Rapport de navigation". # * Les couleurs peuvent tre indique sous le nom HTML ou sous forme d'un code hexadcimal # sur 6 caractres prcd de '#' (par ex. '#FFFFFF' pour le blanc) [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Top_Logo = logo_societe.txt # ----------------------- SITE WEB -------------------------- # Ces paramtres donnent quelques informations pour les statistiques. # Title (optionel) est le titre apparaissant au dbut de chaque rapport # et dans le frameset. Si non indiqu, le titre sera du type # "Website statistics for My Domain" et utilisera le HOSTNAME # transmis par Analog. # Base_URL (optionel) est l'URL du site pour lequel sont gnres les # statistiques. Si non indiqu, la valeur sera celle de HOSTURL # transmise par Analog. # Webmaster (optionel) est une adresse e-mail pour un contact sur les # statistiques. Si non indiqu, la partie contact sera occulte. # Company_Logo (optionel) est le nom d'un fichier (relatif au rpertoire # de travail) contenant du code HTML insrer au bas de chaque # rapport. Les autres logos (Analog, DNS, et WADigital) sont # alors supprims. [website] Title = Statistiques de mon site web Webmaster = webmaster@mondomaine.com Base_URL = http://www.mondomaine.com Company_Logo = logo_societe.txt rmagic-2.21/samples/all-settings-hu.ini0100644000175000010010000002704207642525574017072 0ustar kilroyNone# # ---------------------------------------------- # Report Magic for Analog 2.0 Settings File # ---------------------------------------------- # # Itt tallhat a Report Magic sszes belltsa. # Last Updated: 2002 December 06 By: WEBGb (dszekely@csoft.ro) # For use with Report Magic for Analog 2.x # Compatible with Analog 5.24 # # (A kommentr sorok elejn '#' van, ezeket a sorokat a Report Magic figyelmen # kvl hagyja.) # Az itt szerepl rtkeket t kell rni, hogy megfeleljenek a te adataidnak. # Legalbb az albbiakat ki kell cserlni: # File_In = report.dat # Active_Column = R # Webmaster = webmaster@mydomain.com # Base_URL = http://www.mydomain.com # # ---------------------------------------------- # MAC felhasznlk szmra: a kimenet helye Unix formtumban van megadva # (ez Unix s Windows krnyezetben egyarnt mkdik). Ha ezt # Macintosh platformon szeretnd hasznlni, cserld ki a path-ban a "/"-t ':'-re. # File_Out = :reports: # Ha hasznlod a Bullet_Image-t navigcis clokra, hasznlj Unix-tpus # lerst a fjl cmre, ui. ezt fogja a WEB-oldalad hasznlni: # Bullet_Image = images/bullet.gif # # ---------------------------------------------- # # ----------------------- statisztikk -------------------------- # Itt van lerva, hogyan generlja a Report Magic a statisztikai oldalakat. # File_In az Analog ltal ellltott bemeneti adatok helye. # Ez lehet "-" jel is, ami azt jelenti, hogy az adatok a # STDIN-rl, vagy egy pipe-rl jnnek (Unix alatt). # Frame_File_Out (opcionlis) a neve s a helye a keretrendszernek, ha ezt a meg- # jelentst vlasztottuk. Alaprtelmezsben 'index.html' hacsak a # [navigation]File_Out nincs definilva, amikor is nem kszl keretrendszer # (frameset). # Frame_Border (opcionlis) a keretrendszer szlnek vastagsgt hatrozza meg (0 - nincs keretszl) # No_Robots (opcionlis) ha 1, akkor egy META tag-ot ad minden jelentshez, ami # letiltja a keresrobotok ltali indexelst a jelentsnek. # Log_File (opcionlis) ebbe a fjlba fogja a Report Magic az zeneteit rni. # Always_Quit (opcionlis, csak Mac platformon) ha 1, akkor a Report Magic # knyszerteni fogja, hogy kilpjen (Quit), akkor is, ha a vgrehajts # alatt hibk trtnnek. Ezt a 'cron' utilityval # egytt kell hasznlni a Macintoshokon. # Language (opcionlis) megadja a hasznland nyelvet. # A megfelel nyelvi verzij fjlok a Report Magic megfelel "lang" # alknyvtrban kell legyenek. Pldul a magyar nyelv hasznlathoz # ennek az rtke 'hu' lesz s a megfelel fjlok a "rmagic/lang/hu" # knyvtrban kell legyenek. (Alaprtelmezett = en) # Include (opcionlis) az itt megadott fjlban tallhat rtkekkel fellr minden, # ebben az ini fjlban megadott rtket. # Verbose (opcionlis) egy sor kapcsol, amely megmondja, hogy milyen tpus # zeneteket rjon ki futs kzben a program. rvnyes rtkek N - jegyzetek, # W - figyelmeztetsek, E - hibazenetek. NONE - semmi zenet. # (Alaprtelmezs = NWE) # Format (opcionlis) a kimeneti formtumot adja meg. Jelenleg elfogadott rtkek: # 'XHTML 1.0' (CSS stluslapokat hasznl) s # 'HTML 3.2' (rlt sok tag hasznlatval). Alaprtelmezett 'XHTML 1.0'. [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 Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- Jelentsek -------------------------- # Ezek a belltsok rjk le a jelentsek tartalmt s formjt. Egyedi # jelentseket egyenknt lehet definilni a sajt rszlegkn (pl. [STATUS]) # BG_Color (opcionlis) a httrszn. # Background (opcionlis) a httr kp # Font (opcionlis) a kvnt bettpus neve # Font_Color (opcionlis) a szveg szne # Title_Font (opcionlis) a jelents cmnek bettpusa # Title_BG_Color (opcionlis) a jelents cmnek httrszne # Title_Font_Color (opcionlis) a cm szvegnek szne # Data_Font (opcionlis) az adatok szvegnek bettpusa # Data_BG_Color_1 (opcionlis) az els adatsor httrszne # Data_Font_Color_1 (opcionlis) az els adatsor szvegnek szne # (alaprtelmezsben Font_Color). # Data_BG_Color_2 (opcionlis) a msodik adatsor httrszne # Data_Font_Color_2 (opcionlis) a msodik adatsor szvegnek szne # (alaprtelmezsben Font_Color). # Data_Total_Font (opcionlis) az sszegz sor bettpusa # (alaprtelmezsben Data_Font). # Data_Total_Font_Color (opcionlis) az sszegz sor szvegnek szne # (alaprtelmezsben Data_Font_Color). # Data_Total_BG_Color (opcionlis) az sszegz sor httrszne # Data_Header_Font (opcionlis) a fejlc bettpusa # (alaprtelmezsben Data_Font). # Data_Header_Font_Color (opcionlis) a fejlc szvegnek szne # (alaprtelmezsben Data_Font_Color). # Data_Header_BG_Color (opcionlis) a fejlc httrszne # Active_Column megadja a grafikonokban hasznland oszlopok szmt s a # legaktvabb peridus vagy ms jellemz rtkt a "Quick Summary" # jelentsben. # Reverse_Time (opcionlis) ha 1, megfordtja az idrendi sorrendet # File_Out a kimeneti file vagy directory neve. Ha ez egy fjlnv, minden # jelents egyetlen fjlba kerl. Ha egy knyvtrnv, # minden jelents kln fjlba kerl. Ha meg a # '-', akkor a vgeredmny az STDOUT-ra kerl. # Meta_Refresh (opcionlis) a msodpercek szma, ami utn a szerver jra # elkldi az oldalt. # Ha 0 vagy nincs megadva, nem generldik META REFRESH tag. # Image_Dir (opcionlis) mint az Analog esetben, meg lehet adni a Report # Magicnak is, hol tallja a logkat. # Stylesheet (opcionlis) a CSS fjl, amit a Report Magic hasznl. # Graph_Level (opcionlis) a hierarchikus jelentsekben a jelents # mlysgt lltja be. Ez minden ms tpus jelentsben figyelmen # kvl lesz hagyva. # Show_Bytes_As (opcionlis) azt hatrozza meg, mennyire lesz leegyszerstve # a bitrtkek megjelentse a jelentsekben. Haszmlhat rtkek: # K, M, G, T, stb. Ha nincs rtk megadva, az rtk a legkzelebbi # egsz szmra lesznek leegyszestve. (Pl. 2940941107 gy fog megjelenni: # "2804 MB (2.739GB)") # * Minden szn HTML sznkd, vagy egy (#) karakter s egy 6 szmjegy hex # sznkd kell legyen. [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 Show_Bytes_As = M # ----------------------- ltalnos -------------------------- # Rows (opcionlis) megadja, melyik sorok szerepeljenek az # sszegzsben. Ha nincs megadva, minden sor szerepel. # Ha le akarod tiltani ezt a jelentst, hasznld a NONE kulcsszt. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- Gyors -------------------------- # Rows (opcionlis) megadja, melyik sorok szerepeljenek a Gyors sszegzsben. # Ha nincs megadva, nem generldik a jelents. # Az ALL kulcssz hatsra megjelenik minden lehetsges adat. [QUICK] Rows = m, W, D, H, B # ----------------------- Grafikonok -------------------------- # BG_Color (opcionlis) a grafikonok httrsznt adhatod meg. # alaprtelmezsben a jelents httrsznt hasznlja. # Font (opcionlis) megadhatod a hasznland bettpust. # meg kell adni a teljes elrsi tvonalat. Opcionlisan megadhatsz # 3 betmretet, vesszvel elvlasztva, amelyek a grafikon cmnek, # tengely- s adatcmkjnek a mrett adjk meg.. # Font_Color (opcionlis) a grafikon szvegnek szne. Alaprtelmezsben azonos a # jelents szvegnek sznvel. # Width (opcionlis) a grafikon mrett (szlessg) adja meg kppontokban. # Alaprtelmezsben 400 # Height (opcionlis) a grafikon mrett (magassg) adja meg kppontokban. # Alaprtelmezsben 300 # 3d (opcionlis) ha 1, 3d, ha 0 draws 2d grafikonok kszlnek. # Alaprtelmezsben 1. # Palette (opcionlis) az oszlopgrafikonokban hasznlatos sznek listja. # Lers a "docs/config.html" fjlban. # Cycle_Colors (opcionlis) ha 1, minden oszlop az oszlopdiagrammokban ms szn lesz # ha 0, minden oszlop az els sznt hasznlja a megadott listbl. # Alaprtelmezsben 1. # Shadows (opcionlis) ha 1, akkor az oszlopdiagrammokon rnykolt oszlopok lesznek, # ha , akkor nem. # Alaprtelmezsben 1. # Format (opcionlis) a grafikonok kimeneti formtuma. # vlaszthat rtkek PNG s JPEG. # Alaprtelmezs PNG. # Lsd a "docs/config.html" tartalmt, ha a kapcsol nem mkdik. # * Minden szn HTML sznkd, vagy egy (#) karakter s egy 6 szmjegy hex sznkd kell legyen. [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- Bngszs -------------------------- # a bngsz (navigcis) oldal belltsa s lersa. # File_Out (opcionlis) a navigcis oldal cme. Ha nincs megadva, # nem kszl keretrendszer (frameset). # BG_Color (opcionlis) a navigcis oldal httrszne. # Background (opcionlis) a httr-kp. # Font (opcionlis) a bettpus neve. # Font_Color (opcionlis) a szveg szne. # Bullet_Image (opcionlis) a "bullet image" neve. # Stylesheet (opcionlis) a Report Magic ltal hasznlt stluslap. # Top_Logo (opcionlis) annak az llomnynak a neve (a munkaknyvtrhoz # viszonytva) amely az oldal tetejn megjelen HTML kdrszletet # tartalmazza. Ha meg van adva, ez jelenik meg a "Report Navigation - # Jelents bngszs" szveg helyn. # * Minden szn HTML sznkd, vagy egy (#) karakter s egy 6 szmjegy hex sznkd kell legyen. [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css Top_Logo = logo.txt # ----------------------- Honlap -------------------------- # Ezek a belltsok nhny ltalnos informcit adnak a statisztikkhoz: # Title (opcionlis) a jelentsek s a keretrendszer (frameset) cme. # Ha nincs megadva, standard cmeket kapsz, mint pl. # "Website statistics for My Domain" a HOSTNAME rtkkel - ha az Analog tadta... # Base_URL (opcionlis) az oldalad cme (URL) amelynek a statisztiki elkszltek # Ha nincs megadva, helyette az Analog ltal tadott HOSTURL lesz felhasznlva # Webmaster (opcionlis) a Webmaster e-mail cme. # ha nincs e-mail cm megadva, az egsz hivatkoz mondat elmarad. # Company_Logo (opcionlis) a beszrand HTML kdot tartalmaz fjl neve. # Ez a jelents vgre kerl s letiltja az Analog s a Report Magic logit. [website] Title = My Website Statistics Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/samples/all-settings-it.ini0100644000175000010010000003763207642525574017100 0ustar kilroyNone# RMAGIC.INI # File delle impostazioni per Report Magic for Analog 2.03 # ------------------------------------------------------- # Traduzione italiana a cura di Massimo Mezzini # ultima revisione: 1 dicembre 2000 # (per errori, imprecisioni e suggerimenti: massimo@menouno.com) # # Questo file contiene tutte le opzioni di settaggio del programma. # Molte di queste opzioni sono impostate con dei valori-tipo, # altre sono "neutralizzate" con il simbolo #, utilizzato anche # per introdurre un commento (Report Magic ignora le righe che incominciano con #) # necessario modificare alcune impostazioni in base ai dati # del sito web sul quale si sta lavorando. # Le informazioni minime delle quali Report Magic ha bisogno sono queste: # File_In = report.dat # Active_Column = R # Webmaster = webmaster@miosito.it # Base_URL = http://www.miosito.it # # ---------------------------------------------- # PER GLI UTENTI CHE LAVORANO SU MAC: il percorso dei file di output espresso # in formato Unix (utilizzabile sia su piattaforma Unix che su Windows). # Su Macintosh sufficiente modificare il percorso inserendo ':'. # File_Out = :reports: # Se intendete utilizzare nel rapporto il pallino Bullet_Image # non dimenticate di specificare in questo caso un percorso di tipo Unix, # perch sulla pagina HTML la stringa di chiamata dell'immagine # Bullet_Image = immagini/bullet.gif # # ---------------------------------------------- # # # ----------------------- statistics -------------------------- # Queste impostazioni si riferiscono alla creazione dei rapporti statistici. # File_In indica il percorso relativo al file di dati generato da Analog, # in formato "computer readable", dal quale Report Magic # attinger le informazioni per creare il rapporto. # Pu essere sostituito dal segno "-" per indicare che i dati # verranno forniti via Standard Input (ad esempio da tastiera) # oppure direttamente da un altro programma (come Analog). # Frame_File_Out (opzionale): indica il nome e il percorso del file-contenitore del rapporto. # In mancanza di istruzioni, viene utilizzato 'index.html'. Se per nemmeno # l'opzione [navigation] File_Out utilizzata, non sar creata la struttura # a cornici. Due parole per spiegare l'utilit di questa opzione: # pensando a grandi siti e quindi a rapporti statistici voluminosi, da # rendere accessibili sul Web, l'autore ha impostato il programma in modo # che fosse possibile distribuire ogni sezione dati su un file autonomo, # pi piccolo e quindi scaricabile in minor tempo. Questo si ottiene # con una struttura "a cornici": una sezione di navigazione, una sezione dati # e una pagina contenitore - il "frameset" - che tiene insieme i primi due. # Frame_Border (opzionale) regola la larghezza del bordo nella struttura a cornici (impostare 0 per nessun bordo) # No_Robots (opzionale): se impostato su 1, aggiunger ad ogni rapporto una metaistruzione # destinata ai motori di ricerca, per escludere la pagina dall'indicizzazione. # Log_File (opzionale): qui possibile inserire il nome di un file sul quale Report Magic # raccoglier i messaggi generati durante la creazione di un rapporto. # Always_Quit (opzionale, solo Macintosh): se impostato su 1, forzer la chiusura # di Report Magic, anche in caso di errori. # Da usare con una 'cron utility' su Mac. # Language (opzionale): dice a Report Magic quale lingua utilizzare nella creazione # dei rapporti. I file .ini per la lingua scelta devono essere # nella relativa cartella, all'interno della sottocartella "lang" # a sua volta contenuta nella cartella di Report Magic. # In altre parole: per creare un rapporto in italiano, necessario # impostare it per l'opzione Language e avere i relativi file # nella cartella rmagic/lang/it. # Include (opzionale): inserisce tutte le impostazioni contenute in un altro # file .ini qui specificato, sostituendo le impostazioni contenute # nel file rmagic.ini sul quale si sta lavorando. # Verbose (opzionale): un gruppo di caratteri indica a Report Magic quali messaggi # visualizzare mentre lavora. I valori validi sono: N per comunicazioni, # W per avvertimenti ed E per errori. L'impostazione predefinita NWE; # se non vogliamo alcun tipo di messaggio possiamo impostare # il valore NONE (nessuno). # Format (opzionale): specifica il formato dei file del rapporto. # I formati attualmente disponibili sono 'XHTML 1.0' (che utilizza # i fogli di stile) e 'HTML 3.2' (che produce file pi pesanti # a causa del gran numero di tags ripetute). # L'impostazione predefinita 'XHTML 1.0'. [statistics] File_In = report.dat Frame_File_Out = index.html Frame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = it # Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- RAPPORTI -------------------------- # Queste impostazioni si riferiscono ai dettagli grafici e alla localizzazione # sul disco della/e pagina/e HTML del rapporto. Ciascun rapporto pu essere definito # autonomamente, nella propria sezione, es. [STATUS]. # Active_Column indica quale colonna di dati deve essere utilizzata per la # creazione dei grafici e per determinare il periodo di maggiore # attivit o le voci del Riepilogo sintetico. # BG_Color (opzionale) il colore dello sfondo sulle pagine del rapporto. # Background (opzionale) un'immagine da utilizzare come sfondo. # Font (opzionale) indica il nome del carattere scelto per il testo. # Font_Color (opzionale) il colore scelto per il testo. # Title_BG_Color (opzionale) il colore dello sfondo per il titolo di ogni rapporto. # Title_Font_Color (opzionale) il colore scelto per i caratteri del titolo. # Title_Font (opzionale) il nome del carattere scelto per il titolo del rapporto. # Data_Font (opzionale) indica il nome del carattere scelto per i dati. # Data_BG_Color_1 (opzionale) il colore di sfondo per la prima riga di dati # nelle tabelle (i colori si alternano). # Data_Font_Color_1 (opzionale) il colore del testo per la prima riga di dati (il valore # preimpostato quello di Font_Color). # Data_BG_Color_2 (opzionale) il colore dello sfondo per la seconda riga di dati. # Data_Font_Color_2 (opzionale) il colore del testo per la seconda riga di dati (il valore # preimpostato quello di Font_Color). # Data_Total_Font (opzionale) il nome del carattere scelto per le righe dei totali # (preimpostato su Data_Font). # Data_Total_Font_Color (opzionale) indica il colore scelto per le righe dei totali # (preimpostato su Data_Font_Color). # Data_Total_BG_Color (opzionale) indica il colore di sfondo per le righe dei totali # Data_Header_Font (opzionale) indica il nome del carattere per le intestazioni # delle tabelle (preimpostato su Data_Font). # Data_Header_Font_Color (opzionale) indica il colore del testo nelle intestazioni # delle tabelle (preimpostato su Data_Font_Color). # Data_Header_BG_Color (opzionale) il colore di sfondo per le intestazioni delle tabelle. # File_Out indica il nome del file o la cartella di destinazione per la pagina # (o le pagine) del rapporto. Se viene indicato il nome di un file, # tutti i rapporti saranno concentrati in un documento unico. # Se si specifica invece il nome di una cartella, ogni sezione # del rapporto sar in un file a s. Infine, se viene inserito # qui il segno '-' verr inviato allo Standard Output un rapporto # in un unico file. # Meta_Refresh (opzionale) indica in secondi il tempo di validit della pagina, # trascorso il quale il browser dovr richiederne una versione # aggiornata al server. Il valore preimpostato equivale a 24 ore. # Se questo valore non specificato oppure 0, # la stringa META REFRESH non sar inserita nel file HTML. # Image_Dir (opzionale): come previsto per Analog, qui possibile indicare # la cartella nella quale trovare i file grafici dei marchi # da inserire a pie' di pagina. # Stylesheet (opzionale) individua un foglio di stile, per consentire a Report Magic # di utilizzare gli stili per la formattazione del testo # Graph_Level (opzionale): nei rapporti gerarchici, stabilisce # il livello che deve essere preso in considerazione # per la creazione dei grafici. L'opzione ignorata # per i rapporti di tipo diverso. # Show_Bytes_As (opzionale) determina fino a che punto i valori in byte saranno # semplificati nei rapporti. Le opzioni valide sono # K, M, G, T, etc. Se nessun valore fornito, i byte # saranno ridotti al pi piccolo numero intero. # Nota: tutti i colori possono essere espressi con uno dei nomi previsti dallo standard HTML # o con il simbolo # seguito dal codice colore esadecimale. I colori preimpostati # per lo sfondo e per il testo generale sono rispettivamente il bianco (#FFFFFF) # e il nero (#000000). [reports] BG_Color = #FFFFFF Background = immagini/sfondo.jpg Font = Arial, Helvetica Font_Color = #000000 Title_BG_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../immagini/ Stylesheet = styles.css Graph_Level = 1 Show_Bytes_As = # ----------------------- GENERALE -------------------------- # Rows (opzionale) specifica quali righe inserire nel Riepilogo generale. # Se questa voce viene omessa, tutte le righe saranno inserite. # Per disabilitare il Riepilogo generale, impostare l'opzione su NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- SINTETICO -------------------------- # Rows (opzionale) specifica quali righe inserire nel Riepilogo sintetico. # Se questa voce viene omessa, non sar creato il Riepilogo sintetico. # possibile impostare ALL per mostrare tutte le righe disponibili. [QUICK] Rows = m, W, D, H, B # ----------------------- GRAFICI -------------------------- # BG_Color (opzionale) permette di specificare un colore da usare per # lo sfondo dei grafici. Se nessun colore viene specificato, # sar utilizzato il colore dello sfondo delle pagine del rapporto. # Font (opzionale) permette di indicare un carattere TrueType da utilizzare # per le didascalie dei grafici. necessario indicare il percorso # completo per il file che corrisponde al carattere scelto. Volendo, si pu # anche impostare tre valori (separati da una virgola) per indicare - in # punti tipografici - nell'ordine: le dimensioni del carattere # per il titolo dei grafici, per la legenda degli assi # e per le etichette dei dati. # Font_Color (opzionale) il colore del testo nei grafici. preimpostato sul colore # del testo nella pagina. # Reverse_Time (opzionale): se impostato su 1, inverte l'ordine dei dati/tempo nei grafici. # Utilizzabile nel caso in cui il file di log del server presenti i dati partendo # dai pi recenti e procedendo a ritroso. # Width (opzionale) imposta la larghezza desiderata (in pixel) per i grafici; # preimpostata su 400. # Height (opzionale) imposta l'altezza desiderata (in pixel) per i grafici; # preimpostata su 300. # 3d (opzionale) impostata su 1, produrr grafici tridimensionali, su 0 invece grafici a due # dimensioni; (preimpostata su 1). # Data_Colors (opzionale) elenca i nomi dei colori da utilizzare per i grafici a barre. # Per una lista di nomi validi, vedere il file docs/config.html. # Cycle_Colors (opzionale) impostata su 1, far s che ogni barra nei grafici a barre # sia di colore diverso, in base alla lista indicata in Data_Colors. Impostata su 0, # produrr barre di un unico colore, il primo della lista (preimpostata su 1). # Shadows (opzionale) impostata su 1, creer l'effetto-ombra dietro alle barre, # nei grafici a barre. Su 0, nessun effetto-ombra (preimpostata su 1). # Format (opzionale) permette di scegliere il formato per i grafici. I formati validi # sono PNG e JPEG. Quello preselezionato PNG perch produce file meno pesanti. # opportuno leggere la pagina docs/config.html per capire per quali ragioni # questa opzione potrebbe non funzionare con la vostra versione di Report Magic. # * Tutti i colori possono essere espressi con il nome HTML o col simbolo # seguito # dalle sei cifre del codice colori esadecimale. [graphs] BG_Color = #FFFFCC Font = C:\Windows\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Data_Colors = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGAZIONE -------------------------- # Queste impostazioni si riferiscono all'aspetto e alla localizzazione # della pagina di navigazione. # File_Out (opzionale) indica il nome del file che contiene il men di navigazione. # Se nessuna istruzione viene specificata, non verr creata la struttura a cornici. # BG_Color (opzionale) il colore dello sfondo per la pagina di navigazione. # Background (opzionale) un'immagine da usare come sfondo per la pagina di navigazione. # Font (opzionale) il nome del carattere scelto per il men di navigazione. # Font_Color (opzionale) il colore scelto per il testo del men di navigazione. # Bullet_Image (opzionale) indica la posizione sul disco del pallino decorativo # utilizzabile nel men di navigazione. # Stylesheet (opzionale) individua un foglio di stile, per consentire a Report Magic # di utilizzare gli stili per la formattazione del testo # Top_Logo (opzionale) indica il nome di un file (il percorso relativo rispetto alla # directory di lavoro) che contiene uno spezzone di HTML da inserire in testa # alla pagina. Se questo e` fornito, sostituisce il testo # "Navigare lungo il rapporto". # * Tutti i colori possono essere espressi con il nome HTML o col simbolo # seguito # dalle sei cifre del codice colori esadecimale. [navigation] File_Out = nav.html BG_Color = #FFFFFF Background = immagini/sfondo.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = immagini/bullet.gif Stylesheet = styles.css Top_Logo = testata.txt # ----------------------- SITO WEB -------------------------- # Queste impostazioni forniscono semplicemente alcune informazioni e collegamenti # da utilizzare nelle pagine dei rapporti statistici. # Title (opzionale) indica il titolo che appare in apertura del rapporto # (oltre che sulla barra superiore del browser) e nella pagina-contenitore # della struttura a cornici. Se non viene specificato, Report Magic # utilizzer una formula generica del tipo "Statistiche per il sito web..." # utilizzando l'indicazione dell'host fornita da Analog, se presente. # Base_URL (opzionale) l'URL del sito al quale le statistiche si riferiscono. # Se non viene specificato, Report Magic utilizzer l'URL eventualmente # indicato da Analog, se presente. # Webmaster (opzionale) l'indirizzo e-mail del gestore del sito, o comunque di qualcuno # al quale il visitatore possa chiedere informazioni sulle statistiche di accesso. # Se nessun indirizzo viene inserito, l'opzione sparir dal rapporto. # Company_Logo (opzionale) indica il nome di un file di testo (localizzato con un percorso # relativo, rispetto alla cartella di lavoro di Report Magic) che contiene # uno spezzone di HTML da inserire nel rapporto, per aggiungere in fondo # alla pagina uno o pi marchi scelti dall'utente al posto di quelli predefiniti # (Analog e Report Magic). [website] Title = Rapporto statistico per il sito..... Webmaster = webmaster@miodominio.it Base_URL = http://www.miodominio.it Company_Logo = marchi.txt rmagic-2.21/samples/all-settings-ja.ini0100644000175000010010000002436107642525574017051 0ustar kilroyNone# # ---------------------------------------------- # Analog 2.0Report Magicե # ---------------------------------------------- # # ΥեϡReport MagicեǤ # ('#'ǻϤޤԤϡȤȤư뤿Report Magicˤ̵뤵ޤ) # ʤΥȤ˹礦褦ꤷƤ # ɬ׺¤ܤϲΤȤǤ # File_In = report.dat # Active_Column = R # Webmaster = webmaster@mydomain.com # Base_URL = http://www.mydomain.com # # ---------------------------------------------- # MAC 桼: ϥѥUNIXꤷޤ(UNIXWINDOWSǤưޤ) # ޥåȥåưˤϡѥ':'ѤƤ # File_Out = :reports: # ⤷⡢Bullet_ImageѤΤǤ顢ϡUNIXꤹ뤳ȤФƤƤ # ȤΤ⡢WEBڡΥǻѤ뤫Ǥ # Bullet_Image = images/bullet.gif # # ---------------------------------------------- # # ----------------------- statistics -------------------------- # ǤϡݡȤ˴ؤԤޤ # File_In # AnalogǽϤ줿'COMPUTER'Υեꤷޤ # "-"ꤷơSTDINʤ⤷ϥѥסˤǡɤ߹ळȤǽǤ # Frame_File_Out (optional) # ե졼ѤΥե̾Ⱦꤷޤ # ꤷʤȡ'index.html'Ѥ뤳Ȥˤʤޤ # NAVIGATIONFile_Outꤷʤˤϡե졼༫Τޤ # Frame_Border (optional) # ե졼ζframesetborder°͡ˤꤷޤ # No_Robots (optional) # 1ꤹȡܥåȤ˥ǥåκԤ碌ʤ褦METAϤ褦ˤʤޤ # Log_File (optional) # ե̾ꤷޤ # Always_Quit (optional, Mac only) # 1ꤹȡ㤨顼ȯƤReport MagicŪߤޤMac'cron'Ȱ˻ѤƤ # Language (optional) # ݡȤݤ˻Ѥꤷޤ # եϡlangǥ쥯ȥ겼Ρꤷ̾ƱΥǥ쥯ȥ¸ߤʤФʤޤ # 㤨СɥĸǥݡȤϤˤϡ'de'Ѥޤ # ȡ/rmagic/lang/deΥե򸫤˹ԤޤʥǥեȤ en # Include (optional) # ꤵ줿ե뤫ɤ߹ߤޤ # ΥեǤϡΥե񤭤뤳Ȥˤʤޤ # Verbose (optional) # ¹Ի˽Ϥåꤹʸꤷޤ # NϡեåWٹE顼Ǥ # NONEꤹȥåϤޤ(ǥեȤ NWE) # Format (optional) # ݡȤνϷꤷޤ # 'XHTML 1.0'ʥ륷Ȥѡˤ'HTML 3.2'ѡˤΤ줫ꤹ뤳ȤǽǤ # ǥեȤϡ'XHTML 1.0'Ǥ [statistics] File_In = report.dat Frame_File_Out = index.html Frame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = ja #Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- reports -------------------------- # ǤϡݡȤθɤ˴ؤԤޤ # ġΥݡȤȤˡ륻ˤԤȤǽǤ(. [STATUS]) # BG_Color (optional) # ݡȤطʿ # Background (optional) # ݡȤطʥ᡼ # Font (optional) # ե̾ # Font_Color (optional) # եȤο # Title_Font (optional) # ݡȥȥ˴ؤե̾ # Title_BG_Color (optional) # ݡȥȥ˴ؤطʿ # Title_Font_Color (optional) # ݡȥȥ˴ؤեȤο # Data_Font (optional) # ǡ˴ؤե̾ # Data_BG_Color_1 (optional) # ǡԤ˴ؤطʿ # Data_Font_Color_1 (optional) # ǡԤ˴ؤΥեȤο(ǥեͤϡFont_Color). # Data_BG_Color_2 (optional) # ǡԤ˴ؤ⤦طʿ # Data_Font_Color_2 (optional) # ǡԤ˴ؤ⤦ΥեȤο(ǥեͤϡFont_Color). # Data_Total_Font (optional) # ׹Ԥ˴ؤե̾(ǥեͤϡData_Font). # Data_Total_Font_Color (optional) # ׹Ԥ˴ؤեȤο(ǥեͤϡData_Font_Color) # Data_Total_BG_Color (optional) # ׹Ԥ˴ؤطʿ # Data_Header_Font (optional) # ơ֥إåԤ˴ؤե̾ (ǥեͤϡData_Font) # Data_Header_Font_Color (optional) # ơ֥إåԤ˴ؤեȤο (ǥեͤϡData_Font_Color) # Data_Header_BG_Color (optional) # ơ֥إåԤ˴ؤطʿ # Active_Column # պ˻Ѥ®ݡȤˤǤȯϰϤǤꤹꤷޤ # Reverse_Time (optional) # 1򥻥åȤȡַϥݡȤˤ뼴ȿž뤳ȤǤޤ # File_Out # ݡȤϤե⤷ϥǥ쥯ȥꤷޤ # եꤹȡ٤ƤΥݡȤꤵ줿ե˽񤭹ޤޤ # ǥ쥯ȥꤹȡƥݡȥե뤬ǥ쥯ȥ˽Ϥޤ # ⤷⡢'-'ꤷˤϡ٤STDOUT˽Ϥޤ # Meta_Refresh (optional) # ڡͭ¤ÿꤷޤ # 0ꤷ겿ꤷʤȡMETA REFRESHϤޤ # Image_Dir (optional) # AnalogΤ褦ˡReportMagicˤ롢 # ̺Dzɽ᡼եξꤹ뤳ȤǤޤ # Stylesheet (optional) # Ѥ륷Ȥꤷޤ # Graph_Level (optional) # إݡȤˤơդɽإ٥ꤷޤ # إݡȰʳǤϡ̵뤵ޤ #* ٤ƤοϡHTMLο̾⤷ϡ# 6Ĥ16ʿɤǻꤹ뤳ȤǽǤ [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R Reverse_Time = 1 File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 # ----------------------- GENERAL -------------------------- # Rows (optional) # ΤγץݡȤɽԤꤷޤ # ꤷʤȤ٤Ƥɽޤ # ɽʤˤϡNONEꤷƤ [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (optional) # ®ݡȤɽԤꤷޤ # ꤷʤȡ®ݡȤϺޤ # ٤ƤɽˤϡALLꤷƤ [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (optional) # ΰطʿꤷޤ # ꤷʤˤϡݡȥڡطʿѤޤ # Font (optional) # դǻѤTrueTypeեȤꤷޤ # եȤؤΥեѥꤷƤ # ץȤơ3ĤΥեȥ򥫥޶ڤꤹ뤳ȤǤޤ # 줾졢եȥ롢ȥ٥롢ǡ٥ΥեȥȤʤޤ # Font_Color (optional) # վʸ˴ؤ뿧ꤷޤ # ǥեȤϡݡȥڡΥեȤοǤ # Width (optional) # դꤷޤ(ԥñ) ǥեȤ400Ǥ # Height (optional) # դι⤵ꤷޤ(ԥñ) ǥեȤ300Ǥ # 3d (optional) # 1ꤹȡ3Dշɽޤ02DǤǥեȤ1Ǥ # Palette (optional) # դǻѤǤ뿧ΥꥹȤꤷޤ # Ǥ뿧ϡdocs/config.html򻲾ȤƤ # Cycle_Colors (optional) # 1򥻥åȤȡդǡ줽ˤưۤʤ뿧Ѥޤ # 0ꤹȤ٤ƱˤʤޤǥեȤ1Ǥ # Shadows (optional) # 1򥻥åȤ뤳Ȥǡվ˱ƤĤޤ # 0ꤹȱƤϤʤʤޤǥեȤ1Ǥ # Format (optional) # դνϥեޥåȤꤷޤ # PNGJPEGΤ줫Ǥޤ # ǥեȤǤϡPNGˤʤäƤޤȤΤե륵꾮Ǥ # ܤϡdocs/config.html򻲾ȤƤ # * ٤ƤοϡHTMLο̾⤷ϡ# 6Ĥ16ʿɤǻꤹ뤳ȤǽǤ [graphs] BG_Color = #FFFFCC Font = /usr/share/fonts/ja/TrueType/kochi-mincho.ttf,14,14,14 Font_Color = #000000 Width = 400 Height = 400 3d = 1 Palette = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGATION -------------------------- # Ǥϡܼθɤ˴ؤԤޤ # File_Out (optional) # ܼΥե̾ # ꤷʤȡե졼बޤ # BG_Color (optional) # ܼطʿ # Background (optional) # ܼطʥ᡼ # Font (optional) # Ѥե̾ # Font_Color (optional) # եȤο # Bullet_Image (optional) # ܼˤ륤᡼եؤΥ # Stylsheet (optional) # 륷 # * ٤ƤοϡHTMLο̾⤷ϡ# + 6Ĥ16ʿɤǻꤹ뤳ȤǽǤ [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css # ----------------------- WEBSITE -------------------------- # ǤϡݡȤΰŪԤޤ # Title (optional) # ٤ƤΥݡȤκǾƥե졼ΥȥȤɽ륿ȥꤷޤ # ꤷʤȡ"Website statistics for My Domain" Ѥ뤳Ȥˤʤޤ # κݤΡۥ̾ϡAnalog줿ΤѤޤ # Base_URL (optional) # ׾μȤʤäƤ륵ȤURLꤷޤ # ꤷʤȡAnalogǻѤ줿ۥȤURLѤޤ # Webmaster (optional) # ΥݡȤФ䤤碌뤿Υ᡼륢ɥ쥹ꤷޤ # ꤷʤȡȾ˲ɽޤ # Company_Logo (optional) # ݡȤɽHTMLեΰʤե̾ꤷޤ(Хѥ) # ݡȤκDzɽ졢¾Υϼޤ(Analog, Report Magic). [website] Title = ֥Ȥ Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/samples/all-settings-no.ini0100644000175000010010000003030707642525574017070 0ustar kilroyNone# # ---------------------------------------------- # Report Magic for Analog 2.0 Settings File # ---------------------------------------------- # # This file contains all the Report Magic settings. # (Comments are lines starting with '#' and are ignored by Report Magic.) # You should change the values to match your site information. # Minimally, the following need to be changed: # File_In = report.dat # Active_Column = R # Webmaster = webmaster@mydomain.com # Base_URL = http://www.mydomain.com # # ---------------------------------------------- # MAC USERS: The output path, below, is specified in Unix format # (which works for Unix and Windows systems). To run this on # the Macintosh platform, change the path to use ':'. # File_Out = :reports: # If using the Bullet_Image navigational item, remember to use Unix-style # path specifiers here, because this is the image tag on the web page: # Bullet_Image = images/bullet.gif # # ---------------------------------------------- # # ----------------------- statistics -------------------------- # These settings describe how the statisitcs reports are generated. # File_In is the location of the computer readable output from analog. # This can be the symbol "-" to designate that the CRO data # will come from STDIN (or a pipe). # Frame_File_Out (optional) is the name and location of the frameset # page. If no value is given, this defaults to 'index.html' unless # [navigation]File_Out is also not used, in which case no frameset # is created at all. # Frame_Border (optional) sets the width of the border of the frameset (0 for none) # No_Robots (optional) if set to 1 will add a META tag to each report # file to tell robots not to index the file. # Log_File (optional) this can be set to the name of a file that Report # Magic will log all messages to. # Always_Quit (optional, Mac only) if set to 1 will force Report Magic to # Quit, even if errors occur. Use this with the 'cron' utility on Macs. # Language (optional) tells Report Magic what language to use in generating the # reports. The language file must be in the subdirectory of its # name in the lang subdirectory in the Report Magic directory. # That is, to run the report in German you would use 'de' for the # language and the files are found in rmagic/lang/de. (Default = en) # Include (optional) will include all the settings from the specified ini file # overriding those with the settings in this file. # Verbose (optional) is a set of letters indicating what kind of messages to # output when running. Valid values are N for notices, W for warnings # and E for errors. Use NONE for no messages at all. (Default = NWE) # Format (optional) specifies the output file format for the reports. Currently # accepted formats are 'XHTML 1.0' (which uses CSS style sheets) and # 'HTML 3.2' (which uses lots of tags). Default is 'XHTML 1.0'. [statistics] File_In = report.dat Frame_File_Out = index.html Frame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = no Include = standard.ini Verbose = NWE Format = XHTML 1.0 # ----------------------- reports -------------------------- # These settings describe the look and location of all the reports. Individual # reports can be defined separately in their own sections (e.g. [STATUS]) # BG_Color (optional) is the background color of the report page. # Background (optional) is an image for the page background # Font (optional) is the name of the desired typeface # Font_Color (optional) is the color of the output text. # Title_Font (optional) is the name of the desired typeface for the report title # Title_BG_Color (optional) is the background color of the report title. # Title_Font_Color (optional) is the color of the title text. # Data_Font (optional) is the name of the desired typeface for the data. # Data_BG_Color_1 (optional) is the background color of one set of data rows. # Data_Font_Color_1 (optional) is the color of the text for the data in one set of # rows (defaults to Font_Color). # Data_BG_Color_2 (optional) is the background color of the other set of data rows. # Data_Font_Color_2 (optional) is the color of the text for the data in the other # set of rows (defaults to Font_Color). # Data_Total_Font (optional) is the name of the desired typeface for the summary # data rows (defaults to Data_Font). # Data_Total_Font_Color (optional) is the name of the color for the text in the # summary data rows (defaults to Data_Font_Color). # Data_Total_BG_Color (optional) is the background color of the summary data rows # Data_Header_Font (optional) is the name of the desired typeface for the table # header rows (defaults to Data_Font). # Data_Header_Font_Color (optional) is the name of the color for the text in the # table header rows (defaults to Data_Font_Color). # Data_Header_BG_Color (optional) is the background color of data table headers. # Active_Column tells which column to use for graphs and determining the # most active period or item in the Quick Summary. # Reverse_Time (optional) if set to 1 will reverse the data sets for # time report graphs. Use this if your data runs newest to oldest. # File_Out is the file or directory for the report page(s). If this is # a filename then all reports are put in one file. If this is a # directory name, then each report will have its own file. If this # is the symbol '-' then a single file report will be sent to STDOUT. # Meta_Refresh (optional) is the number of Seconds until the page expires. # If this is 0 or not included, then no META REFRESH tag will be given. # Image_Dir (optional) like the Analog option can be set to tell Report # Magic where to find the logo images for the bottom of the page. # Stylesheet (optional) points to a stylesheet for Report Magic to use for styles. # Graph_Level (optional) sets the level in a hierarchy that is graphed for # hierarchical reports. This is ignored for all other reports. # Show_Bytes_As (optional) determines how much byte values are simplified # when shown in reports. Valid values are K, M, G, T, etc. If no value # is given, then bytes are fully reduced to the smallest whole number. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 Show_Bytes_As = M # ----------------------- GENERAL -------------------------- # Rows (optional) specifies which rows to include in the general # summary. If not included, then ALL rows are shown. To # disable the General Summary, use the keyword NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (optional) tells which rows to show for the Quick Summary. # If not included, then no Quick Summary is made. You # can use the keyword ALL to show all available rows. [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (optional) allows you to specify a color to be used for the # graphing area of the graph. If none is given this will use the # report page background color. # Font (optional) allows you to specify a TrueType Font to use for the # graphs. This should provide the full pathname to the font. You # may also, optionally, include 3 font point-sizes, separated by # commas specifying the size of the graph titles, axes labels and # data labels. # Font_Color (optional) is the color of the graph text. Defaults to the # report page text color. # Width (optional) gives the desired width (in pixels) of the graph. Default is 400 # Height (optional) gives the desired height (in pixels) of the graph. Default is 300 # 3d (optional) if set to 1, will draw 3d graphs, 0 draws 2d graphs. Default is 1. # Palette (optional) gives a list of color names to use for the bars in the # bar charts. For valid names, see the docs/config.html. # Cycle_Colors (optional) if set to 1, each bar in a series on the bar charts # will use a different color from the Data_Colors list. If set to 0, # all bars will use the first color. Default is 1. # Shadows (optional) if set to 1 will draw drop-shadows on the bars in the # bar charts. Set to 0 to disable the shadows. Default is 1. # Format (optional) give the desired ouput format for graph images. Valid # values are PNG and JPEG. Default is PNG because the files are # much smaller. See docs/config.html for why this may have no # effect on your version of Report Magic. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [graphs] BG_Color = #FFFFCC Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGATION -------------------------- # These settings describe the look and location of the navigation page. # File_Out (optional) is the name of the file for the navigation page. If # no value is given for this option, then no frameset will be built. # BG_Color (optional) is the background color of the navigation page. # Background (optional) is an image for the page background # Font (optional) is the name of the desired typeface # Font_Color (optional) is the color of the output text. # Bullet_Image (optional) is a vitual link to the navigation bullet image. # Stylesheet (optional) points to a stylesheet for Report Magic to use for # styles. # Top_Logo (optional) is the name of a file (relative to the working # directory) that contains a snippet of HTML to insert at the # top of the page. If this is provided it replaces the "Report # Navigation" text. # * All colors can be an HTML color name or a hash (#) and a 6-digit hex color code [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css Top_Logo = logofile.html # ----------------------- WEBSITE -------------------------- # These settings just provide some general information for the statistics # Title (optional) is the title that appears at the top of every report # file and the title for the frameset. If not given, this will # use standard text like "Website statistics for My Domain" with # the Host Name value if provided by Analog. # Base_URL (optional) is the URL of the site for which these statistics # were collected. If not given this will use the Host URL value # if provided by Analog # Webmaster (optional) is the email address to contact for questions on # the reports. If no value is given, the contact statement will # not be included. # Company_Logo (optional) is the name of a file (relative to the working # directory) that contains a snippet of HTML to insert into the # report. This appears at the bottom of the report and removes # the other logos (Analog, Report Magic). [website] Title = Mine webstatistikker Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/samples/all-settings-ru.ini0100644000175000010010000000157307642525574017105 0ustar kilroyNone# # Sample Report Magic settings file. # For details on commands see the documentations, stating at docs/index.html # or see the comments in the rmagic.ini file in each language directory # (e.g lang/en/rmagic.ini) # [statistics] File_In = report.dat Frame_File_Out = index.html # Reverse_Time = 1 Format= XHTML 1.0 Language=ru Frame_Border = 0 [reports] Active_Column=R File_Out = D:\glavsnab\webserver\stat\report.html Stylesheet = /lib/rmagic.css Graph_Level = 2 [QUICK] Rows = ALL [graphs] # Font = C:\Winnt\Fonts\Arial.ttf, 12, 11, 10 # Font = C:\Winnt\Fonts\consmon.ttf, 11, 10, 9 Font = C:\Winnt\Fonts\HELVDL.TTF, 12, 11, 10 [navigation] File_Out = nav.html Stylesheet =/lib/rmagic.css [website] Title = main.glavsnab.ru Webmaster = postmaster@glavsnab.ru Base_URL = http://www.glavsnab.ru Company_Logo = logofile.htm rmagic-2.21/samples/all-settings-sv.ini0100644000175000010010000003011207642525574017076 0ustar kilroyNone# # ---------------------------------------------- # Instllningsfil fr Report Magic fr Analog 2.0 # ---------------------------------------------- # # Denna fil innehller alla instllningar som kan gras fr Report Magic. # (Rader som brjar med '#' r kommentarer och efterfljande text ingnoreras av Report Magic.) # ndra vrden s att det passar din Webplats. # Du mste tminstone ndra fljande: # File_In = report.dat # Active_Column = R # Webmaster = webmaster@mydomain.com # Base_URL = http://www.mydomain.com # # ---------------------------------------------- # MAC ANVNDARE: Skvgen till rapporter nedan, r angiven i Unix format # (vilket fungerar under Unix och Windows system). Fr att det skall fungera # p Macintosh platformen, ndra s att skvgen anvnder ':'. # File_Out = :reports: # Om du anvnder Bullet_Image fr att tydliggra navigering, kom hig att anvnda Unix # format fr denna skvg, eftersom det r en tag i Websidan: # Bullet_Image = images/bullet.gif # # ---------------------------------------------- # # ----------------------- statistics -------------------------- # Fljande instllningar beskriver hur statistikrapporter skall genereras. # File_In r skvgen till den frn Analog genererade filen i "dator" format. # Detta kan representeras av symblen "-" fr att visa att CRO datat skall # lsas frn STDIN (eller en kanal). # Frame_File_Out (valfritt) r namnet (och skvgen) till ramfilen. # Om inget anges kommer detta att vara 'index.html' svida inte heller # [navigation]File_Out anges, fr d skapas inte ramar alls. # Frame_Border (valfritt) anger bredden p ramens kantlinje. (0 dljer kantlinjen) # No_Robots (valfritt) om angivet till 1 kommer en META tag skrivas i varje rapport # som anger fr indexeringsrobotar att sidan inte skall indexeras (gras # skbar). # Log_File (valfritt) om detta anges skall det vara ett filnamn till vilket Report # Magic skriver alla meddelanden under krning. # Always_Quit (valfritt, gller endast Mac) om angivet till 1 s tvingar det Report # Magic att avslutas ven om ett fel intrffar. Anvnd detta tillsammans med # verktyget 'cron' p Macar. # Language (valfritt) anger fr Report Magic i vilket sprk rapporter skall genereras. # Sprkfilen mste finnas i en underkatalog med samma namn som sprkkoden i # katalogen lang i Report Magic's katalog. # Allts, fr att generera rapporter p Tyska anger du 'de' som sprk # och sprkfilerna skall finnas i rmagic/lang/de. (Frinstllt vrde = en) # Include (valfritt) kommer att inkludera alla instllningar frn specificerad ini fil # och erstta eventuella vrden angivna i denna fil. # Verbose (valfritt) r en samling bokstver som indikerar vilken typ av meddelanden som # skrivs ut nr programmet krs. Giltiga vrden r N fr informativa meddelanden, # W fr varningar, och E fr felmeddelanden. Om NONE anges skrivs inga meddelanden ut. # (Frinstllt vrde r = NWE) # Format (valfritt) anger i vilket fil-format rapporter skapas. F.n. accepteras # 'XHTML 1.0' (vilket anvnder CSS style sheets) och 'HTML 3.2' (vilket nyttjar # mycket taggar). Frinstllt vrde r 'XHTML 1.0'. [statistics] File_In = report.dat Frame_File_Out = index.html FRame_Border = 0 No_Robots = 1 Log_File = rmagic.log Always_Quit = 1 Language = se Verbose = NWE Format = XHTML 1.0 # ----------------------- reports -------------------------- # Fljande instllningar anger utseende och placering fr alla rapporter. Rapporter # kan dessutom ha individuella instllningar i respektive rapports sektion (ex. [STATUS]). # BG_Color (valfritt) rapportens bakgrundsfrg # Background (valfritt) rapportens bakgrundsbild # Font (valfritt) namnet p nskat typsnitt # Font_Color (valfritt) frgen p text. # Title_Font (valfritt) namnet p det typsnitt som anvnds fr rapportens titel # Title_BG_Color (valfritt) bakgrundsfrgen fr rapportens titel. # Title_Font_Color (valfritt) frgen p titeltexten. # Data_Font (valfritt) namnet p det typsnitt som anvnds fr data. # Data_BG_Color_1 (valfritt) bakgrundsfrgen som anvnds fr udda rader med data (tabeller). # Data_Font_Color_1 (valfritt) frgen p texten i udda rader med data (frinstllt = Font_Color). # Data_BG_Color_2 (valfritt) bakgrundsfrgen som anvnds fr jmna rader med data (tabeller). # Data_Font_Color_2 (valfritt) frgen p texten i jmna rader med data (frinstllt = Font_Color). # Data_Total_Font (valfritt) namnet p det typsnitt som anvnds fr summerande datarader (frinstllt = Data_Font). # Data_Total_Font_Color (valfritt) frgen p texten i summerande datarader (frinstllt = Data_Font_Color). # Data_Total_BG_Color (valfritt) bakgrundsfrgen som anvnds i summerande datarader. # Data_Header_Font (valfritt) namnet p typsnitt som anvnds fr tabellens rubrikrad (frinstllt = Data_Font). # Data_Header_Font_Color (valfritt) frgen p texten i tabellens rubrikrad (frinstllt = Data_Font_Color). # Data_Header_BG_Color (valfritt) bakgrundsfrgen som anvnds i tabellens rubrikrad. # Active_Column anger vilken kolumn som inehller grafdata samt berkning fr mest aktiva period och # data i snabbsummeringen. # Reverse_Time (valfritt) anges till 1 om du vill vnda tidsaxeln i time reports. # Anvnd detta om det senaste hndelserna fr din Webserver kommer frst i loggfilen. # File_Out nament p den fil eller katalog dr du vill din(a) rapport(er). Om detta r ett filnamn # kommer alla rapporter i en fil. r det ett katalognamn kommer respektive rapport i en egen fil. # Om detta r symblen '-' kommer hela rapporten (som en fil) att skickas till STDOUT. # Meta_Refresh (valfritt) antalet sekunder innan sidan upphr att glla. # Om detta r 0 eller saknas kommer ingen META REFRESH tag att anges. # Image_Dir (valfritt) liknande Analog's instllning, kan anvndas fr att tala om fr Report # Magic var logotyp bilder fr sidfoten kan hittas. # Stylsheet (valfritt) pekar ut ett stylesheet som Report Magic skall anvnda. # Graph_Level (valfritt) anger vilken niv i en hierarkisk rapport som grafen skall # beskriva. Denna instllning ignoreras fr alla andra rapporter. # Show_Bytes_As (valfritt) avgr hur mycket ett byte vrde frenklas vid visning # i en rapport. Giltiga vrden r K, M, G, T, etc. Om inget angivits # kommer minsta mjliga heltal att visas. # * Alla frger kan anges som HTML frgnamn eller ett staket (#) och en 6-siffrig hexadeciaml frgkod [reports] BG_Color = #FFFFFF Background = images/background.jpg Font = Arial, Helvetica Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Verdana, Arial, Helvetica, sans-serif Data_Font_Color_1 = #000000 Data_BG_Color_1 = #CCCCCC Data_Font_Color_2 = #000000 Data_BG_Color_2 = #FFFFFF Data_Total_Font = Verdana, Arial, Helvetica, sans-serif Data_Total_Font_Color = #000000 Data_Total_BG_Color = #CCFFCC Data_Header_Font = Verdana, Arial, Helvetica, sans-serif Data_Header_Font_Color = #000000 Data_Header_BG_Color = #CCCCFF Active_Column = R File_Out = reports/ Meta_Refresh = 86400 Image_Dir = ../images/ Stylesheet = styles.css Graph_Level = 1 # ----------------------- GENERAL -------------------------- # Rows (valfritt) anger vilka rader som skall inkluderas i versiktsrapporten # Om detta inte anges visas alla rader. Om du inte vill ha ngon versikt, # ange NONE. [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT # ----------------------- QUICK -------------------------- # Rows (valfritt) anger vilka rader som skall visas i snabbsummeringen. # Om detta inte anges kommer inte snabbsummeringen att skapas. # Du kan anvnda nyckelordet ALL fr att visa alla rader. [QUICK] Rows = m, W, D, H, B # ----------------------- graphs -------------------------- # BG_Color (valfritt) lter dig ange den frg som skall anvndas som bakgrund fr grafen. # Om inget anges kommer rapportens bakgrundsfrg att anvndas. # Font (valfritt) lter dig ange en TrueType Font att anvndas i grafer. # Detta skall vara fullstndig skvg till fonten. Du kan ven # (valfritt) ange 3 fontstorlekar (angivet i punkter), separerade med # kommatecken som anger storleken fr grafens titel, axlar, etiketter och # dataetiketter. # Font_Color (valfritt) anger frgen fr grafens text. Frinstllt vrde r # rapportens textfrg. # Width (valfritt) anger nskad bredd (i pixlar) fr grafen. Frinstllt vrde r 400 # Height (valfritt) anger nskad hjd (i pixlar) fr grafen. Frinstllt vrde r 300 # 3d (valfritt) Ange 1 om du vill ha 3D grafer, 0 ritar 2D grafer. Frinstllt vrde r 1. # Palette (valfritt) anger en lista med frgnamn att anvndas i stapeldiagrammen. # Se docs/config.html fr giltiga namn. # Cycle_Colors (valfritt) Ange 1 om du vill att varje stapel i stapeldiagrammet skall anvnda # olika frger frn Data_Colors listan. Ange 0 om du vill att alla staplar skall anvnda # den frsta frgen. Frinstllt vrde r 1. # Shadows (valfritt) Ange 1 om du vill ha skuggor till staplarna i stapeldiagram. # Ange 0 om du inte vill ha skuggor. Frinstllt vrde r 1. # Format (valfritt) anger nskat bildformat fr grafbilder. Giltiga vrden # r PNG och JPEG. Frinstllt vrde r PNG fr de bilderna r mycket mindre. # Se docs/config.html fr att f reda varfr detta kanske inte gller fr din # version av Report Magic. # * Alla frger kan anges som HTML frgnamn eller ett staket (#) och en 6-siffrig hexadeciaml frgkod [graphs] BG_Color = #FFFFCC #Font = C:\Winnt\Fonts\Arial.ttf, 14, 12, 10 Font_Color = #000000 Reverse_Time = 1 Width = 400 Height = 300 3d = 1 Palette = lgreen, lblue, lred, lpurple, lyellow, green, blue, red, purple, yellow Cycle_Colors = 1 Shadows = 1 Format = png # ----------------------- NAVIGATION -------------------------- # Fljande instllningar beskriver utseendet och placering utav navigeringssidan. # File_Out (valfritt) namnet p den fil som utgr navigeringssidan. # Om detta inte anges kommer inte ramsidan att skapas. # BG_Color (valfritt) bakgrundsfrgen fr navigeringssidan. # Background (valfritt) en bild att anvnda som sidans bakgrund # Font (valfritt) namnet p nskat typsnitt # Font_Color (valfritt) frgen p den text som skrivs ut. # Bullet_Image (valfritt) en lnk till den bild som skall anvndas som punktlnk. # Stylsheet (valfritt) pekar ut ett stylesheet som Report Magic skall anvnda fr stilar. # Top_Logo (valfritt) r namnet p den fil (relativt till arbetskatalogen) # vilken innehller en snutt HTML som skall infras verst p sidan. # Om detta angivits s erstter det "Report Navigation". # * Alla frger kan anges som HTML frgnamn eller ett staket (#) och en 6-siffrig hexadeciaml frgkod [navigation] File_Out = navfile.html BG_Color = #FFFFFF Background = images/background.jpg Font_Color = #000000 Font = Arial, Helvetica Bullet_Image = images/bullet.gif Stylesheet = styles.css # ----------------------- WEBSITE -------------------------- # Fljande instllningar erbjuder bara lite generell information fr statistiken # Title (valfritt) den titel som skrivs ut verst i varje rapportfil # samt titeln fr ramen. Om detta inte anges kommer en standardtext # att anvndas, ungefr "Website statistics for My Domain" med # med Webplatsens namn om detta finns i rapporten producerad av Analog. # Base_URL (valfritt) Adressen (URL) till Webplatsen frn vilken denna statistik # r insamlad. Om detta inte anges kommer Webplatsens URL att anvndas om # detta finns i rapporten producerad av Analog. # Webmaster (valfritt) E-post adressen till den som skall kontaktas om man har # frgor angende rapporterna. Om detta inte anges kommer ingen text om # vem som skall kontaktas att inkluderas. # Company_Logo (valfritt) namnet p den fil (relativt arbetskatalogen) # som innehller en liten bit HTML kod att infoga i rapporten. # Denna kommer att visas lngst ned i rapporten och erstter andra # logotyper (Analog, Report Magic). [website] Title = My Website Statistics Webmaster = webmaster@mydomain.com Base_URL = http://www.mydomain.com Company_Logo = fineprint.txt rmagic-2.21/samples/corpimg.ini0100644000175000010010000000247607642525574015516 0ustar kilroyNone# # ---------------------------------------------- # corpimg.ini # Sample settings for Report Magic for Analog # Show an example of customizing the report to # fit a 'corporate image'. # # Last modifed 02.Apr.2003 JW # ---------------------------------------------- # [statistics] File_In = report.dat Frame_File_Out = index.html #--- # Here we set some background colors and patterns, # fonts and font colors to customize the report for # a 'company image'. [reports] Active_Column = R BG_Color = gold Background = ../images/back.jpg Font_Color = #000000 Font = Verdana, Arial, Helvetica, sans-serif Title_BG_Color = #E23721 Title_Font_Color = #000000 Title_Font = Tahoma, Arial, Helvetica, sans-serif Data_Color_1 = #FFFFFF Data_Color_2 = #D4AC6F Data_Header_Color = #886218 Data_Total_Color = #E23721 Data_Font = Tahoma, Arial, Helvetica, sans-serif #--- # (MAC: Change this to ':corpimg:' to make this file work File_Out = corpimg/ #--- # The navigation page has the same background image and # uses fancy 'page' bullets. [navigation] BG_Color = #D4AC6F Background = ../images/back.jpg Font_Color = #000000 Font = Verdana, Arial Bullet_Image = ../images/layout.gif File_Out = navfile.html [QUICK] Rows= m, d, h, c [website] Webmaster = webmaster@example.com Base_URL = http://www.example.com Title = Big Corp. Web Site Report rmagic-2.21/samples/fineprint.html0100644000175000010010000000110307642525574016223 0ustar kilroyNone Our Company Our Company, Your Statistics
      rmagic-2.21/samples/images/0040755000175000010010000000000007642616036014606 5ustar kilroyNonermagic-2.21/samples/images/back.jpg0100644000175000010010000001476307642525574016226 0ustar kilroyNoneJFIF,,4Photoshop 3.08BIM,,8BIM8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIMAdobed            "?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?\{hO'WP;o)Ns$ IiH ueIcLL iIJ!0}cK=s[pt̎'ANH;aRR#t|Zpk]?#oRR{Z5<i*@;D@ V{p zHPqh ɌN9/he7KCh I[s,2 v3$a= {F[֒٠JJeͲd-蓡Ms) >RX\Ddq%y?*R{C ݒRS-[;Z}Tt-i;As yY3;WN 9~7in)Q5lH_04wB[ͻIKh{^5v %w5vGM9Վ#RX<%2@p>HD%[h{rj斎H꒑.ZL;ɝ%ßk6W  nof0C8D\`O.p4RRGCO!A!:GhﭭaLH7꒕OqۤntkiKI;@F)Ec'IleX>  #ILtie2!po!&JR\Gݠp< )-9Iq>SvqaHa׷gsID䓵h @ɥt 4^Fƪ.h#s90:Jeh.sZJZo &5|okw_II?D}djhԨ k92RookhⳠIL/[ C>:oy$kw~*HbwOe&i#gҰxwI,@-;$A3 Nn%[FZ+˾L}Hw))d8РA5iM忔/ y?))vKd7|KwoIrn<9 -wiOa )iIOp1)h;}ǿd9@vke?t-SI;!IL/o{^n?xBqw;c.Kc,ova:ixP!"I)xp? kK5H:=# 7E:drk'.>C@$$66Nद[jc]ZO}h cKHk}Ƀvde%2>i. '/soxmāۄIÀFYLmLlkGpyh-4)Gc$?gₕ4݀3`F069J[Z4q wp5S9H1AR]`55O  +"^Io摡`h %&7|֑"].4ILK^<4zL♻\!R o4v=F#O INAp0ֲ]Dh^}=\#$i1G6he mq-ܝC1"T kZC""MkxCD ;G \,:+oiѮwLRD,w$9joh8S&G`8䊙N >#Te6;4mvtTdAKlX4JsV|p'L:IK:CqR!GXuL53kCi'MT@a#EKOf9<]7 llJvhYgJ\@ 6L[;xM-mP|ٸAOn3!'`h[&@:.)nxy !%2wkN?ԘZѤ&GsS{A%2s:.?4HyS ՆFt٣C#LN1YOGA xt CAA?Owjܒ;69䔔dpݳ1R|k!T`RS1asnșJdwlQde7*vZ;;v4S-Ot2vC`)7h\xS~ q ȻPy4ߧ'k$vRRGsNǕ֗>6Ŏ女 .<0R$ @sw8  wǻ{MƉ)h oGp>SLHx?԰gMl kI?x5N+!#%1#Iy#_3[k 'HDocp2HtILI,XOсs | =< #S cGh l&HBoWyD) 潠iS?6 kxQwh'fA's$|G%,A.T{'E `mY))\DHkܜ>I0|Gޗ,p>@񔔹uJpL*;niLQڐ@IJuo]2-p3TuVsu));xC"9"HD/#CYwۼ %1mA$c^?"r\wp.'NO"RpZQ8jA oiXN_%0!;nɔ at>)$ w7v Ok'SOnr]lg]NG0J}3y!;΂ uz@IK]Og<)qO}_)nܤ{CH)lם|JAa0;DypԷSG?\=oݧyH wkBse5JbwY{ôKmN0k{ y#X)÷iw=cX4i#"Xhn$BnBaR qt`)p@6NIGMGOpByi;}OIJ[kڝްDFw4:O'% a ũѸΜg$ILti||iqo;v=&JXK3,wI)XA BZ'nҐ{:;:A ljbGuu H Mo\䒕8/B5:ke#Ɉ'cr OtdkyO6.vמ|-&^']@N[Ljgp|RR$ܔ u!RX٭N!aix5h$ pwrܜլDzmZxO"V.tT4'ڧ>a bS6w[JX"Hi;E@%(e 50GgJklO^`RR.:}ɝCa'k$S&u GdvtI7=Ĵj[vr$D|>a;{je ;߹3[c se=%/2ypL$}gJ[}pԦ iKsȬvvP374Ú}?6XO.oTvց J\  QkA. h &tqԔ[xH1vִ5>iK@ofe>ఏwi䔢 d;uw=uzX@S=۵IJh: SƍZy'D't/p3fݧѧ$1F4yAh =Z #:C{K'XO;*!i&Kt}fa%.E\Sˆdo*Ccu؟k?o}ݒSc XDqܙM {62\S(e-A( 4.$ i$r6DvOx0v5 RJ,&^l> IGcHP)$״8dIDwsSjiq(B ,'[ lH#H|oJdӺ>_zN{e@LIύI#.c>j#IkûBq,19R6}IgHv?71@>$CǼvRV K< )5֒%1\`9ۼR]{$s0N `. <)=Ik</ÏJms/F$SjGhOL^%+椔 9wN\<$Bp7*$6MGRH46Inswܞc䘃ζ4/RIOE+\ytH'cF /IO&tm#ɷ!k9:I%is 7k{|u5|ʒH~{?D2ch,g32~k愒KOw)%|cBI)[A,*I?@@^FgH fH kKmNdHbHlOkO`HeLgNmRjPoTtSsTuVqV mS/v^+z`(~a@@@@@@@@KGU]Z@vdUkcUrijsp`b%b%e,r7o8o8r1q0s0u5q6z;u@y@~Vt;ARRSURQRVY[kl[Ÿ\ŢhƧi̫jЮlֳsԳrմuܺv޼!, (P4h\H5T0CNY2Ȑ $ZȬ%Ɋ \Ģ"ʘ7s܄BD!_ܘF8gIa 6i&3@0 p$Wbe \'T!PbF&8T@0I0A "ǀ $80AE P&H W^;rmagic-2.21/samples/images/bullet2.gif0100644000175000010010000000176007642525574016655 0ustar kilroyNoneGIF89a*!3(:.=15/";3$@@C5F8J;K<E;(B=4@@@@SB"UD"XG$ZH%]K']S?`M'`M(bP)dQ*hS*iU,q[/p[2s]3wa4wc=ya2zd9{g?}f9h;@@@SOGc`Zyrcxuph5j:n[@b W' $+]hD. ǐ%@la 6| QBD CM .P`@6$a@P=(@0 ;rmagic-2.21/samples/images/layout.gif0100644000175000010010000000042407642525574016615 0ustar kilroyNoneGIF89a333f3f333!NThis art is in the public domain. Kevin Hughes, kevinh@eit.com, September 1995!,oIxGvm^IYq$l4aLr@kW HPh6=(Aa9(UBo\5&2Wv-/s8GM/;xpukt}{[RQ?pH;rmagic-2.21/samples/manyfile.ini0100644000175000010010000000175707642525574015663 0ustar kilroyNone# # ---------------------------------------------- # manyfile.ini # Sample settings for Report Magic for Analog # Creates a frameset with each report on a separate page. # # Last modifed 02.Apr.2003 JW # ---------------------------------------------- # [statistics] File_In = report.dat Frame_File_Out = index.html Reverse_Time = 1 [reports] Active_Column = R Font = Helvetica, sans-serif Font_Color = #000000 Title_Font = Helvetica Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Data_Font = Helvetica Data_Color_2 = #EEEEEE Data_Header_Color = #9999CC Data_Total_Color = #CCCCCC #--- # Note how we use a directory (rather than a filename) to # tell it to put each reports in a separate file. # (MAC: To use this change to ':manyfile:') File_Out = manyfile/ [navigation] Font = Helvetica Font_Color = #000000 BG_Color = #CCCCFF File_Out = navfile.html [QUICK] Rows = m, d, h, c [website] Webmaster = webmaster@example.com Base_URL = http://www.example.com Title = My Many File Web Site Report rmagic-2.21/samples/noframes.ini0100644000175000010010000000243607642525574015664 0ustar kilroyNone# # ---------------------------------------------- # noframes.ini # Sample settings for Report Magic for Analog # Creates a single-file report with not frameset # # Last modifed 02.Apr.2003 JW # ---------------------------------------------- # [statistics] File_In = report.dat #--- # Note we don't need a Frame_File_Out, because we don't have frames. [reports] Active_Column = R Font = Verdana, Arial, Helvetica, sans-serif Title_BG_Color = #242B58 Title_Font_Color = #FFCC00 Title_Font = Tahoma, Arial, Helvetica, sans-serif Data_Color_1 = #D0FFD0 Data_Color_2 = #F0FFF0 Data_Total_Color = #FFCC66 Data_Header_Color = #666699 Data_Font = Tahoma, Arial, Helvetica, sans-serif #--- # We give a single filename (not a directory) to tell Report # Magic to put all reports in one file. # (MAC: To use this change to ':noframes:report.html') File_Out = noframes/index.html [navigation] Font = Verdana, Arial Bullet_Image = ../images/bullet.gif #--- # Note there is no file given for the navigation. This instructs # Report Magic to put the navigation in the reports, not in a # separate file (however, [navigation] header must be included, # even if it is empty). [QUICK] Rows = m, d, h, c [website] Webmaster = webmaster@example.com Base_URL = http://www.example.com Title = Frameless Web Site Report rmagic-2.21/samples/onefile.ini0100644000175000010010000000204307642525574015465 0ustar kilroyNone# # ---------------------------------------------- # onefile.ini # Sample settings for Report Magic for Analog # Creates a frameset with all reports in one page. # # Last modifed 02.Apr.2003 JW # ---------------------------------------------- # [statistics] File_In = report.dat Frame_File_Out = index.html [reports] Active_Column = R Font = Verdana, Arial, Helvetica, sans-serif Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Title_Font = Comic Sans MS, Brush Script, Helvetica, sans-serif Data_Color_1 = #F0F0F0 Data_Color_2 = #FFFFFF Data_Total_Color = #FFCCCC Data_Header_Color = #CCCCFF Data_Font = Verdana, Arial, Helvetica, sans-serif #--- # Note how we use a filename here (rather than a directory) to # tell it to put all reports in a single file. # (MAC: To use this change to ':onefile:report.html') File_Out = onefile/report.html [navigation] Font = Verdana, Arial File_Out = navfile.html [QUICK] Rows = m, d, h, c [website] Webmaster = webmaster@example.com Base_URL = http://www.example.com Title = My Single File Web Site Report rmagic-2.21/samples/report.dat0100644000175000010010000000175207642525574015356 0ustar kilroyNonex HN [my organisation] x PS 1999 05 20 09 18 x FR 1998 05 31 10 11 x LR 1998 06 03 12 11 x SR 42 x PR 42 x NF 2 x NH 1 x BT 51828 m RP 11 11 1998 05 m RP 31 31 1998 06 d RP 11 11 Sun d RP 10 10 Mon d RP 11 11 Tue d RP 10 10 Wed d RP 0 0 Thu d RP 0 0 Fri d RP 0 0 Sat h RP 0 0 0 h RP 0 0 1 h RP 2 2 2 h RP 2 2 3 h RP 2 2 4 h RP 2 2 5 h RP 2 2 6 h RP 2 2 7 h RP 2 2 8 h RP 2 2 9 h RP 4 4 10 h RP 2 2 11 h RP 4 4 12 h RP 0 0 13 h RP 2 2 14 h RP 2 2 15 h RP 0 0 16 h RP 2 2 17 h RP 2 2 18 h RP 0 0 19 h RP 2 2 20 h RP 2 2 21 h RP 2 2 22 h RP 2 2 23 o f 0B b o Rb 42 100.000 .uk (United Kingdom) i f 0.010000%B b i Rb 42 100.000 [root directory] t f 0.100000%B b t Rb 42 100.000 .html [Hypertext Markup Language] z Rb 0 0.000 0 z Rb 0 0.000 1b- 10b z Rb 0 0.000 11b- 100b z Rb 0 0.000 101b- 1kb z Rb 42 100.000 1kb- 10kb c f 0R a c R 42 200 OK r f 20R r r RbD 21 50.000 1998 06 01 12 11 /sample.html r RbD 21 50.000 1998 06 03 12 11 /sample2.html rmagic-2.21/samples/reportmagic-org.ini0100644000175000010010000000210707642525574017146 0ustar kilroyNone# ------------------------------------------------------------------- # These are the colors and fonts used for the sample reports at # http://reportmagic.org/sample/ # # Last Update 02.Apr.2003 JW # ------------------------------------------------------------------- [statistics] Frame_File_Out = index.html Reverse_Time = 1 Verbose = WE File_In = - [reports] BG_Color = #D5CCBB Font_Color = #000000 Font = Arial, Helvetica, sans-serif Title_BG_Color = #000000 Title_Font_Color = #FFFFFF Title_Font = Tahoma, Verdana, Arial, Helvetica, sans-serif Data_Color_1 = #D5CCBB Data_Color_2 = #FFFFFF Data_Total_Color = #CC6666 Data_Header_Color = #6666CC Data_Font = Arial, Helvetica, sans-serif [graphs] BG_Color = #FFFFCC Font = fonts/tahoma.ttf [DIRECTORY] Graph_Level = 2 [GENERAL] Rows = SR, PR, FL, RR, NF, NH, BT [QUICK] Rows = m, W, D, d, H, B [SIZE] Active_Column = R [FILETYPE] Active_Column = R [DIRECTORY] Active_Column = R [navigation] BG_Color = #D5CCBB Font_Color = #000000 Font = Arial, Helvetica, sans-serif Bullet_Image = /art/arrow.gif File_Out = navfile.html [website] rmagic-2.21/stylesheet.sample0100644000175000010010000000111207642525574015267 0ustar kilroyNone body {} th {background-color:#9999CC;} th.total {background-color:#FFCC66;} td {font-family:Helvetica,Arial,sans-serif;} td.alt1 {background-color:#D0FFD0;} td.alt2 {background-color:#F0FFF0;} h1 {text-align:CENTER; font-size:20pt;} h2 {background-color:#000000; font-weight:bold; width:95%; font-size:12pt; border:none; font-family:Helvetica,Arial,sans-serif; padding:3pt; color:#FFCC00;} .fineprint {font-size:7pt;} .smallfont {font-size:8pt;} rmagic-2.21/wadg/0040755000175000010010000000000007642616036012617 5ustar kilroyNonermagic-2.21/wadg/Errors.pm0100644000175000010010000001236307642525574014441 0ustar kilroyNone############################################################ # # Module: wadg::Errors.pm # # This is a static class to provide global references # to fatal and non-fatal messaging services. # # Created: 25.Apr.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group # Copyright (C) 2000,2002 Wadsack-Allen. All rights reserved. # # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. ############################################################ # Date Modification Author # ---------------------------------------------------------- ############################################################ package wadg::Errors; use strict; BEGIN { use vars qw($VERSION @ISA); $VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(); } # end BEGIN # Package globals are here use vars qw( $WARNING $ERROR ); ########################### ## ## ## Public Static Methods ## ## ## ########################### # ---------------------------------------------------------- # Sub: set_error_handler # # Args: $code_ref # $code_ref A code reference to an error handler routine # # Description: Stores the $code_ref as the class-wide error # handler # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000APR25 Created class method JW # ---------------------------------------------------------- sub set_error_handler { my( $code_ref ) = @_; $ERROR = $code_ref; return $code_ref; } # end set_error_handler # ---------------------------------------------------------- # Sub: set_warning_handler # # Args: $code_ref # $code_ref A code reference to a warning handler routine # # Description: Stores the $code_ref as the class-wide handler # for warnings # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000APR25 Created class method JW # ---------------------------------------------------------- sub set_warning_handler { my( $code_ref ) = @_; $WARNING = $code_ref; return $code_ref; } # end set_warning_handler # ---------------------------------------------------------- # Sub: error # # Args: @list # @list A list of parameters to send to the error handler # # Description: Throws a fatal error exception through the # installed handler with the specified list of parameters # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000APR25 Created class method JW # ---------------------------------------------------------- sub error { my( @list ) = @_; # Probably shouldn't return, but just in case return &$ERROR( @list ) if defined $ERROR; # if $ERROR isn't installed, use Perl's die( @list ); } # end error # ---------------------------------------------------------- # Sub: warning # # Args: @list # @list A list of parameters to send to the warning handler # # Description: Throws a non-fatal warning exception through # the installed handler with the specified list of parameters # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000APR25 Created class method JW # ---------------------------------------------------------- sub warning { my( @list ) = @_; return &$WARNING( @list ) if defined $WARNING; # if $WARINING isn't installed, use Perl's return warn( @list ); } # end error # ---------------------------------------------------------- # Sub: stack_trace # # Args: $frame # $frame The frame to start with (defaults to 0) # # Returns: Trace as a scalar string # # Description: Produces a stack trace from the calling method # and returns it as a string. Helpful in debugging. If $frame # is provided then it will skip $frame frames before starting # the stack trace (for example, to call stack_trace from an # error_handler you may wish to provide a $frame of 1). This # method will never trace more than 100 frames deep. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 06May2001 Added for generalized debugging JW # 14Aug2001 Fixed minor display bugs JW # ---------------------------------------------------------- sub stack_trace { my( $level ) = @_; $level ||= 0; my $trace = ''; my @fields = caller($level); $trace .= "Stack trace: called from $fields[1] line $fields[2]\n"; for( ($level + 1) .. 100 ) { @fields = caller($_); last unless @fields; $trace .= " $fields[3] in $fields[1] line $fields[2]\n"; } # end for return $trace; } # end stack_trace # module clean-up code here (global destructor) END { } 1; # so the require or use succeeds rmagic-2.21/wadg/Formatter.pm0100644000175000010010000010173407642525574015131 0ustar kilroyNone############################################################ # # Module: wadg::rm::Formatter # # Created: 20.March.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved. # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000) # # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. ############################################################ # Date Modification Author # ---------------------------------------------------------- # 2000.Oct.20 Made split_date a public method JW # 14.Jun.2001 Now needs Time::Local for 'www' date fmt JW ############################################################ package wadg::Formatter; use strict; use Time::Local; BEGIN { use vars qw($VERSION @ISA); $VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(); } # end BEGIN # non-exported package globals go here use vars qw(); ############################ ## The object constructor ## ############################ # Args: ( $item => $data, ... ) # $item The name of a localization # $data The data value or reference to data list to assing for that localization # # Description: Creates a new formatter object adding localizations or settings # # TODO: # * Add defaults # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # # ---------------------------------------------------------- sub new { my $self = {}; my $proto = shift; my %parms = @_; my $class = ref($proto) || $proto; # Parse named parameters my($k, $v); local $_; while( ($k, $v) = each %parms ) { $self->{$k} = $v; } # end while bless ($self, $class); # Set the defaults $self->{day_abrev} = [qw( Mon Tue Wed Thu Fri Sat Sun )] unless exists $self->{day_abrev}; $self->{day_names} = [qw( Monday Tuesday Wednesday Thursday Friday Saturday Sunday )] unless exists $self->{day_names}; $self->{month_abrev} = [qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )] unless exists $self->{month_abrev}; $self->{month_names} = [qw( January February March April May June July August September October November December )] unless exists $self->{month_names}; $self->{number_sep} = ',' unless exists $self->{number_sep}; $self->{decimal_sep} = '.' unless exists $self->{decimal_sep}; $self->{decimal_digits} = 2 unless exists $self->{decimal_digits}; $self->{percent} = '%' unless exists $self->{percent}; $self->{currency} = '$' unless exists $self->{currency}; $self->{period_string} = '%{y:choice:0#|1# one year, |1#%0 years, }' . '%{w:choice:0#|1# one week, |1#%0 weeks, }' . '%{d:choice:0#|1# one day, |1#%0 days, }' . '%{h:choice:0#|1# one hour, |1#%0 hours, }' . '%{m:choice:0#|1# one minute, |1#%0 minutes, }' . '%{s:choice:0#and %0 seconds.|1#and one second.|1#and %0 seconds.}' unless exists $self->{period_string}; $self->{bytes} = '%0 %1B' unless exists $self->{bytes}; $self->{bps} = '%0 %1bps' unless exists $self->{bps}; $self->{byte_pref} = [qw( K M G T P E Y Z )] unless exists $self->{byte_pref}; return $self; } # end new ########################## ## ## ## Public Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: localize # # Args: $item @data # $item The name of the localization # @data The data to use for that localization # # Description: Loads the formatter with the localizations to be # used in subsequent formatting operations # # Valid 'localizations' include the following names (defaults in quotes): # day_abrev The abreviation for days of the week (Mon, Tues, ...) # day_names The full name of days of the week (Monday, Tuesday, ...) # month_abrev The abreviation for months (Jan, Feb, ...) # month_names The full names of months (January, February, ...) # number_sep The symbols used to separate thousands lists (,) # decimal_sep The symbols to use to separate decimals parts (.) # decimal_digits The number of decimal places to truncate to (2) # percent The symbol to use for percent (%) # period_string A localized string for specifying a full period of time # currency The symbol to use for currency ($) # bytes The phrase for bytes (%0 %1B) # bps The phrase for transfer rate (%0 %1bps) # byte_pref Prefixes for bytes and bps. Start from 'kilo' (k, M, G, T, P, E, Y, Z) # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Mar20 Created function JW # 2000Apr11 Doc'd, above, and added header JW # 2000Jul06 Removed header and prefix. JW # 20Feb2003 Added undef case for $data[0] JW # ---------------------------------------------------------- sub localize { my $self = shift; my( $item, @data ) = @_; # Load localizations if( @data > 1 ) { $self->{$item} = \@data; } elsif( defined $data[0] ) { $self->{$item} = $data[0]; } else { $self->{$item} = ''; } # end if return; } # end localize # ---------------------------------------------------------- # Sub: clone_statement # # Args: (None) # # Returns: A string that can be eval'd to create a clone # # Description: Produces a string that can be evaluated to # create a clone of the Formatter object. This can be useful, # for example, where you need a formatter in an anonymous # subroutine. Only produces the RVALUE so you need to prepend # something like '$formatter =' before evaluating. # # Example: # my $sub = eval 'my $fmtr = ' . $formatter->clone_statement . ';'; # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 30Aug2001 Added method to support anonymous subs JW # ---------------------------------------------------------- sub clone_statement { my $self = shift; my $statement = ref($self) . '->new('; for( keys %$self ) { # Single-quote $_ just in case it's got spaces or - or something $statement .= "'$_'=>"; # If it's an array ref, then do each item into an array # Notice that we ignore all hash refs and objects! if( ref($self->{$_}) eq 'ARRAY' ) { $statement .= '[' . join( ',', map "'$_'", @{$self->{$_}} ) . ']'; } elsif( !ref $self->{$_}) { $statement .= "'" . $self->{$_} . "'"; # Perl 5.004 won't interpolate de-references } # end if $statement .= ','; } # end for $statement .= ')'; return $statement; } # end clone_statement # ---------------------------------------------------------- # Sub: format_value # # Args: $format @data # $format A format specifier string using "type:format" where # type is (number,date,bytes,period,...) # @data The data to format with the format routine # # Description: A generic format function that calls the # appropriate format method based on the type specifier. The # type can be one of date, time, datetime, number, bytes, bps, # or period. Period is a period of time (e.g. "5 minutes, # 32 seconds"). All formatting is localized, of course. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2001Jan26 Create method to allow generic format specs JW # ---------------------------------------------------------- sub format_value { my $self = shift(); my( $format, @data ) = @_; my( $val, $type ); if( $format =~ /\:/ ) { ( $type, $format ) = $format =~ /^([^\:]+)\:(.*)$/; } else { $type = $format; $format = ''; } # end if if( $type =~ /^(date|time|datetime)$/ ) { $val = $self->formatDate( $format, @data ); } elsif( $type eq 'number' ) { $val = $self->formatNumber( $format, @data ); } elsif( $type eq 'period' ) { $val = $self->format_period( $format, @data ); } elsif( $type eq 'bytes' ) { $val = $self->format_bytes( $format, @data ); } elsif( $type eq 'bps' ) { $val = $self->format_bps( $format, @data ); } elsif( $type eq 'choice' ) { $val = $self->format_choice( $format, @data ); } else { $val = join '', @data; } # end if return $val; } # end format_value # ---------------------------------------------------------- # Sub: formatDate # # Args: $format $date # $format A format specifier string using [ymdwhns] and 'am'/'pm' # $date A date dataset in the format /yyyy.+mm.+dd.+hh.+mm/ # # Description: Formats a date based on the passed formmatting # string. Format letters may be either case. Case # is preserved for am/pm. The number of contiguous # format letters determines the output (m vs. mmmm). # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 1999Mar08 Create routine based on previous JavaScript JW # 1999Jul08 Changed minute specifier to 'n' for i18n JW # 2000May04 Fixed bug in 'w' format to only use numbers JW # 2001Feb06 Added support for 'q' Quarter format JW # 05Jun2001 Does not try to format non-date data JW # 14Jun2001 Added ability for week days from a date JW # 18Jun2001 Added y2k patch for 2-digit years JW # 19Jun2001 Fixed bug in week day formatting JW # ---------------------------------------------------------- sub formatDate { my $self = shift(); my( $format, $date ) = @_; my( $posF, $m, $charF, $output, $tempStr ); my( %date ); # # Start by separating the date into it's components # But, if it doesn't look like a date then just return it as is return unless $self->split_date( $date, \%date ); # # We want, in general to use case-insensitive, but we'll # keep the original for checking am/pm vs. AM/PM, etc. # my $caseFormat = $format; $format = lc( $format ); # - Special case: no format spec if( length( $format ) == 0 ) { $output = $date; $posF = 1; } # end if # - Special case: single date field if( keys %date < 2 ) { $date{month} = $date; $date{day} = $date; $date{hour} = $date; $date{minute} = $date; $date{second} = $date; } # end if # # Ok, now process each segment of the format spec # $posF = 0; $output = ''; $tempStr = ''; while( $posF < length($format) ) { # # Count number of repetitions of specifier # $m = 1; $charF = substr( $format, $posF, 1 ); while( $charF eq substr( $format, ++$posF, 1 ) ) { $m++; } # end while # # Create the output based on specifiers # if( $charF eq 'y' ) { # - Add the year to the output if( $m < 3 ) { $tempStr = $date{'year'}; if( length($tempStr) > 2 ) { $tempStr = substr( $tempStr, length($tempStr) - 2, 2 ); } # end if if( $m > length($tempStr) ) { $tempStr = '0' . $tempStr; } # end if } elsif( $m < 5 ) { $tempStr = $date{'year'} || ''; my $_l = $m - length($tempStr); while( $_l-- ) { $tempStr = '0' . $tempStr; } # end if } else { # -- Future implementation of "Nineteen Hundred Thirty Six" $tempStr = ""; } # end if $output .= $tempStr; } elsif( $charF eq 'q' ) { # - Add the quarter to the output # NOTE: Quarter occupies the month bucket in the hash $tempStr = $date{'month'} || ''; if( $m > length($tempStr) ) { $tempStr = '0' . $tempStr; } # end if $output .= "Q$tempStr"; } elsif( $charF eq 'm' ) { # - Add the month to the output if( $m < 3 ) { $tempStr = $date{'month'} || ''; if( $m > length($tempStr) ) { $tempStr = '0' . $tempStr; } # end if } elsif( $m == 3 ) { $tempStr = $self->{month_abrev}[$date{'month'} - 1] || '???'; } else { $tempStr = $self->{month_names}[$date{'month'} - 1] || '????'; } # end if $output .= $tempStr; } elsif( $charF eq 'n' ) { # - Add the minutes to the output $tempStr = $date{'minute'} || ''; if( $m > length($tempStr) ) { $tempStr = '0' . $tempStr; } # end if $output .= $tempStr; } elsif( $charF eq 'd' ) { # - Add the day or date to the output if( $m < 3 ) { $tempStr = $date{day} || ''; # Remove leading '0' if there is one. $tempStr =~ s/^0//g; if( $m > length($tempStr) ) { $tempStr = '0' . $tempStr; } # end if } else { # - Future implementation of "Thirteenth" $tempStr = ''; } # end if $output .= $tempStr; } elsif( $charF eq 'w' ) { # - Add day of the week to the output, if it's numeric if( defined $date{day} ) { # If the original date was not a single number, and this is a full date, then # calculate the day of the week from the date. if( ($date =~ /\D/) && defined $date{month} && defined $date{year} && $date{month} && $date{day} && $date{year} ) { # Get the day of the week from the perpetual calendar # (Use _nocheck to avoid out of range errors) my $y = $date{year}; $y -= 1900 if $y > 1900; $y += 100 if $y < 50; # Promote 2-digit years < 50 to 2000 - 2050. my @t = localtime( Time::Local::timelocal_nocheck( 0, 0, 0, $date{day}, $date{month} - 1, $y ) ); $tempStr = $t[6]; } else { # Day of the week is in the 'day' bucket [0 - 6] $tempStr = $date{day}; } # end if if( $tempStr =~ /^\d+$/ ) { if( $m < 4 ) { $tempStr = substr( $self->{day_abrev}[$tempStr], 0, $m ); } else { $tempStr = $self->{day_names}[$tempStr]; } # end if } # end if $output .= $tempStr; } # end if } elsif( $charF eq 'h' ) { # - Add the hour to the output $tempStr = $date{hour} || ''; if( (index($format, 'am') != -1) || (index($format, 'pm') != -1) ) { # Convert to 12-hour format my $h12; if( $date{hour} == 0 ) { $h12 = 12; } elsif( $date{hour} < 12 ) { $h12 = $date{hour}; } elsif( $date{hour} == 12 ) { $h12 = 12; } else { $h12 = $date{hour} - 12; } # end if $tempStr = $h12; } # end if if( $m > length($tempStr) ) { $tempStr = '0' . $tempStr; } # end if $output .= $tempStr; } elsif( $charF eq 's' ) { # - Add the seconds to the output $tempStr = $date{'second'} || ''; if( $m > length($tempStr) ) { $tempStr = '0' . $tempStr; } # end if $output .= $tempStr; } elsif( ($charF eq 'a') || ($charF eq 'p') ) { # - Add am or pm to the output if( substr( $format, $posF, 1 ) eq 'm' ) { $posF++; # Am or Pm specifier if( $date{'hour'} < 12 ) { $tempStr .= 'AM'; } else { $tempStr .= 'PM'; } # end if if( substr( $format, $posF - 2, 1 ) eq substr( $caseFormat, $posF, 1 ) ) { # Original was lower case $tempStr = lc( $tempStr ); } # end if $output .= $tempStr; } else { $output .= $charF; } # end if } else { # - Just send the uninterpreted character along to the output while( $m-- ) { $output .= $charF; } # end if } # end if } # end while return $output; } # end formatDate # ---------------------------------------------------------- # Sub: getDateString # # Args: @dateCols # @dateCols A list of date values in order y,m,d,h,n # # Description: Returns a standard date from a set of columns. # This formats the the date in yyyy/mm/dd hh:nn. # Formatting is specific in @datetime, below. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 1999Feb24 Create function JW # ---------------------------------------------------------- sub getDateString { my $self = shift; my( @dateCols ) = @_; my @datetime = ( '', '/', '/', ' ', ':', ' ', ' ' ); my $i = $#dateCols; my $pointName = pop( @dateCols ); while( $i > 0 ) { $pointName = pop( @dateCols ) . $datetime[$i] . $pointName; $i--; } # end while return $pointName; } # end getDateString # ---------------------------------------------------------- # Sub: formatMessage # # Args: $format, @args # $format A message string with %0, %1, %2.. replacement points # @args The strings to insert in the message # # Description: A message formatter that replaces each %0, %1, # %2 with the argument at that index. If the argument is in # the form of %{0:date:yyyy}, then argument 0 is formatted # as a date with format 'yyyy'. Also supports type 'number', # with number format string and the keyword 'integer' as a # number format. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Apr11 Added header appended to first use JW # 2000Apr11 Added prefix appended to each use JW # 2000Jul06 Removed header and prefix. JW # 2001Jan20 Added ability to format dates && numbers JW # 2001Jan26 Changed %{0:type:fmt} to use format_value JW # 30Aug2001 Cleaned up some warnings JW # 07Oct2001 Cleaned more warnings when $args[$1] == undef JW # 21Nov2001 Fixed bug where '0' evaluated to '' JW # 17Jan2002 Fixed same 0 -> '' bug for second regexp JW # ---------------------------------------------------------- sub formatMessage { my $self = shift; my($format, @args) = @_; @args = () if @args == 0; # In case there are no args given? my $tmp; $format =~ s/\%\{(\d+)\:([^\}]+)\}/$tmp = $self->format_value($2,defined $args[$1] ? $args[$1] : ''); defined $tmp ? $tmp : ''/ge; $format =~ s/\%(\d+)/defined $args[$1] ? $args[$1] : ''/ge; return $format; } # end formatMessage # ---------------------------------------------------------- # Sub: formatNumber # # Args: $fmt, $num # $fmt The format to apply to the number # $num The number to format # # Description: Formats a number according to the current # localizations. Rounds to decimal_digits, formats with # decimal_sep and num_sep. Uses pecent when requested and # applies a number format if given. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # Created by Corey Kaye / DNS CK # 1999Apr10 Modified for internationalization JW # 2000May07 Added support for a number format spec JW # 2001Jan20 Supports format without decimals and rounds JW # 2001Jan26 Added integer, percent, and currency formats JW # 30Aug2001 Cleaned up some warnings JW # 26Jul2002 Converted to sprintf for better rounding JW # 04Feb2003 Patched more warnings for integral numbers JW # 20Mar2003 Changed exists on array for 5.005 compat'ty JW # ---------------------------------------------------------- sub formatNumber { my $self = shift; my $lsep = $self->{'number_sep'}; my $dsep = $self->{'decimal_sep'}; my $ddig = $self->{'decimal_digits'}; my $fmt; # Get input number and format ( $fmt, $_) = @_; # Don't do anything if no number to format return $_ unless defined $_; return undef unless /^\d/; if( defined $fmt ) { # Convert keywords: $fmt = '#.#%' if $fmt eq 'percent'; $fmt = '#' if $fmt eq 'integer'; $fmt = '$#.#' if $fmt eq 'currency'; # Adjust decimal digits to format if specified. # A format like '#.#' makes no change. One like # '#.#0' sets decimal digits to 2. # A format without a '.' has no decimal part. my $d = index( $fmt, '.' ); my $z = rindex( $fmt, '0' ); if( ($z > 0) && ($d > 0) && ($z > $d) ) { $ddig = ($z - $d); } # end if if( $d == -1 ) { $ddig = 0; } # end if; } # end if # Find decimal point and limit to number of digits if( $ddig > 0 ) { $_ = sprintf( "%.${ddig}f", $_ ); } else { $_ = sprintf( "%d", $_ ); } # end if my @temp = split( /\./, $_, 2 ); # Left pad to any number of '0' before '.' if( defined $fmt ) { my $d = index( $fmt, '.' ); my $z = index( $fmt, '0' ); my $pad = 0; if( ($d > 0) && ($z > 0) && ($z < $d) ) { $pad = $d - $z; } else { #** Not sure why this is here???? #$d = rindex( $fmt, '0' ); #$pad = $d - $z + 1; } # end if $pad -= length( $temp[0] ); $temp[0] = '0' x $pad . $temp[0]; } # end if # Add list separator every 3 digits # -- Yeah this is ugly perl wizardy, but # it's really damn fast! (18% speed increase) my $counter = 0; my $formattedNumber = join( '', reverse( map { ($counter++ % 3) == 0 ? $_ . $lsep : $_ } reverse( split //, $temp[0] ) ) ); # Clean number of the extra $lsep on the end # -- If $lSep is blank, then there's no last digit. Also, # if $lSep is more than one char (is this ever true?) then # this takes care of them all. $formattedNumber = substr( $formattedNumber, 0, length($formattedNumber) - length($lsep) ); # Restore the decimal portion, if any $formattedNumber .= "$dsep$temp[1]" if @temp == 2 && $temp[1] ne ''; # Apply prefix and suffix from format, if any if( defined $fmt ) { if( $fmt =~ /\./ ) { $fmt =~ s/^([^\#0]*)[\#0]*\.[\#0]*([^\#0]*)$/$1$formattedNumber$2/; } else { $fmt =~ s/^([^\#0]*)[\#0]*([^\#0]*)$/$1$formattedNumber$2/; } # end if $formattedNumber = $fmt if $fmt ne ''; } # end if # Internationalize the percent symbol, if one my $percent = $self->{percent}; $formattedNumber =~ s/\%/$percent/; # Internationalize the currency symbol, if one my $currency = $self->{currency}; $formattedNumber =~ s/\$/$currency/; return $formattedNumber; } # end formatNumber # ---------------------------------------------------------- # Sub: format_period # # Args: $format, $value # $format The format for the time elements. May be empty. # $value The value to format as a period (in seconds) # # Description: Formats a length of seconds into length of # time (period / duration). # The format string may contain text and values to be used to # display the period. The syntax for the format is any of %d, # %h, %m, and %s is replaced with the days, hours, minutes and # seconds. # If no format is given then the current locale settings are # used to construct a phrase with all of the elements. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2001Jan26 Created method JW # 2001Jan29 Added support for ranges JW # 21Nov2001 Caught warnings on empty value JW # ---------------------------------------------------------- sub format_period { my $self = shift; my( $format, $value ) = @_; # If it's blank, just return it return $value if !defined($value) || ($value eq ''); # If there's no format string us the locale one $format = $self->{period_string} unless $format; # If it's a range value then just return the value of the range # Any '0' value in a range is given a unit nonetheless # *** This is not internationalized!!! #... could support a list of ranges... if( $value =~ /([\d\.]+)\s*-\s*([\d\.]+)/ ) { my( $f, $l ) = ($1, $2); if( $f == 0 ) { my $f2 = $self->format_period( $format, 2 ); $f2 =~ s/2/$f/; $f = $f2; } else { $f = $self->format_period( $format, $f ); } # end if if( $l == 0 ) { my $l2 = $self->format_period( $format, 2 ); $l2 =~ s/2/$l/; $l = $l2; } else { $l = $self->format_period( $format, $l ); } # end if $value =~ s/([\d\.]+)(\s*-\s*)([\d\.]+)/$f$2$l/; return $value; } # end if #** Future implementation if needed # if( $format =~ /\%y/ ) { # my $y = int( $value / 31536000 ); # $value -= 31536000 * $y; # $format =~ s/\%y/$y/; # } # end if # # if( $format =~ /\%w/ ) { # my $w = int( $value / 604800 ); # $value -= 604800 * $w; # $format =~ s/\%w/$w/; # } # end if if( $format =~ /\%\{?d/ ) { my $d = int( $value / 86400 ); $value -= 86400 * $d; if( $format =~ /\%d/ ) { $format =~ s/\%d/$d/g; } else { $format =~ s/\%\{d\:([^\}]+)\}/$self->format_value($1,$d)/ge } # end if } # end if if( $format =~ /\%\{?h/ ) { my $h = int( $value / 3600 ); $value -= 3600 * $h; if( $format =~ /\%h/ ) { $format =~ s/\%h/$h/g; } else { $format =~ s/\%\{h\:([^\}]+)\}/$self->format_value($1,$h)/ge } # end if } # end if if( $format =~ /\%\{?m/ ) { my $m = int( $value / 60 ); $value -= 60 * $m; if( $format =~ /\%m/ ) { $format =~ s/\%m/$m/g; } else { $format =~ s/\%\{m\:([^\}]+)\}/$self->format_value($1,$m)/ge } # end if } # end if if( $format =~ /\%\{?s/ ) { if( $format =~ /\%s/ ) { $format =~ s/\%s/$value/g; } else { $format =~ s/\%\{s\:([^\}]+)\}/$self->format_value($1,$value)/ge } # end if } # end if return $format; } # end format_period # ---------------------------------------------------------- # Sub: format_bytes # # Args: $format, $value [, $as] # $format Ignored. Used for compatibility with other format functions # $value The value to format as bytes # $as (Optional) forces formatting as a particular size (e.g. 'M') # # Description: Formats a number of bytes into kb, MB, GB, etc. # If $value include the units 'bytes' or 'b' that # is removed before localization. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2001Jan26 Created method JW # 21Nov2001 Caught warnings on empty value JW # 26Jul2002 Fixed bug in decimal values and rounding JW # 26Jul2002 Added internationalization of number JW # 26Nov2002 Added $as for specific formatting level JW # ---------------------------------------------------------- sub format_bytes { my $self = shift; my( $f, $value, $as ) = @_; $value =~ s/[^\d\.]//g; # If it's blank, just return it return $value if !defined($value) || ($value eq ''); # Get $as value if not numeric into a numeric power of 1024 if( defined($as) && $as =~ /\D/ ) { my $cnt = scalar @{$self->{byte_pref}}; while( $cnt ) { if( $self->{byte_pref}[$cnt -1] eq $as ) { $as = $cnt - 1; last; } # end if $cnt-- } # end if } # end if # # If we are doing a format $as then only divide by that value # otherwise find the largest integral divisor and use that # my $pref; if( defined($as) and ($as !~ /\D/) ) { $pref = $self->{byte_pref}[$as]; $value = sprintf( "%.3f", $value / (1024 ** ($as + 1)) ); } else { # Start from the end of the byte_pref array and count down portions my $cnt = scalar @{$self->{byte_pref}}; while( $cnt ) { my $n = 1024**$cnt; if( $value >= $n ) { $value = sprintf( "%.3f", $value / $n ); $pref = $self->{byte_pref}[$cnt - 1]; last; } # end if $cnt-- } # end if } # end if return $self->formatMessage( $self->{bytes}, $self->formatNumber( '#.000', $value ), $pref ); } # end format_bytes # ---------------------------------------------------------- # Sub: format_bps # # Args: $format, $value # $format Ignored. Used for compatibility with other format functions # $value The value to format as a network rate (bps) # # Description: Formats a rate of bps into kbps, Mbps, Gbps, # etc. If the value contains the 'bps' units that is removed # before localization. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2001Jan26 Created method JW # 21Nov2001 Caught warnings on empty value JW # 26Jul2002 Fixed bug in decimal values and rounding JW # 26Jul2002 Added internationalization of number JW # ---------------------------------------------------------- sub format_bps { my $self = shift; my( $f, $value ) = @_; $value =~ s/[^\d\.]//g; # If it's blank, just return it return $value if !defined($value) || ($value eq ''); # Start from the end of the byte_pref array and count down portions my $cnt = scalar @{$self->{byte_pref}}; my $pref; while( $cnt ) { my $n = 1024**$cnt; if( $value >= $n ) { $value = sprintf( "%.3f", $value / $n ); $pref = $self->{byte_pref}[$cnt - 1]; last; } # end if $cnt-- } # end if return $self->formatMessage( $self->{bps}, $self->formatNumber( '#.000', $value ), $pref ); } # end format_bps # ---------------------------------------------------------- # Sub: format_choice # # Args: $format, $value # $format The choice format string. See below # $value The value to format as bytes # # Description: Formats a number of bytes into kb, MB, GB, etc. # If the value to format include the units 'bytes' or 'b' that # is removed before localization. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2001Jan27 Created method JW # ---------------------------------------------------------- sub format_choice { my $self = shift; my( $format, $value ) = @_; my( @keys, @values ); my $choice; $value ||= 0; foreach( split( /\|/, $format ) ) { my( $k, $v ) = /^([^\#]+)\#(.*)$/; push @keys, $k; push @values, $v; } # end foreach # Find @key where $key[j] <= $value < $key[j+1] my $i; for( $i = 0; $i < (@keys - 1); $i++ ) { if( ($keys[$i] == $value) || (($keys[$i] < $value) && ($value < $keys[$i+1])) ) { $choice = $values[$i]; last; } # end if } # end for $choice = $values[$#keys] if $value == $keys[$#keys]; # If no key, then look below and above unless( defined $choice ) { if( $value < $keys[0] ) { $choice = $values[0]; } elsif( $value > $keys[$#keys] ) { $choice = $values[$#keys]; } # end if } # end unless $choice =~ s/\%\{0\:([^\}]+)\}/$self->format_value($1,$value)/ge; $choice =~ s/\%0/$value/g; return $choice; } # end format_choice # ---------------------------------------------------------- # Sub: getPercent # # Args: $pages, $total # $pages The number of items to count # $total The total number of which $pages is a percent # # Description: Returns a localized, formatted value for # the percent of $pages in $total. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # Created by Corey Kay / DNS CK # 1999Jun11 Modified to use a localizations JW # ---------------------------------------------------------- sub getPercent { my $self = shift; my ($pages, $total) = @_; my $percent; my $dsep = $self->{'decimal_sep'}; my $ddig = $self->{'decimal_digits'}; my $percentFloor; my $percentDec = ''; for( 1..$ddig ) { $percentDec .= '0'; } # end while if( $total > 0 ) { $percent = $pages / $total * 100; if ($percent > 99.9) { $percentFloor = '100'; } else { $percentFloor = $percent; $percentFloor =~ s/^(\d+).*/$1/; $percent =~ s/^\d+.(\d{0,$ddig}).*/$1/; if( length( $percent ) == $ddig ) { $percentDec = $percent; } # end if } # end if $percent = $percentFloor . $dsep . $percentDec; } else { $percent = '--'; } # end if return $percent; } # end getPercent # ---------------------------------------------------------- # Sub: split_date # # Args: $date $hashRef # $date A date in the (Analog) format of yyyy/mm/dd hh:mm # $hashRef A hashRef that gets the values assoc'd with names # # Description: Given a data and hash ref, splits out the # components of the date and stores them in the # hash associated with filed names "year", "month", # "day", "hour" and "minute" and "second". # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 12Jun2001 Returns false if not a valid date JW # 14Jun2001 Improved speed with split() JW # ---------------------------------------------------------- sub split_date { my $self = shift; my( $date, $hashRef ) = @_; # If it's not a valid date-like string then return undef (false) return undef unless defined $date; return undef unless $date =~ /\d/; my @d = split( /\D+/, $date ); $hashRef->{year} = $d[0] if defined $d[0]; $hashRef->{month} = $d[1] if defined $d[1]; $hashRef->{day} = $d[2] if defined $d[2]; $hashRef->{hour} = $d[3] if defined $d[3]; $hashRef->{minute} = $d[4] if defined $d[4]; $hashRef->{second} = $d[5] if defined $d[5]; return @d; # A valid date returns true } # end split_date ########################## ## ## ## Private Methods ## ## ## ########################## # module clean-up code here (global destructor) END { } 1; # so the require or use succeeds rmagic-2.21/wadg/HTMLWriter.pm0100644000175000010010000014746107642525574015136 0ustar kilroyNone############################################################ # # Module: wadg::HTMLWriter # # Created: 07.May.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group # Copyright (C) 2000,2002 Wadsack-Allen. All rights reserved. # # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. ############################################################ # Date Modification Author # ---------------------------------------------------------- # 2000.May.16 Limited cascade support through context JW # 2000.May.16 Moved specific output styles to subclasses JW # 2000.May.20 Added support for hash ref for -stylesheet JW ############################################################ package wadg::HTMLWriter; =head1 NAME HTMLWriter - An HTML Writing class with CSS support =head1 SYNOPSIS use wadg::HTMLWriter; $w = new HTMLWriter( -stylesheet => 'styles.css', -output => 'HTML 3.2' ); print $w->start_html; print $w->head( $w->title( 'Stylesheets for old browsers' ) ); print $w->h1( 'Stylesheets for old browsers' ); print $w->p( qq[This page was built with a style sheet, but no stylesheet is used in the output] ); print $w->end_html; =head1 DESCRIPTION A class that provides familiar, easy-to-use HTML element methods, and understands stylesheets. In particular, a stylesheet can be applied and the HTMLWriter will output using styles (for HTML 4.0 or XHTML output) or using tags for (HTML 3.2 output). =head1 METHODS Most of the methods for HTMLWriter are basic HTML elements (e.g. $w->h1), just handled differently depending on the output requirements. They closely correspond to HTML tags and are not documented here explicitly. The following methods are of special interest in HTMLWriter: =over 4 =cut use strict; BEGIN { use vars qw( $VERSION @ISA ); $VERSION = do { my @r = (q$Revision: 2.00 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(); } # end BEGIN # non-exported package globals go here use vars qw( $AUTOLOAD @EMPTY ); # List of paramters that may be empty (e.g. have no end tag). This is loaded # into the objects space at $self->{_EMPTY} so that it can be overridden in # the constructor of subclasses (e.g. $self->{_EMPTY} = qw(...)) # This one is HTML 4+ including XHTML 1.0 @EMPTY = qw( BASE META LINK HR BR PARAM IMG AREA INPUT COL FRAME ); ############################ ## The object constructor ## ############################ =item $w = new HTMLWriter( -output => 'HTML 3.2', -stylesheet => 'styles.css' ); =item $w = new HTMLWriter::HTML_3_2( -stylesheet => 'styles.css' ); Builds a new HTMLWriter object. In the first syntax style, the HTMLWriter will look for a subclass of itself that matches "::HTML_3_2", "::HTML_3" or "::HTML" and return that if found. Otherwise it will return the default HTMLWriter class. In the second format you are specifying the subclass (i.e. version) explicitly. If the subclass doesn't exist, then you will get a compile-time error. The HTMLWriter objects support the following named parameters in the constructor: -stylesheet A scalar containing a filename, stylesheet data, a handle to a stylesheet file (already open), or a reference to a hash of a hash containing stylesheet entries. Content can can also be pased through the style tag method. -output An output format specifier string. Valid strings are: 'HTML 3.2' Outputs HTML 3.2 compliant elements 'XHTML 1.0' Outputs XHTML 1.0 compliant elements using styles -file A handle to an open file, pipe, or other output stream to which write method calls will print their arguments. The HTMLWriter objects have the following public properties: output_type Corresponds to the 'word' part of the output format specifier. In the supported formats this is HTML or XHTML output_version Corresponds to the 'number' part of the output format speficier. For example, '3.2', '4.01', or '1.0' CONTEXT This is a stack representing the current HTML context. While this is mainly used internally for cascade support, it is exposed as a very simple syntax checker: after writing the output you can check $w->{CONTEXT} to see if any elements haven't been closed (like or ). Of course this will auto-close any contained elements, so if you call $w->end_html then everything else will be closed. =cut sub new { my $proto = shift; my %parms = @_; my $self = {}; bless( $self, ref $proto || $proto ); # Parse -output parameter to load subclass if possible if( defined $parms{-output} ) { # Get type and version my($out_type) = $parms{-output} =~ /^(\w+)\s+/; my($out_version) = $parms{-output} =~ /^\w+\s+([\d\.]+)/; # Remove it so we don't get an endless loop delete $parms{-output}; # Convert $out_version to package legal characters $out_version =~ s/\./_/; # Get full package name, major version package name and type package name my $full_package = "wadg::HTMLWriter::$out_type" . '_' . $out_version; my $major_package = $full_package; $major_package =~ s/_\d+$//; my $type_package = "wadg::HTMLWriter::$out_type"; # Now get the subclass for the version, if any if( $full_package->isa( 'wadg::HTMLWriter' ) ) { $self = $full_package->new( %parms ); } elsif( $major_package->isa( 'wadg::HTMLWriter' ) ) { $self = $major_package->new( %parms ); } elsif( $type_package->isa( 'wadg::HTMLWriter' ) ) { $self = $type_package->new( %parms ); } # end if # Store the version and type $self->{output_type} = $out_type; $self->{output_version} = $out_version; } # end if # Parse other named parameters foreach ( keys %parms ) { my( $k ) = /^-?([^-].*)$/; # Remove leading '-', if any if( $k eq 'stylesheet' ) { $self->_parse_stylesheet( $parms{$_} ); } else { $self->{$k} = $parms{$_}; } # end if } # end while # Setup object variables $self->{CONTEXT} = []; $self->{_EMPTY} = \@EMPTY; $self->{file} = \*STDOUT unless defined $self->{file}; return $self; } # end new ########################## ## ## ## PUBLIC METHODS ## ## ## ########################## # ---------------------------------------------------------- # Sub: AUTOLOAD # # Args: (Anything) # # Description: Called by the system for undefined methods. # This just pushes the tag (undefined method) name and the # parameters to our _auto_tag method which can be called # from other (defined) methods or from subclasses or can # be overridden in subclasses # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May16 Moved processing to _auto_tag JW # ---------------------------------------------------------- sub AUTOLOAD { my $self = shift; my $name = $AUTOLOAD; $name =~ s/.*://; return $self->_auto_tag( $name, @_ ); } # end AUTOLOAD =item doctype Outputs the !DOCTYPE header for the current output style. In the default inplementation this just outputs something like this: In subclasses (or formats) this outputs with the proper version. =cut # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # ---------------------------------------------------------- sub doctype { my $self = shift; return ''; } # end doctype =item head( \%attrs, @content ); Outputs a element set, including the content, if any. In addition, this will include a elements) and will try to load I external style sheets (in elements). It will ignore C<@import> rules and inline styles (in the STYLE attribute of an HTML element). It will also ignore any non-css style sheets. =item CGI This has not been tested under mod_perl, PerlEx or any other standard or non-standard CGI interfaces. =item Redundancy Yes, this kind of functionality is provided by things like C, C, C, etc. but not in a way that works well here. C is not an OO interface and C cannot easily be subclassed (though it could be delegated). The Cs would require the whole overhead of the parser and element tree classes and cannot be streamed, unbuffered, to the output. So this works, for our needs in the space between those libraries. Perhaps these could all be coalleced into one HTML writing / building library that works for all situations. Especially if that tool could be assocaited with DTDs and properly manage systax checking, tree building, etc. as well as providing the forward-looking, backwards-compatability rendering offered by the HTML 3.2 version of this class. :) =back =head1 VERSION 2.00 =head1 AUTHOR Jeremy Wadsack for Wadsack-Allen Digital Group (dgsupport@wadsack-allen.com) =head1 COPYRIGHT Copyright (C) 2000,2001 Wadsack-Allen. All rights reserved. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1; # so the require or use succeeds rmagic-2.21/wadg/rm/0040755000175000010010000000000007642616036013235 5ustar kilroyNonermagic-2.21/wadg/rm/CROParser.pm0100644000175000010010000003617707642525574015414 0ustar kilroyNone# # TODO # * Make it work more like a parser.... # - Store $report and $columns in state variables. # - Return data (parse content) from nextLine() # - Possibly remove splitLine ... It seems pointless # ############################################################ # # Module: wadg::rm::CROParser # # Created: 20.March.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved. # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000) # # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. ############################################################ # Date Modification Author # ---------------------------------------------------------- ############################################################ package wadg::rm::CROParser; use strict; use wadg::Errors; BEGIN { use vars qw($VERSION @ISA); $VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(); } # end BEGIN # non-exported package globals go here use vars qw(); ############################ ## The object constructor ## ############################ sub new { my $self = {}; my $proto = shift; my %parms = @_; my $class = ref($proto) || $proto; # Parse named parameters my($k, $v); local $_; while( ($k, $v) = each %parms ) { $self->{$k} = $v; } # end while # Initialize variables $self->{separator} = ''; # Stores the separator characters(s) used in the file $self->{header} = undef; # Stores the header in from the data file $self->{footer} = undef; # Stores the footer from the data file $self->{globals} = {}; # Stores several global variables parsed from the General Summary $self->{lines} = []; # Stores the complete set of report lines in memory $self->{currentLine} = 0; # Stores the current line number to be read $self->{eof} = 0; # Whether the parser is at the end-of-file (see ->eof method) bless ($self, $class); return $self; } # end new ########################## ## ## ## Public Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: getFile # # Args: $filename # $filename The name of the CRO file to read in # # Returns: # 0 on success, other error code on failure. Errors # code return values are as follows # -1 Error opening the filename requested # # Description: Reads in an Analog CRO file to be parsed # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # Created as readInputFile by Corey Kaye / DNS CK # 1999Feb19 Support for any separator character JW # 2000Mar21 Changed to getFile with filename parameter JW # Also adjusted to use object properties JW # 03Aug2001 Modified to support alien EOLs JW # 14Dec2001 Fixed bug in alien EOL support JW # 09Mar2003 Added reading from an Analog process in CGI JW # ---------------------------------------------------------- sub getFile { my $self = shift; $self->{filename} = shift; my( @lData ); # # If this is CGI then get input from an Analog process # if( exists $self->{Analog} && exists $self->{Analog_Config} ) { # # Now get the data from analog # ## NOTE: We can't use IPC::Open2 here because it will lead to deadlock on the pipes # local( *AIN, *AOUT ); # my $cid = open2( *AOUT, *AIN, $self->{Analog}, '+g-' ) || return -1; # print AIN join( "\n", @{$self->{Analog_Config}} ); # return -1 unless close(AIN); # my @lines = ; # return -1 unless close(AOUT); # waitpid( $cid, 0 ); # Wait for the process to end stop reading/writing ## So use a temporary file. # On Windows, only one process can have a file open for writing at a time # so re-open as a read-only handle and close the writing handle use File::Temp qw( tempfile ); my( $fh, $fname ) = tempfile( UNLINK => 1 ); open( AIN, "<$fname" ) || return -1; close $fh; # Because Windows doesn't like filenames with spaces even though it supports them # Taken from anlgform.pl, Stephen R. E. Turner if( $^O =~ /win32/i || $^O =~ /^win/i ) { $self->{Analog} = Win32::GetShortPathName($self->{Analog}) if Win32::GetShortPathName($self->{Analog}); $fname = Win32::GetShortPathName($fname) if Win32::GetShortPathName($fname); } # end if open( ANALOG, '| ' . $self->{Analog} . " +g- > $fname" ); # Errors on close with pipe print ANALOG join( "\n", @{$self->{Analog_Config}} ); return -1 unless close(ANALOG); # Seek to top of $fh, just in case seek( AIN, 0, 0 ); # Now read file and close handle my @lines = ; close AIN; # Clean the lines, removing any headers chomp @lines; my $i; for( $i = 0; $i < @lines; $i++ ) { last if $lines[$i] eq ''; # End of headers $lines[$i] = '' if $lines[$i] =~ /^\S+:\s+/; } # end for $self->{lines} = \@lines; } # # Otherwise get input from the filename given # else { # Open the input file and read it return -1 unless open(fileHandle,"<$self->{filename}"); # Get lines from files, supporting alien EOLs my @lines = split /\015\012|\012|\015/, join( '', ); $self->{lines} = \@lines; close fileHandle; chomp( @{$self->{lines}} ); } # end if # # Find out what the separator character is, get some important # report-wide stats and remove headers and footers # my $separator = ''; my( $header, $footer ); my $linecount = 0; foreach( @{$self->{lines}} ) { if( /^x/ ) { if( /^x(.+?)PS\1/ ) { $separator = quotemeta($1) if $separator eq ''; ( undef, undef, @lData ) = split( $separator ); $self->{globals}{'GenerationTime'} = []; @{$self->{globals}{'GenerationTime'}} = @lData; } elsif( /^x(.+?)FR\1/ ) { $separator = quotemeta($1) if $separator eq ''; ( undef, undef, @lData ) = split( $separator ); $self->{globals}{'DataStart'} = []; @{$self->{globals}{'DataStart'}} = @lData; } elsif( /^x(.+?)LR\1/ ) { $separator = quotemeta($1) if $separator eq ''; ( undef, undef, @lData ) = split( $separator ); $self->{globals}{'DataEnd'} = []; @{$self->{globals}{'DataEnd'}} = @lData; } elsif( /^x(.+?)VE\1/ ) { $separator = quotemeta($1) if $separator eq ''; ( undef, undef, @lData ) = split( $separator ); $self->{globals}{'AnalogVersion'} = join('', @lData); } elsif( /^x(.+?)SR\1/ ) { ( undef, undef, @lData ) = split( $separator ); $self->{globals}{'TotalRequests'} = $lData[0]; } elsif( /^x(.+?)PR\1/ ) { ( undef, undef, @lData ) = split( $separator ); $self->{globals}{'TotalPages'} = $lData[0]; } elsif( /^x(.+?)BT\1/ ) { ( undef, undef, @lData ) = split( $separator ); $self->{globals}{'TotalBytes'} = $lData[0]; } elsif( /^x(.+?)HN\1/ ) { $separator = quotemeta($1) if $separator eq ''; ( undef, undef, @lData ) = split( $separator ); $self->{globals}{HN} = join( ' ', @lData ); } # end if if( $separator ne '' ) { my $rn; ( undef, $rn, @lData ) = split( $separator ); $self->{globals}{$rn} = join( ' ', @lData ); } # end if } else { if( $separator eq '' ) { $header = $linecount; } else { # Use the character class [a-zA-z0-9], rather than \w, because # \w will be localized (in Japanese for instance) to other # invalid report codes! # *** NOTE this limits report codes to single characters!! if( !/^[a-zA-Z0-9]$separator[a-zA-Z0-9\*]+/ && !/^$/) { $footer = $linecount; last; } # end if } # end if } # end if $linecount++; } # end foreach # - Remove headers before report data and footers after if( defined $header ) { # If it's all a header, then fail with message if( $header + 1 == $linecount ) { wadg::Errors::error( -1, 'E0016', $self->{filename} ); } # end if $self->{header} = join( "\n", splice( @{$self->{lines}}, 0, $header + 1 ) ); # Adjust footer ofset: $footer -= $header + 1; } # end if if( defined($footer) && ($footer > 0) ) { $self->{footer} = join( "\n", splice( @{$self->{lines}}, $footer ) ); } # end if # Store the separator character $self->{separator} = $separator; return 0; } # end getFile # ---------------------------------------------------------- # Sub: nextLine # # Args: (None) # # Description: Parses and returns the next line in the file # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # Created as readNextLine by Corey Kay / DNS CK # 1999Feb24 Modified to use underscore in CPAS columns JW # 2000Mar21 Changed to nextLine and used object props JW # 14Dec2001 Patched up warnings JW # ---------------------------------------------------------- sub nextLine { my $self = shift; $self->{currentLine}++; my( $report, $columns, @lineData ) = $self->splitLine(); # - Read new line, skipping blank ones while( ($self->{currentLine} <= $#{$self->{lines}}) && ($self->{lines}[$self->{currentLine}] eq '') ) { $self->{currentLine}++; ( $report, $columns, @lineData ) = $self->splitLine(); } # end while # - Adjust capitals by appending underscores (JW) if( defined($report) && ($report eq uc($report)) && ($self->{lines}[$self->{currentLine}] ne '') ) { $report .= '_'; } # end if # Set eof state $self->{eof} = ($self->{currentLine} == $#{$self->{lines}}); return ( $report, $columns, @lineData ); } # end nextLine # ---------------------------------------------------------- # Sub: nextReport # # Args: (None) # # Returns: A list of lists, each row containing the results # of a nextLine call. # # Description: Parses and returns a list of the balance of # the lines in the current report. If called sequentially or # at the end of a report, will the next report. If called in after # a call or calls to nextLine, will return the rest of the # lines that have the same report type. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Apr04 Created method JW # 14Dec2001 Patched up warnings JW # ---------------------------------------------------------- sub nextReport { my $self = shift; my @rows; my ( $report, @data ); # Rememeber what the current / next report is. ( $report, @data ) = $self->nextLine(); push @rows, [ $report, @data ]; my $old_report = $report; # Go through the lines, gathering them up while( !$self->eof && defined($report) && ($report eq $old_report) ) { ( $report, @data ) = $self->nextLine(); push @rows, [ $report, @data ]; } # end while # == unget_next_line() $self->{currentLine}--; # Send back the list of lists return @rows; } # end nextReport # ---------------------------------------------------------- # Sub: getLineCount # # Args: (None) # # Description: Helper method to return the number of lines # in the current CRO file # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Mar21 Created method JW # ---------------------------------------------------------- sub getLineCount { my $self = shift; return $#{$self->{lines}}; } # end getLineCount # ---------------------------------------------------------- # Sub: getCurrentLineNumber # # Args: (None) # # Description: Helper method to return the number of the # line currently in process # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Mar21 Created method JW # ---------------------------------------------------------- sub getCurrentLineNumber { my $self = shift; return $self->{currentLine}; } # end getCurrentLineNumber # ---------------------------------------------------------- # Sub: resetParser # # Args: (None) # # Description: Helper method to reset the parser line counter # to start processing at the top again # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Mar21 Created method JW # ---------------------------------------------------------- sub resetParser { my $self = shift; $self->{eof} = 0; return $self->{currentLine} = 0; } # end resetParser # ---------------------------------------------------------- # Sub: eof # # Args: (None) # # Description: Returns true if parser is at the end of the # file, otherwise returns false. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May04 Created method JW # ---------------------------------------------------------- sub eof { my $self = shift; return $self->{eof}; } # end eof # ---------------------------------------------------------- # Sub: splitColumns # # Args: $cols, $hashRef, @data # $cols The list of column labels to assign to # $hashRef Reference to hash to store associations in # @data The list of data to assign to # # Description: Associates a list of data with the columns # and stores the association in the hash ref # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # Created by Jeremy Wadsack / WADG JW # 2000APR20 Converted to CLASS METHOD, adjusted class JW # 2000May07 Rewrote with map and removed uc...'_' stuff JW # ---------------------------------------------------------- sub splitColumns { my( $cols, $hashRef, @myData ) = @_; map {$hashRef->{$_} = shift @myData} split(/ */, $cols); } # end splitColumns ########################## ## ## ## Private Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: splitLine # # Args: $line # $line A row of CRO data # # Description: Splits the row of CRO data into columns # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # Created by Corey Kaye / DNS CK # 1999Mar08 Modified to pull our report and column spec JW # ---------------------------------------------------------- sub splitLine { my $self = shift; return split( /$self->{separator}/, $self->{lines}[$self->{currentLine}] ); } # end splitline # module clean-up code here (global destructor) END { } 1; # so the require or use succeeds rmagic-2.21/wadg/rm/Graphs.pm0100644000175000010010000003567107642525574015036 0ustar kilroyNone############################################################ # # Module: wadg::rm::Graphs # # Created: 20.April.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved. # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000) # # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. ############################################################ # Date Modification Author # ---------------------------------------------------------- # 20.APR.2000 REQUIRES GD::Graph 1.30 or later!!! JW ############################################################ package wadg::rm::Graphs; use strict; use HTML::Entities; use GD::Graph; # Requires GD::Text::Align use GD::Graph::Data; use GD; # For 1 pixel place holder # ALSO Requires GDGraph3d for 3d graphs BEGIN { use vars qw($VERSION @ISA); $VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw(); } # end BEGIN # non-exported package globals go here use vars qw( %_entity2char %_decompose_entity ); # # These hashes are necessary for creating the text in # the graphs when using gdFonts because the character set # in them is not latin-1 (it's latin-2, incidentally) # my %_entity2char = ( amp => '&', # ampersand 'gt' => '>', # greater than 'lt' => '<', # less than quot => '"', # double quote Aacute => '', Acirc => '', Auml => '', Ccedil => '', Eacute => '', Euml => '', Iacute => '', Icirc => '', Oacute => '', Ocirc => '', Ouml => '', Uacute => '', Uuml => '', Yacute => '', aacute => '', acirc => '', auml => '', ccedil => '', eacute => '', euml => '', iacute => '', icirc => '', oacute => '', ocirc => '', ouml => '', szlig => '', uacute => '', uuml => '', yacute => '', copy => '', reg => '', nbsp => ' ', curren => '', brvbar => '', sect => '', uml => '', shy => '', deg => '', acute => '', cedil => '', 'times' => '', # times is a keyword in perl divide => '', ); # Used to 'decompose' entities: => o' my %_decompose_entity = ( acute => "\'", circ => '^', cedil => '', grave => '`', ring => '', tilde => '~', uml => '', slash => '/', ); ############################ ## The object constructor ## ############################ sub new { my $self = {}; my $proto = shift; my %parms = @_; my $class = ref($proto) || $proto; # Defaults $self->{cycle_colors} = 1; $self->{shadows} = 1; # The old palette was [qw(lgreen lblue lred lpurple lyellow green blue red purple yellow)]; $self->{palette} = ['#9999CC', '#CCCC66', '#339900', '#990000', '#FFCC33', '#996699', '#6699FF', '#0066CC', '#FF9900', '#666699']; $self->{format} = 'png'; $self->{floor} = 0; # Parse named parameters my($k, $v); local $_; while( ($k, $v) = each %parms ) { $self->{$k} = $v; } # end while bless ($self, $class); return $self; } # end new ########################## ## ## ## Public Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: graph # # Args: $type # $type The graph type specifier: pie,line,bar # # Description: Graphs the data in $self->{data} using the # specified graph type and settings installed. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 1999MAR10 Original sub created JW # 2000APR20 Coverted to meth0d of wadg::rm::Graphs JW # Reorganized,implemented GD::Graph 1.30 stuff # 29Jul2002 Implemented number formatter for y labels JW # 10Mar2003 Added trucated text and elipsis to labels JW # ---------------------------------------------------------- sub graph { my $self = shift; my( $i, $graph ); my $decode = \&_gd_Decode_HTML_Entities; if( defined $self->{graph_font} ) { ### Build an object until Martien fixes ### can_do_ttf to a class method. my $g = new GD::Graph( 1, 1 ); if( $g->can_do_ttf ) { $decode = \&HTML::Entities::decode; } # end if } # end if my @chart = @{$self->{data}}; my $data = new GD::Graph::Data; my $column = $self->{column}; my $x_label = &$decode( $self->{x_label} ); my $y_label = &$decode( $self->{y_label} ); my $chartFile = $self->{file}; my $title = &$decode( $self->{title} ); my $height = $self->{height}; my $width = $self->{width}; # Minumum width, make it wider if more data. # [ JW] This is a kludge. In 2.0, let's use the GD::Graph::Data object # and do some estimating based on max and mins. Also, GDGraph3d could try # to better handle data that is wider than the width of the graph by either # (a) dropping intermediate points or (b) allowing two plots on a given pixel. if( (@chart + 100) > $width ) { $width = @chart + 100; } # end if my( $type ) = @_; # # Adjust $column for chart type # if( $type =~ /pie/i ) { $column = lc($column); } elsif( $type =~ /bar/i ) { $column = uc($column); } elsif( $type =~ /line/i ) { $column = uc($column); } # endif # # Preprocess the data for the graph points # [This is two loops because the second loop is dependent on first loop's results] # Check floor and store non-matching values in @others # Set options for making readable labels (note only check labels that show) # my @others; for $i ( 0..@chart ) { next unless defined $chart[$i]{$column}; if( (($self->{floor} > 0) && ($chart[$i]{$column} < $self->{floor})) || (($self->{floor} < 0) && ($i > -$self->{floor})) ) { push @others, $i; } elsif( defined $chart[$i]{'name'} && length( $chart[$i]{'name'} ) > 20 ) { $chart[$i]{name} = $chart[$i]{number} . '. ' . substr( $chart[$i]{name}, 0, 20 ) . $self->{ellipsis} } # end if } # end for # # Put the data into the GD::Graph::Data structure # Ignore undefined values. # Convert all text to the proper character set # If @others is > 1 then put those points into an 'other' point # my $other = 0; for $i ( 0 .. @chart ) { if( defined $chart[$i]{$column} ) { if( (@others > 1) && grep {$_== $i} @others ) { $other += $chart[$i]{$column}; } else { $data->add_point( &$decode( $chart[$i]{name} ), $chart[$i]{$column} ); } # end if } # end if } # end for # Make the 'other' point, if it exists if( $other ) { $data->add_point( $self->{other_label}, $other ); } # end if # - Adjust maximum scale. GD::Graph doesn't seem to do it well. # *** This is something Martien and I are working on fixing in the GD::Graph modules [ JW]*** # - Just round up two significant digits my $maxY; (undef, $maxY) = $data->get_min_max_y( 1 ); if( defined $maxY ) { my $factor = 10 ** (length( $maxY ) - 2); $maxY = int( $maxY / $factor ) + 1; $maxY *= $factor; } # end if # - Set color or default to black on white my $textColor = 'black'; my $bgColor = 'white'; if( defined $self->{font_color} ) { $textColor = $self->{font_color}; } # end if if( defined $self->{bg_color} ) { $bgColor = $self->{bg_color}; } # end if if( $type =~ /pie/i ) { # # Pie Chart # if( $self->{'3d'} && $type !~ /pie2d/ ) { use GD::Graph::pie3d; $graph = new GD::Graph::pie3d( $width, $height ); } else { use GD::Graph::pie; $graph = new GD::Graph::pie( $width, $height ); $graph->set( '3d' => 0 ); } # end if $graph->set ( title => $title, transparent => 1, ); $graph->set_text_clr ( $textColor ); # -- Keep label color black because it's on top of the pie slices $graph->set( axislabelclr => 'black' ); $graph->set( bgclr => $bgColor ); $graph->set( fgclr => $textColor ); $graph->set( dclrs => $self->{palette} ); if( (defined $self->{graph_font}) && ($graph->can_do_ttf) ) { my( $fnt, @sizes ) = split( /\s*,\s*/, $self->{graph_font} ); $graph->set_title_font( $fnt, $sizes[0] || 16 ); $graph->set_label_font( $fnt, $sizes[1] || 11 ); $graph->set_value_font( $fnt, $sizes[2] || 9 ); } else { $graph->set_title_font( GD::gdLargeFont ); $graph->set_label_font( GD::gdMediumBoldFont ); $graph->set_value_font( GD::gdMediumBoldFont ); } # end if } elsif( $type =~ /bar/i ) { # # Bar chart # my $use_box = 1; # To get fill color on 2d graphs if( $self->{'3d'} && $type !~ /bars?2d/ ) { use GD::Graph::bars3d; $graph = new GD::Graph::bars3d( $width, $height ); $use_box = 0; # On 3d only do back box, not front } else { use GD::Graph::bars; $graph = new GD::Graph::bars( $width, $height ); } # end if $graph->set ( transparent => 1, y_label => $y_label, x_label => $x_label, title => $title, long_ticks => 1, x_ticks => 1, x_label_position => .5, y_label_position => .5, x_labels_vertical => 1, axis_space => 3, bar_spacing => 7, y_number_format => $self->{formatter} || '%d', cycle_clrs => $self->{cycle_colors}, b_margin => 3, x_all_ticks => 1, box_axis => $use_box, ); $graph->set( shadow_depth => 4, shadowclr => $textColor ) if $self->{shadows}; # - Set colors and fonts $graph->set_text_clr ( $textColor ); $graph->set( bgclr => $bgColor ); # Make a foreground color that is between the text and background so it blends in my( $r, $g, $b ) = GD::Graph::colour::_rgb( $textColor ); my( $r1, $g1, $b1 ) = GD::Graph::colour::_rgb( $bgColor ); $r = int( ($r + $r1) / 2 ); $g = int( ($g + $g1) / 2 ); $b = int( ($b + $b1) / 2 ); my $fgclr = GD::Graph::colour::rgb2hex( $r, $g, $b ); $graph->set( fgclr => $fgclr ); $graph->set( dclrs => $self->{palette} ); $graph->set( boxclr => $self->{graph_color} ) if defined $self->{graph_color}; if( (defined $self->{graph_font}) && ($graph->can_do_ttf) ) { my( $fnt, @sizes ) = split( /\s*,\s*/, $self->{graph_font} ); $graph->set_title_font( $fnt, $sizes[0] || 16 ); $graph->set_x_label_font( $fnt, $sizes[1] || 11 ); $graph->set_x_axis_font( $fnt, $sizes[2] || 9 ); $graph->set_y_label_font( $fnt, $sizes[1] || 11 ); $graph->set_y_axis_font( $fnt, $sizes[2] || 9 ); } else { $graph->set_title_font( GD::gdLargeFont ); $graph->set_x_label_font( GD::gdMediumBoldFont ); $graph->set_x_axis_font( GD::gdSmallFont ); $graph->set_y_label_font( GD::gdMediumBoldFont ); $graph->set_y_axis_font( GD::gdSmallFont ); } # end if my $lblSkip = int( @chart / 12 ); if( $lblSkip > 1 ) { $graph->set( x_label_skip => $lblSkip ); } # end if if( defined $maxY ) { $graph->set( y_max_value => $maxY ); } # end if $graph->set( y_min_value => 0 ); } elsif( $type =~ /line/i ) { # # Line chart # my $use_box = 1; # To get fill color on 2d graphs if( $self->{'3d'} && $type !~ /lines?2d/ ) { use GD::Graph::lines3d; $graph = new GD::Graph::lines3d( $width, $height ); $use_box = 0; # On 3d only do back box, not front } else { use GD::Graph::lines; $graph = new GD::Graph::lines( $width, $height ); } # end if $graph->set ( transparent => 1, y_label => $y_label, x_label => $x_label, title => $title, long_ticks => 1, x_ticks => 1, x_label_position => .5, y_label_position => .5, x_labels_vertical => 1, y_number_format => $self->{formatter} || '%d', axis_space => 3, line_width => 8, b_margin => 3, box_axis => $use_box, ); # - Set colors and fonts $graph->set_text_clr ( $textColor ); $graph->set( bgclr => $bgColor ); # Make a foreground color that is between the text and background so it blends in my( $r, $g, $b ) = GD::Graph::colour::_rgb( $textColor ); my( $r1, $g1, $b1 ) = GD::Graph::colour::_rgb( $bgColor ); $r = int( ($r + $r1) / 2 ); $g = int( ($g + $g1) / 2 ); $b = int( ($b + $b1) / 2 ); my $fgclr = GD::Graph::colour::rgb2hex( $r, $g, $b ); $graph->set( fgclr => $fgclr ); $graph->set( dclrs => $self->{palette} ); $graph->set( boxclr => $self->{graph_color} ) if defined $self->{graph_color}; if( (defined $self->{graph_font}) && ($graph->can_do_ttf) ) { my( $fnt, @sizes ) = split( /\s*,\s*/, $self->{graph_font} ); $graph->set_title_font( $fnt, $sizes[0] || 16 ); $graph->set_x_label_font( $fnt, $sizes[1] || 11 ); $graph->set_x_axis_font( $fnt, $sizes[2] || 9 ); $graph->set_y_label_font( $fnt, $sizes[1] || 11 ); $graph->set_y_axis_font( $fnt, $sizes[2] || 9 ); } else { $graph->set_title_font( GD::gdLargeFont ); $graph->set_x_label_font( GD::gdMediumBoldFont ); $graph->set_x_axis_font( GD::gdSmallFont ); $graph->set_y_label_font( GD::gdMediumBoldFont ); $graph->set_y_axis_font( GD::gdSmallFont ); } # end if my $lblSkip = int( @chart / 12 ); if( $lblSkip > 1 ) { $graph->set( x_label_skip => $lblSkip ); } # end if if( defined $maxY ) { $graph->set( y_max_value => $maxY ); } # end if $graph->set( y_min_value => 0 ); } # end if # # Now that we've set all the options, plot a graph # my $gd = $graph->plot( $data ); # # And write the file # undef $!; if( open( GRAPH, ">$self->{filename}" ) ) { # Use binary files on Windows binmode( GRAPH ); # If the graph failed to build, then replace it with a 1 pixel place holder # It can fail if all data is '0' and it's a pie chart for instance unless( defined $gd ) { $gd = new GD::Image( 1, 1 ); $gd->transparent( $gd->colorAllocate(255,255,255) ); } # end if # Now write to file in the proper format if( lc($self->{format}) eq 'png' ) { print GRAPH $gd->png; } elsif( lc($self->{format}) eq 'gif' ) { print GRAPH $gd->gif; } elsif( lc($self->{format}) eq 'jpeg' ) { print GRAPH $gd->jpeg; } # end if close( GRAPH ); } else { warn "ERROR: Failed to write $self->{filename}. $!\n"; } # end if } # end graph ########################## ## ## ## Private Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: _gd_Decode_HTML_Entities # # Args: @strings # @strings An array of HTML-encoded strings to decode # # Description: # A helper function to decode recognized HTML entities into # the character set used in the GD fonts. For entities not in # the font attempts to decompose them into character pairs. # *NOTE* This is 'borrowed' (except the decompose) # * straight out of Gisele Aas's HTML::Entities # * module, then adjusted for the GD fonts # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # ---------------------------------------------------------- sub _gd_Decode_HTML_Entities { my $array = [@_]; my $c; for( @$array ) { s/&(\w)(\w*);?/$_entity2char{"$1$2"} || "$1$_decompose_entity{$2}" || "$1$2"/eg; s/&#(\d+);?/chr($1)/eg; } # end for return wantarray ? @$array : $array->[0]; } # end _gd_Decode_HTML_Entities # module clean-up code here (global destructor) END { } 1; # so the require or use succeeds rmagic-2.21/wadg/rm/Report/0040755000175000010010000000000007642616036014510 5ustar kilroyNonermagic-2.21/wadg/rm/Report/GeneralSummary.pm0100644000175000010010000002271207642525574020010 0ustar kilroyNone############################################################ # # Module: wadg::rm::Report::GeneralSummary # # Created: 20.March.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved. # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000) # # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. ############################################################ # Date Modification Author # ---------------------------------------------------------- ############################################################ package wadg::rm::Report::GeneralSummary; use strict; BEGIN { use vars qw($VERSION @ISA); $VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw( wadg::rm::Report ); } # end BEGIN # non-exported package globals go here use vars qw(); ############################ ## The object constructor ## ############################ sub new { my $self = {}; my $proto = shift; my %parms = @_; my $class = ref($proto) || $proto; bless ($self, $class); $self->{_units} = {}; $self->{_unit} = {}; $self->_initialize( %parms ) or return; return $self; } # end new ########################## ## ## ## Public Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: process # # Args: @data # @data The data columns in the report line # # Description: Processes a report line for the report. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 05Dec2002 Changed byte encoding to be done on data item JW # 04Feb2003 Patched up warnings for columns w/o Format JW # ---------------------------------------------------------- sub process { my $self = shift; my( $reportType ) = $self->{token}; my $columns = $self->{columns}; # -- Only process rows that are requested if( !defined $self->{_CONFIG}{$self->{token}}{Rows} || ($self->{_CONFIG}{$self->{token}}{Rows} eq '') || ($self->{_CONFIG}{$self->{token}}{Rows} =~ /\b$columns\b/gi) ) { my( $point ) = @_; # - More than one field is a date type if( @_ > 1 ) { $point = $self->{_FORMATTER}->getDateString( @_ ); $point = $self->{_FORMATTER}->formatDate( $self->{_CDATA}->val( $columns, 'TimeFormat' ), $point ); } # end if # - If it looks like a URL, then link it if( $point =~ m!^\w+://[\w\d\.\-]+(/|$)! ) { $point = $self->{writer}->a( {href => $point, target => '_top'}, $point ); } # end if # If it has units and it's not bytes (cruft) then add those if( defined($self->{_CDATA}->val( $columns, 'Units' )) ) { if( !defined($self->{_CDATA}->val( $columns, 'Format' )) || ($self->{_CDATA}->val( $columns, 'Format' ) ne 'bytes') ) { # Add units to other fields $self->{_units}{$columns} = $self->{_CDATA}->val( $columns, 'Units' ); $self->{_unit}{$columns} = $self->{_CDATA}->val( $columns, 'Unit' ); } # end unless } # end if # Swap shaded rows $self->{_shaded_row} = 1 - $self->{_shaded_row}; # Output the table row $self->_data_row( $self->{_CDATA}->val( $columns, 'LongName' ), $point ); } # end if } # end process # ---------------------------------------------------------- # Sub: start_table # # Args: (None) # # Description: Draws the table headers for the General Summary # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May06 Derived from wadg::rm::Report JW # ---------------------------------------------------------- sub start_table { my $self = shift; my @columns = split(/ */, $self->{columns}); my $altString = ''; # - Create some summary text for the table # Remove any HTML tags, though $altString = $self->{_CONFIG}{$self->{token}}{Description}; $altString =~ s/<.+?>//g; my $tableBorder = '1'; $self->{writer}->write( $self->{writer}->br(), $self->{writer}->start_div( {align => 'CENTER'} ), $self->{writer}->start_table( {cellpadding => 5, cellspacing => 0, border => $tableBorder, width => '85%', summary => $altString } ), $self->{writer}->tr( $self->{writer}->th( {colspan => 3, scope => 'COL'}, $self->{_CONFIG}{$self->{token}}{DataName} ) ), ); return 0; } # end start_table # ---------------------------------------------------------- # Sub: end_report # # Args: (None) # # Description: Calls SUPER to finish the report page, then # inserts the marker for the quick summary. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May06 Moved GeneralSummary stuff to its own class JW # ---------------------------------------------------------- sub end_report { my $self = shift; return if $self->{token} eq ''; # Do the normal stuff $self->SUPER::end_report( @_ ); # Add insertion point for QuickSummary _after_ nav table $self->{writer}->write( $self->{writer}->comment( 'end general summary' ) ); } # end end_report ########################## ## ## ## Private Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: _format_data_item # # Args: $data # $data The data item to be formatted # # Description: Adds units to items after they've been localized # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May03 If this column has units then add them JW # ---------------------------------------------------------- sub _format_data_item { my $self = shift; my( $data ) = $self->SUPER::_format_data_item(@_); if( ($data eq '1') && (defined $self->{_unit}{$self->{columns}}) ) { $data .= ' ' . $self->{_unit}{$self->{columns}}; } elsif( defined $self->{_units}{$self->{columns}} ) { $data .= ' ' . $self->{_units}{$self->{columns}}; } # end if return $data; } # end _format_data_item # ---------------------------------------------------------- # Sub: _data_row # # Args: @data # @data The data to put in the row. # # Description: Writes out the data in the row of the table # for a report. Calls the appropriate formatting methods for # table and graph labels and data. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May04 Subclassed to handle GeneralSummary columns JW # ---------------------------------------------------------- sub _data_row { my $self = shift; my( @data ) = @_; my @columns = ($self->{columns}); $self->__table_row( $self->{_shaded_row}, \@columns, \@data ); } # end _data_row # ---------------------------------------------------------- # Sub: __table_row # # Args: $row_color, $colref, $dataref # $row_color The color (if any) to use for the row # $colref Reference to the list of column specs # $dataref Reference to the list of data to write to the row # # Description: Outputs data items into a table row. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May04 Created from sources in _data_row JW # ---------------------------------------------------------- sub __table_row { my $self = shift; my( $row_color, $colref, $dataref ) = @_; my( @columns ) = @{$colref}; my( @data ) = @{$dataref}; $row_color = 'alt' . ($row_color + 1); $self->{writer}->write( $self->{writer}->start_tr() ); # Get index number for line # --- Need this, even in GS, cause it counts our lines my $num = @{$self->{_chart}} + 1; # Print line index, if there is one if( $num eq '' ) { $self->{writer}->write( $self->{writer}->td( {class => $row_color}, ' ' ) ); } else { $self->{writer}->write( $self->{writer}->td( {class => $row_color}, "$num." ) ); } # end if # # Now, iterate through data set and output rows. # my $i = 0; foreach (@data) { my $c = $columns[0]; # Skip undefined data next unless defined; if( ($i > 0) && ($self->{_CDATA}->val( $c, 'LongName' ) eq '') ) { $i++; next; } # end if # # Print line data # my %td = (class => $row_color, align => 'left'); # If the data looks like a number then format right align. # Don't format IP numbers though and don't right-align anything in column 0 if( ($i > 0) && (/^[\d\.]+$/) && !(/\d+\.\d+\./) ) { $td{align} = 'right'; #$_ = $self->{_FORMATTER}->formatNumber( $self->{_CDATA}->val( $c, 'NumberFormat' ), $_ ); } # end if # - If no value insert a  , otherwise format appropriately if( $_ eq '' ) { $_ = ' '; } elsif( $i == 0 ) { $_ = $self->_format_data_label( $_, $c ); } else { $_ = $self->_format_data_item( $_, $c ); } # end if $self->{writer}->write( $self->{writer}->td( \%td, $_ ) ); $i++; } # end foreach push @{$self->{_chart}}, $num; $self->{writer}->write( $self->{writer}->end_tr() ); } # end __table_row # module clean-up code here (global destructor) END { } 1; # so the require or use succeeds rmagic-2.21/wadg/rm/Report/HierarchicalReport.pm0100644000175000010010000001263707642525574020634 0ustar kilroyNone############################################################ # # Module: wadg::rm::Report::HierarchicalReport # # Created: 20.April.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved. # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000) # # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. ############################################################ # Date Modification Author # ---------------------------------------------------------- ############################################################ package wadg::rm::Report::HierarchicalReport; use strict; BEGIN { use vars qw($VERSION @ISA); $VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw( wadg::rm::Report ); } # end BEGIN # non-exported package globals go here use vars qw(); ############################ ## The object constructor ## ############################ sub new { my $self = {}; my $proto = shift; my %parms = @_; my $class = ref($proto) || $proto; bless ($self, $class); $self->_initialize( %parms ) or return; $self->{_level} = 0; return $self; } # end new ########################## ## ## ## Public Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: process # # Args: @data # @data The data columns in the report line # # Description: Processes a report line for the report. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Apr25 Just saves the level and calls SUPER JW # ---------------------------------------------------------- sub process { my $self = shift; my( $point, @myLine ) = $self->_format_data_columns( @_ ); # # Get the level from the 'l' column # if( $self->{columns} =~ /l/ ) { $self->{_level} = $myLine[index( $self->{columns}, 'l' )] } # end if return $self->SUPER::process( @_ ); } # end process ########################## ## ## ## Private Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: _format_data_label # # Args: $data # $data The data item label to be formatted # # Description: Formats the data label according to the style # of this report. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Apr25 Created method JW # 09Jan2002 Changed charset conversion only on latin-1 JW # ---------------------------------------------------------- sub _format_data_label { my $self = shift; my( $data ) = @_; my $cropChar = $self->{_CONFIG}->{$self->{token}}{Truncate} || ''; my $elip = $self->{_LANG}->val( 'Symbols', 'ellipsis' ); my $level = $self->{_level}; # -- Crop long lines, if requested my $cropLineData = $data; if( ( $cropChar ne '' ) && ( length($data) > $cropChar ) ) { $cropLineData = substr( $data, 0, $cropChar ) . $elip; } # end if # # First decode the point, in case it contains encoding. # Then encode the point in case it doesn't # Only do this if the character set it iso-8859-1 though, since # HTML::Entities only supports that charcter set. # [Thanks to Jonas Smedegaard for the patch] my $charset = $self->{_LANG}->val( 'Language', 'CharacterSet' ) || ''; if( $charset eq "iso-8859-1" ) { HTML::Entities::decode($cropLineData); HTML::Entities::encode($cropLineData); # - Do this too. Even though it looks weird, it's the 'proper' way to # write CGI links in HTML (SEE RFC 1866) HTML::Entities::decode($data); HTML::Entities::encode($data); } # end if # -- Bold level 1 items if( $level == 1 ) { $cropLineData = $self->{writer}->b( $cropLineData ); } # end if if( defined $self->{_CONFIG}{$self->{token}}{SmallFont} ) { $cropLineData = $self->{writer}->span( {class => 'smallfont'}, $cropLineData ); } # end if # - Include links $cropLineData = $self->__format_data__include_links( $data, $cropLineData ); # -- Indent item according to level while( --$level > 0 ) { $cropLineData = '   ' . $cropLineData; } # end while return $cropLineData; } # end _format_data_label # ---------------------------------------------------------- # Sub: _format_data_item # # Args: $data # $data The data item to be formatted # # Description: Formats the data item by applying bold to # level 1 data # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Apr25 Created method JW # 14Aug2002 Added call to SUPER for formatting JW # ---------------------------------------------------------- sub _format_data_item { my $self = shift; # Get formatted item first my $data = $self->SUPER::_format_data_item( @_ ); # -- Bold level 1 items $data = $self->{writer}->b( $data ) if $self->{_level} == 1; return $data; } # end _format_data_item # module clean-up code here (global destructor) END { } 1; # so the require or use succeeds rmagic-2.21/wadg/rm/Report/QuickSummary.pm0100644000175000010010000001547207642525574017514 0ustar kilroyNone############################################################ # # Module: wadg::rm::Report::QuickSummary # # Created: 19.June.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved. # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000) # # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. ############################################################ # Date Modification Author # ---------------------------------------------------------- ############################################################ package wadg::rm::Report::QuickSummary; use strict; BEGIN { use vars qw($VERSION @ISA); $VERSION = do { my @r = (q$Revision: 2.0 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw( wadg::rm::Report ); } # end BEGIN # non-exported package globals go here use vars qw( $CONFIG $GLOBALS $LANG $FORMATTER ); ############################ ## The object constructor ## ############################ # The Quick Summay inserts itself into the report page # (if all reports are on one page) and the navigation page. # Therefore it is imperative that the report file and navigation # file are closed before this object is created. Otherwise # you will get file access errors. sub new { my $self = {}; my $proto = shift; my %parms = @_; my $class = ref($proto) || $proto; bless ($self, $class); $self->{_summaries} = {}; $self->_initialize( %parms ) or return; # Setup caps rows and remove any double '_' $self->{_CONFIG}{$self->{token}}{Rows} =~ s/([A-Z0-9])/$1_/g; $self->{_CONFIG}{$self->{token}}{Rows} =~ s/__/_/g; return $self; } # end new ########################## ## ## ## Public Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: process # # Args: @data # @data The data columns in the report line # # Description: Processes teh entire quic summary report. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 1999Feb28 Uses $shadedRow so alternating works, even if # all reports aren't printed. JW # 1999Mar09 Reads rows from config and builds summaries # from %biggest hash. JW # 2000Jun19 Converted to a class. Pulled out file stuff. JW # ---------------------------------------------------------- sub process { my $self = shift; # # Print a summary report for each report requested # my $totalCount = 1; my $ac = substr($self->{_CONFIG}{reports}{Active_Column}, 0, 1); if( $ac =~ /R/i ) { $totalCount = $self->{_GLOBALS}{SR}; } elsif( $ac =~ /P/i ) { $totalCount = $self->{_GLOBALS}{PR}; } elsif( $ac =~ /B/i ) { $totalCount = $self->{_GLOBALS}{BT}; } # end if # # Run through summary rows in the order specified in the settings # my $section; foreach $section ( split( /[\s\b,;:]+/, $self->{_CONFIG}{$self->{token}}{Rows} ) ) { # Get the section's field name my( $field ) = split /[\012\015]+/, $self->{_CONFIG}{$section}{ShortName}; if( defined $self->{_summaries}{$field}{max}{$ac} ) { # Swap shaded rows $self->{_shaded_row} = 1 - $self->{_shaded_row}; # Output the table row $self->_data_row( $self->{_CONFIG}{$section}{MostActive}, $self->{_summaries}{$field}{max}{name}, $self->{_summaries}{$field}{max}{$ac}, $self->{_FORMATTER}->getPercent( $self->{_summaries}{$field}{max}{$ac}, $totalCount ) ); } # end if } # end foreach } # end process # ---------------------------------------------------------- # Sub: openReportFile # # Args: $filename # $filename A filename to open and write to # $header An optional header to put at the top of the file # # Returns: An HTMLWriter object that will be used to write the # rest of the report content and should be closed with # closeReportFile. Returns undef on error. # # Description: Opens an output file for the quick summary, using # the current output file (inserting content) or creating a new # one through wadg::rm::Report::openReportFile. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Jun19 Created method from quicksummary sub. JW # 2000Sep20 Fixed bug in reference to $CONFIG JW # 2000Oct17 Fixed bug in file building JW # ---------------------------------------------------------- sub openReportFile { my( $fileName ) = @_; local *reportFile; # # Read in the file contents # # Get existing file contents unless( open(reportFile,"<$fileName") ) { wadg::Errors::error( -1, 'E0001', $fileName ); } # end unless my $temp_lines = join( '', ); close reportFile; # Start replacing contents unless( open( reportFile,">$fileName" ) ) { wadg::Errors::error( -1, 'E0003', $fileName ); } # end if return undef unless open( reportFile, ">$fileName" ); tied(%{$CONFIG})->get_report_styles( 'report' ); my $rw = new wadg::HTMLWriter( -file => *reportFile, -output => $$CONFIG{'report'}{Format}, -stylesheet => $$CONFIG{'report'}{_styles} ); if( $temp_lines =~ /^(.+?)(.+)$/s ) { $temp_lines = $2; $rw->write( $1 ); } # end if # -- This may not be a good idea, but since we created # the writer object for our own use... $rw->{_qs_temp_lines} = $temp_lines; return $rw; } # end openReportFile # ---------------------------------------------------------- # Sub: wadg::rm::Report::closeReportFile [CLASS METHOD] # # Args: $handle # $handle A handle to an HTMLWriter file for the object # $footer An optional footer to put at the bottom of the file # # Description: Finishes writing data to a report file and # closes the file associated with $handle. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Jun19 Created method from quicksummary sub. JW # 2000Oct17 Changed qw_temp_lines to scalar. JW # ---------------------------------------------------------- sub closeReportFile { my( $rw ) = @_; $rw->write( $rw->{_qs_temp_lines} ); return close $rw->{file}; } # end closeReportFile ########################## ## ## ## Private Methods ## ## ## ########################## # module clean-up code here (global destructor) END { } 1; # so the require or use succeeds rmagic-2.21/wadg/rm/Report/RangeReport.pm0100644000175000010010000000705107642525574017304 0ustar kilroyNone############################################################ # # Module: wadg::rm::Report::RangeReport # # Created: 20.March.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved. # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000) # # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. ############################################################ # Date Modification Author # ---------------------------------------------------------- # 2000.Apr.27 Changed to a general 'range' report for # Analog's SIZE and PROCTIME reports JW ############################################################ package wadg::rm::Report::RangeReport; use strict; BEGIN { use vars qw($VERSION @ISA); $VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker @ISA = qw( wadg::rm::Report ); } # end BEGIN # non-exported package globals go here use vars qw(); ############################ ## The object constructor ## ############################ sub new { my $self = {}; my $proto = shift; my %parms = @_; my $class = ref($proto) || $proto; bless ($self, $class); $self->_initialize( %parms ) or return; return $self; } # end new ########################## ## ## ## Public Methods ## ## ## ########################## ########################## ## ## ## Private Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: _format_data_label # # Args: $data # $data The data item label to be formatted # # Description: Formats the data label according to the style # of this report. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 1999Mar09 Uses standard parsing of available columns JW # 2000Apr25 Created method from old FileSizeReport sub JW # 09Jan2002 Changed charset conversion only on Latin-1 JW # 14Aug2002 Removed
       formatting; didn't look good    JW
      # ----------------------------------------------------------
      sub _format_data_label {
      	my $self = shift;
      	my( $data ) = @_;
      	my $dsep = $self->{_LANG}->val( 'Symbols', 'decimalSeparator' );
      
      	#
      	# First decode the point, in case it contains encoding.
      	# Then encode the point in case it doesn't
      	# Only do this if the character set it iso-8859-1 though, since 
      	# HTML::Entities only supports that charcter set.
      	# [Thanks to Jonas Smedegaard for the patch]
      	my $charset = $self->{_LANG}->val( 'Language', 'CharacterSet' ) || '';
      	if( $charset eq "iso-8859-1" ) {
      		HTML::Entities::decode($data);
      		HTML::Entities::encode($data);
      	} # end if
      
      	# Now convert number formats to localizations:
      	$data =~ s/(\d)\.(\d)/$1$dsep$2/g;
      
      	# The data for these reports are formatted to be on one line, so 
      	# replace spaces with  es and '-' with entities to avoid breaks
      	#** Would work better if we could push a 'nobreak' cell attribute to the parent
      	#   in fact, this would work nicely for the right-align kludge in number formatted
      	#   cells with _format_data_item() too.
      	$data =~ s/ / /g;
      	$data =~ s/-/-/g;
      	#$data = $self->{writer}->pre( $data );
      	
      	return $data;
      } # end _format_data_label
      
      
      # module clean-up code here (global destructor)
      END { }
      
      1;  # so the require or use succeeds
      rmagic-2.21/wadg/rm/Report/TimeReport.pm0100644000175000010010000001647207642525574017155 0ustar  kilroyNone############################################################
      #
      # Module: wadg::rm::Report::TimeReport
      #
      # Created: 20.March.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group
      # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved.
      # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000)
      #
      # This package is free software; you can redistribute it and/or
      # modify it under the same terms as Perl itself.
      ############################################################
      # Date        Modification                            Author
      # ----------------------------------------------------------
      ############################################################
      package wadg::rm::Report::TimeReport;
      use strict;
      
      BEGIN {
      	use vars       qw($VERSION @ISA);
      
      	$VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
      
      	@ISA         = qw( wadg::rm::Report );
      } # end BEGIN
      # non-exported package globals go here
      use vars      qw();
      
      
      ############################
      ## The object constructor ##
      ############################
      sub new {
      	my $self = {};
      	my $proto = shift;
      	my %parms = @_;
      	my $class = ref($proto) || $proto;
      
      	bless ($self, $class);
      	$self->_initialize( %parms ) or return;
      
      	return $self;
      } # end new
      
      ##########################
      ##                      ##
      ##    Public Methods    ##
      ##                      ##
      ##########################
      # ----------------------------------------------------------
      # Sub: end_table
      #
      # Args: (None)
      #
      # Description: Reverses the data for the graphs if requested, 
      # Then calls SUPER to closes the table for data columns.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000May06 Created to put reverse code in proper place   JW
      # ----------------------------------------------------------
      sub end_table {
      	my $self = shift;
      
      	# If requested, invert datasets in @chart
      	if( defined $self->{_CONFIG}{reports}{Reverse_Time} && $self->{_CONFIG}{reports}{Reverse_Time} != 0 ) {
      		@{$self->{_chart}} = reverse @{$self->{_chart}};
      	} # end if
      
      	$self->SUPER::end_table(@_);
      } # end end_table
      
      
      ##########################
      ##                      ##
      ##   Private Methods    ##
      ##                      ##
      ##########################
      
      # ----------------------------------------------------------
      # Sub: _format_data_label
      #
      # Args: $data
      #	$data	The data item label to be formatted
      #
      # Description: Formats the data label according to the style 
      # set in the TimeFormat for the report
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000Apr25 Created method                                JW
      # ----------------------------------------------------------
      sub _format_data_label {
      	my $self = shift;
      
      	return $self->{_FORMATTER}->formatDate( $self->{_CONFIG}{$self->{token}}{TimeFormat}, @_ );
      
      } # end _format_data_label
      
      # ----------------------------------------------------------
      # Sub: _format_graph_label
      #
      # Args: $data
      #	$data	The data item label to be formatted
      #
      # Description: Formats the data label according to the style 
      # set in the TimeFormat for the report.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000Apr25 Created method                                JW
      # ----------------------------------------------------------
      sub _format_graph_label {
      	my $self = shift;
      	return $self->_format_data_label( @_ );
      } # end _format_graph_label
      
      # -----------------------------------------------------------------------------
      # Sub: _write_summary
      #
      # Args: (None)
      #
      # Description: Writes out the summary information for time report. This 
      # includes the "most active" time statements.
      # -----------------------------------------------------------------------------
      # Date      Modification                                                 Author
      # -----------------------------------------------------------------------------
      # 2000Apr25 Built from parts in endReport                                    JW
      # 08Jan2002 Fixed bug where byte averages were off by a factor of 10         JW
      # 26Nov2002 Added support for Show_Bytes_As setting                          JW
      # -----------------------------------------------------------------------------
      sub _write_summary {
      	my $self = shift;
      	my( $dType )     = split /[\012\015]+/, $self->{_CONFIG}{$self->{token}}{ShortName};
      	my $formatSpec   = $self->{_CONFIG}{$self->{token}}{TimeFormat};
      	my $dateStr      = $self->{_summaries}{$dType}{max}{name};
      
      	# Close the table
      	$self->end_table();
      
      	# Output some summary text
      	$self->{writer}->write( $self->{writer}->start_p( {-class => 'smallfont'} ) );
      
      	# Maximum value label
      	# *** Is this internationalized???
      	$self->{writer}->write( $self->{_CONFIG}{$self->{token}}{MostActive} . " $dateStr : "  );
      
      	# Maximum values list
      	my $active_col = substr($self->{_CONFIG}{reports}{Active_Column}, 0, 1);
      	my $c; # Because formatMessage or formatNumber destroys $_.
      	foreach $c ( keys %{$self->{_summaries}{$dType}{max}} ) {
      		next if $c eq 'name';
      		$c .= '_' if $c eq uc($c);
      		next if not defined $self->{_CDATA}->val( $c, 'Activity' );
      		my $text = $self->{_FORMATTER}->formatMessage( 
      			$self->{_CDATA}->val( $c, 'Activity' ), 
      			$self->{_FORMATTER}->formatNumber( 
      				$self->{_CDATA}->val( $c, 'NumberFormat' ), 
      				$self->{_summaries}{$dType}{max}{substr($c, 0, 1)}
      			)
      		);
      		if( substr($c, 0, 1) eq $active_col ) {
      			$text = $self->{writer}->b( $text );
      		} # end if
      		$self->{writer}->write( "$text " );
      	} # end foreach
      
      	$self->{writer}->write( $self->{writer}->end_p() );
      	$self->{writer}->write( $self->{writer}->start_p( {-class => 'smallfont'} ) );
      
      	# Average results
      	if( (defined $self->{_CONFIG}{$self->{token}}{Average}) && ($self->{_summaries}{$dType}{count}) ) {
      		$self->{writer}->write( $self->{_CONFIG}{$self->{token}}{Average} . ': ' );
      		foreach $c ( keys %{$self->{_summaries}{$dType}{total}} ) {
      			$c .= '_' if $c eq uc($c);
      			next if not defined $self->{_CDATA}->val( $c, 'Activity' );
      			my $avg = int($self->{_summaries}{$dType}{total}{substr($c, 0, 1)} / ($self->{_summaries}{$dType}{count}));
      			if( defined $self->{_CDATA}->val($c,'NumberFormat') ) {
      				$avg = $self->{_FORMATTER}->formatNumber( $self->{_CDATA}->val($c,'NumberFormat'), $avg )
      			} elsif( defined $self->{_CDATA}->val($c,'Format') ) {
      				my $b = $self->{_CONFIG}{$self->{token}}{Show_Bytes_As};
      				my $f = $self->{_CDATA}->val($c,'Format');
      				if( defined($f) and ($f eq 'bytes') and defined($b) and $b ) {
      					$avg = $self->{_FORMATTER}->format_value( $f, $avg, $b )
      				} else {
      					$avg = $self->{_FORMATTER}->format_value( $f, $avg )
      				} # end if
      			} # end if
      			my $text = $self->{_FORMATTER}->formatMessage( $self->{_CDATA}->val( $c, 'Activity' ), $avg	);
      			if( substr($c, 0, 1) eq $active_col ) {
      				$text = $self->{writer}->b( $text );
      			} # end if
      			$self->{writer}->write( "$text " );
      		} # end foreach
      	} # end if
      	
      
      	$self->{writer}->write( $self->{writer}->end_p(), $self->{writer}->br(), $self->{writer}->hr() );
      
      } # end _write_summary
      
      # module clean-up code here (global destructor)
      END { }
      
      1;  # so the require or use succeeds
      rmagic-2.21/wadg/rm/Report/TimeSummary.pm0100644000175000010010000002105307642525574017326 0ustar  kilroyNone############################################################
      #
      # Module: wadg::rm::Report::TimeSummary
      #
      # Created: 20.March.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group
      # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved.
      # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000)
      #
      # This package is free software; you can redistribute it and/or
      # modify it under the same terms as Perl itself.
      ############################################################
      # Date        Modification                            Author
      # ----------------------------------------------------------
      # 2000.May.29 Added support for SummaryN in rdata.ini     JW
      ############################################################
      package wadg::rm::Report::TimeSummary;
      use strict;
      
      BEGIN {
      	use vars       qw($VERSION @ISA);
      
      	$VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
      
      	@ISA         = qw( wadg::rm::Report );
      } # end BEGIN
      # non-exported package globals go here
      use vars      qw();
      
      
      ############################
      ## The object constructor ##
      ############################
      sub new {
      	my $self = {};
      	my $proto = shift;
      	my %parms = @_;
      	my $class = ref($proto) || $proto;
      
      	bless ($self, $class);
      	$self->_initialize( %parms ) or return;
      
      	# Define some object variables
      	my $i = 1;
      	while( defined $self->{_CONFIG}{$self->{token}}{"Summary$i"} ) {
       		my( $def, $lbl ) = $self->{_CONFIG}{$self->{token}}{"Summary$i"} =~ /\[([^\]]+)\]\s*,\s*(.*)\s*/;
       		$self->{_summaries}{"Summary$i"}{label} = $lbl;
      		### Yeah, I know this is hard to maintain, but it should be faster than a bunch of subs
      		### Suppose it could be done with a foreach loop and push.
      		$self->{_summaries}{"Summary$i"}{definition} = [ map { /(\d+)-(\d+)/ ? map( sprintf("%02d", $_), eval "$1..$2") : /^\d+$/ ? sprintf("%02d", $_) : $_ } split( ',', $def ) ];
      		$i++;
      	} # end while
      	$self->{_summary_count} = $i - 1;
      	
      	bless ($self, $class);
      	return $self;
      } # end new
      
      ##########################
      ##                      ##
      ##    Public Methods    ##
      ##                      ##
      ##########################
      # ----------------------------------------------------------
      # Sub: process
      #
      # Args: @data
      #	@data	The data columns in the report line
      #
      # Description: Process a report line by collecting the summary 
      # data into our hashes and continuing with SUPER
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Mar08 Combined both time summaries to one routine. 
      #           Special handling is provided by specific 
      #           hash references and names and values defined 
      #           in rdata.ini                                  JW
      # 2000Apr25 Moved formatting to _format_XXXX_label        JW
      # 12Dec2002 Added summary handling for English case       JW
      # 21Feb2003 Added workaround for Hungarian analog files   JW
      # 18Mar2003 English Daily Summary was processing twice    JW
      # ----------------------------------------------------------
      sub process {
      	my $self = shift;
      	my( $point, @myLine ) = $self->_format_data_columns( @_ );
      	my( %tempHash );
      	my $processed = 0;
      	
      	wadg::rm::CROParser::splitColumns( $self->{columns}, \%tempHash, @myLine );
      
      	#
      	# Workaround for Hungarian language files: 
      	# In Analog's Hungarian language files anything less than four 
      	# letters is padded with spaces
      	#
      	$point =~ s/\s+$//;
      
      
      	# Process summaries
      	my( $i, $c );
      	for( $i = 1; $i <= $self->{_summary_count}; $i++ ) {
      		if( grep {lc($point) eq lc($_)} @{$self->{_summaries}{"Summary$i"}{definition}} ) {
      			foreach $c (split / */, $self->{columns}) {
      		 		$self->{_summaries}{"Summary$i"}{$c} += $tempHash{$c};
      				$processed ++;
      			} # end foreach
      		} # end if
      	} # end for
      
      	# In the case of the Daily Summary, we also want to support 
      	# English shortnames if those were used and the language is 
      	# not English
      	## This is a hack. I don't like it. Should be done in config!
      	unless( $processed ) {
      		if( grep {lc($point) eq lc($_)} qw(mon tue wed thu fri) ) {
      			foreach $c (split / */, $self->{columns}) {
      				$self->{_summaries}{Summary1}{$c} += $tempHash{$c};
      			} # end foreach
      		} # end if
      		if( grep {lc($point) eq lc($_)} qw(sat sun) ) {
      			foreach $c (split / */, $self->{columns}) {
      				$self->{_summaries}{Summary2}{$c} += $tempHash{$c};
      			} # end foreach
      		} # end if
      	} # end unless
      	
      	return $self->SUPER::process( @_ );
      
      } # end process
      
      ##########################
      ##                      ##
      ##   Private Methods    ##
      ##                      ##
      ##########################
      # ----------------------------------------------------------
      # Sub: _format_data_label
      #
      # Args: $data
      #	$data	The data item label to be formatted
      #
      # Description: Formats the data label according to the style 
      # set in the TimeFormat for the report
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000Apr25 Created method                                JW
      # 11Jun2001 Added support for new Analog 5 summaries      JW
      # 19Jun2001 Fixed bug in date formatting and optimized    JW
      # 06Feb2003 Fixed problem with German/English summaries   JW
      # 21Feb2003 Added workaround for Hungarian analog files   JW
      # ----------------------------------------------------------
      sub _format_data_label {
      	my $self = shift;
      	my $point = shift;
      	my @short_days = $self->{_LANG}->val( 'Dates', 'shortDays' );
      	my @en_short_days = qw( Sun Mon Tue Wed Thu Fri Sat );
      
      	#
      	# Workaround for Hungarian language files: 
      	# In Analog's Hungarian language files anything less than four 
      	# letters is padded with spaces
      	#
      	$point =~ s/\s+$//;
      	
      	#
      	# Try matching point to week day abreviations
      	# We need to match a whole word here, but not the whole string.
      	# Whole word so German 'Mo' doesn't only match part of English "Mon"
      	# and not whole string because hour-of-the-week is like Mon/23
      	#
      	my $day;
      	# First try locale
      	my $i = 0;
      	foreach $day (@short_days) {
      		last if $point =~ s/\b$day\b/$i/;
      		$i++;
      	} # end foreach
      	# Next try English, if we haven't found it
      	if( $i == @short_days ) {
      		$i = 0;
      		foreach $day (@en_short_days) {
      			last if $point =~ s/\b$day\b/$i/;
      			$i++;
      		} # end foreach
      	} # end if
      
      	# Push the dates deeper, if they need to be
      	my $p = $self->{_CONFIG}{$self->{token}}{PushDates};
      	if( defined $p && $p ) {
      		my @d = split( /\D+/, $point );
      		while( $p-- ) {
      			unshift @d, '0';
      		} # end while
      		$point = $self->{_FORMATTER}->getDateString( @d ); #"$d[0]/$d[1]/$d[2] $d[3]:$d[4]";
      	} # end if
      	
      	#  - Only format date-like strings
      	if( $point =~ /\d/ ) {
      		$point = $self->{_FORMATTER}->formatDate( $self->{_CONFIG}{$self->{token}}{TimeFormat}, $point );
      	} # end unless
      
      	return $point;
      } # end _format_data_label
      
      
      # ----------------------------------------------------------
      # Sub: _format_graph_label
      #
      # Args: $data
      #	$data	The data item label to be formatted
      #
      # Description: Formats the data label for the graphs.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000Apr25 Created method                                JW
      # ----------------------------------------------------------
      sub _format_graph_label {
      	my $self = shift;
      	return $self->_format_data_label( @_ );
      } # end _format_graph_label
      
      
      # ----------------------------------------------------------
      # Sub: _write_summary
      #
      # Args: (None)
      #
      # Description: Writes out the summary information for time 
      # summaries. This outputs those special summary rows.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000Apr25 Built from parts in endReport                 JW
      # 08Mar2003 Skip empty summary rows (set to empty value)  JW
      # ----------------------------------------------------------
      sub _write_summary {
      	my $self = shift;
      	my @columns = split //, $self->{columns};
      	
      	my( $i, $c );
      	for( $i = 1; $i <= $self->{_summary_count}; $i++ ) {
      		my @tmpAry = ( $self->{_summaries}{"Summary$i"}{label} );
      		next unless $tmpAry[0];		# Don't bother if there's no label
      		foreach $c ( @columns ) {
      			push( @tmpAry, $self->{_summaries}{"Summary$i"}{$c} );
      		} # end foreach
      		$self->__summary_row( \@columns, \@tmpAry );
      	} # end for
      
      	return $self->SUPER::_write_summary( @_ );
      } # end _write_summary
      
      
      # module clean-up code here (global destructor)
      END { }
      
      1;  # so the require or use succeeds
      rmagic-2.21/wadg/rm/Report.pm0100644000175000010010000017104707642525574015063 0ustar  kilroyNone############################################################
      #
      # Module: wadg::rm::Report
      #
      # Created: 20.March.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group
      # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved.
      # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000)
      #
      # This package is free software; you can redistribute it and/or
      # modify it under the same terms as Perl itself.
      ############################################################
      # Date        Modification                            Author
      # ----------------------------------------------------------
      # 2000.May.29 Converted entire class to HTMLWriter output JW
      # 2000.Oct.17 Changed all   to   for XHTML      JW
      ############################################################
      package wadg::rm::Report;
      use strict;
      use HTML::Entities;
      use File::Basename;
      use wadg::rm::Graphs;
      use wadg::Errors;
      use wadg::HTMLWriter;
      
      BEGIN {
      	use vars       qw($VERSION @ISA);
      
      	$VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
      
      	@ISA         = qw();
      } # end BEGIN
      # non-exported package globals go here
      use vars      qw( $CONFIG $GLOBALS $LANG $FORMATTER );
      
      ############################
      ## The object constructor ##
      ############################
      # ----------------------------------------------------------
      # Options:
      #	token	A code representing the report (e.g. 'x', 'm', 'W', etc.)
      #	handle	A file handle reference for writing to
      #	columns	The current list of columns for the current data 
      #           (This value may be changes between _table_row calls)
      #
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000APR25 Moved all init stuff to initialize            JW
      # ----------------------------------------------------------
      sub new {
      	my $self = {};
      	my $proto = shift;
      	my %parms = @_;
      	my $class = ref($proto) || $proto;
      
      	bless ($self, $class);
      	$self->_initialize( %parms ) or return;
      
      	#** carp unless defined _LANG, _CDATA, _CONFIG, and _FORMATTER
      	return $self;
      } # end new
      
      
      
      
      
      ##########################
      ##                      ##
      ##    Public Methods    ##
      ##                      ##
      ##########################
      
      # ----------------------------------------------------------
      # Sub: process
      #
      # Args: @data
      #	@data	The data columns in the report line
      #
      # Description: Processes a report line for the report.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Feb24 Modified to read all text from data file      JW
      # 1999Mar09 Adjusted to parse all available columns
      #           Incorporated Simple1 & Simple2 as settings    JW
      # 2000Apr25 Removed all formatting to format_data_label
      #           called in _table_row (w/ format_graph_label)  JW
      # ----------------------------------------------------------
      sub process {
      	my $self = shift;
      	my( $point, @myLine ) = $self->_format_data_columns( @_ );
      
      	# Swap shaded rows
      	$self->{_shaded_row} = 1 - $self->{_shaded_row};
      	
      	# Summarize the line
      	$self->_summarize( $point, @myLine );
      
      	# Output the table row
      	$self->_data_row( $point, @myLine );
      } # end process
      
      
      
      # ----------------------------------------------------------
      # Sub: title
      #
      # Args: (None)
      #
      # Description: Write out the title of the reports
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Feb19 Modified to support multi-file reports        JW
      # 1999Feb24 Modified to read all text from data file      JW
      # 10Mar2003 Added 'width' attr's to bounding table        JW
      # ----------------------------------------------------------
      sub title {
      	my $self = shift;
      	my $title = $self->{_CONFIG}{$self->{token}}{LongName};
      	my( $link ) = split /[\012\015]+/, $self->{_CONFIG}{$self->{token}}{ShortName};
      
      	# Start with a comment to help separate reports when in a single file
      	$self->{writer}->write( $self->{writer}->comment( <{_CONFIG}{reports}{Navigation_Content} ) {
      		my %td = ( align => 'left', valign => 'top' );
      		$td{background} = $self->{_CONFIG}{reports}{Navigation_Background} if defined $self->{_CONFIG}{reports}{Navigation_Background};
      		$td{bgcolor} = $self->{_CONFIG}{reports}{Navigation_BG_Color} if defined $self->{_CONFIG}{reports}{Navigation_BG_Color};
      		if( $self->{_CONFIG}{reports}{Navigation_Position} eq 'LEFT' ) {
      			$td{width} = '22%';
      			$self->{writer}->write( 
      				$self->{writer}->start_table( {border => 0, cellspacing => 0, cellpadding => 7, width => '100%'} ),
      				$self->{writer}->start_tr(),
      				$self->{writer}->td( \%td, $self->{_CONFIG}{reports}{Navigation_Content} ),
      				$self->{writer}->start_td( {align => 'left', valign => 'top', width => '78%'} ),
      			);
      		} elsif( $self->{_CONFIG}{reports}{Navigation_Position} eq 'TOP' ) {
      			$td{align} = 'CENTER';
      			$self->{writer}->write( 
      				$self->{writer}->start_table( {border => 0, cellspacing => 0, cellpadding => 7, width => '100%'} ),
      				$self->{writer}->tr(	$self->{writer}->td( \%td, $self->{_CONFIG}{reports}{Navigation_Content} ) ),
      				$self->{writer}->start_tr(),
      				$self->{writer}->start_td( {align => 'left', valign => 'top'} ),
      			);
      		} elsif( $self->{_CONFIG}{reports}{Navigation_Position} eq 'RIGHT' ) {
      			$self->{writer}->write( 
      				$self->{writer}->start_table( {border => 0, cellspacing => 0, cellpadding => 7, width => '100%'} ),
      				$self->{writer}->start_tr(),
      				$self->{writer}->start_td( {align => 'left', valign => 'top', width => '78%'} ),
      			);
      		} else {
      			$self->{writer}->write( 
      				$self->{writer}->start_table( {border => 0, cellspacing => 0, cellpadding => 7, width => '100%'} ),
      				$self->{writer}->start_tr(),
      				$self->{writer}->start_td( {align => 'left', valign => 'top'} ),
      			);
      		} # end if
      	} # end if
      
      	#
      	# Write out the name of the report
      	#
      	$self->{writer}->write( 
      		$self->{writer}->a( {name => $link}, ' ' ),
      		$self->{writer}->h2( "  $title  " ),
      	);
      
      } # end title
      
      
      
      # ----------------------------------------------------------
      # Sub: start_table
      #
      # Args: (None)
      #
      # Description: Draws the table headers for the current column
      # specification. Does not draw tables for filter rows.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Feb24 Support any report style and all columns      JW
      # 2000May06 Removed GeneralSummary specifics to subclass  JW
      # 31May2001 Added handler to ignore '*' columns           JW
      # ----------------------------------------------------------
      sub start_table {
      	my $self = shift;
      	my @columns = split(/ */, $self->{columns});
      	my $altString = '';
      
      	# If these are special columns, then don't do headers (or table)
      	return if $columns[0] eq '*';
      	
      	# - Create the table and headers
      	my $cName = '';
      	my $columnTypes = ':';
      	foreach (@columns) {
      		$_ .= '_' if $_ eq uc;
      
      		my $columnType = $self->{_CDATA}->val( $_, 'Type' ) || '';
      		$columnType = 'Data' if $columnType eq '';
      		$columnTypes .= "$columnType:";
      	} # end foreach
      
      	#
      	# Filters don't use tables, so just return
      	#
      	return 0 if $columnTypes =~ /:filter:/i;
      	
      	#
      	# Insert graphs image tags for active column
      	#
      	#my $width = 400;			# Can't do this right now 'cause width is dynamically set to fit data
      	#my $height = 300;
      	my $column = substr( $self->{_CONFIG}{$self->{token}}{Active_Column}, 0, 1 );
      
      	# Get the file name and the URL path part (if defined)
      	my @names = $self->_get_graph_filenames();
      	my $path = $self->{_CONFIG}{graphs}{URL_To} || '';
      
      	foreach ( @names ) {
      		my $altString = '';
      		if( /_(pie)\.[^\.]+$/ ) {
      			$altString = $self->{_FORMATTER}->formatMessage( $self->{_LANG}->val( 'Text', 'O0007' ), 
      			                                                 $self->{_CONFIG}{$self->{token}}{LongName}, 
      			                                                 $self->{_CDATA}->val( lc($column), 'LongName' ), 
      			                                                 $self->{_CONFIG}{$self->{token}}{DataName} );
      		} else {
      			$altString = $self->{_FORMATTER}->formatMessage( $self->{_LANG}->val( 'Text', 'O0007' ), 
      			                                                 $self->{_CONFIG}{$self->{token}}{LongName}, 
      			                                                 $self->{_CDATA}->val( uc($column) . '_', 'LongName' ), 
      			                                                 $self->{_CONFIG}{$self->{token}}{DataName} );
      		} # end if
      		$self->{writer}->write( 
      			$self->{writer}->p( {align => 'CENTER'}, $self->{writer}->br(),
      				$self->{writer}->img( {src => $path . $_, alt => $altString} )
      			)
      		);
      	} # end if
      
      	#
      	# Has some data columns so do it normally
      	#
      	my $tableHeaders = $self->{writer}->start_tr();
      	$tableHeaders .= $self->{writer}->th( {colspan => 2, scope => 'COL'}, $self->{_CONFIG}{$self->{token}}{DataName} );
      	foreach $column (@columns) {
      		next if lc($self->{_CDATA}->val( $column, 'Type' )) eq 'level';
      		next if lc($self->{_CDATA}->val( $column, 'Type' )) eq 'index';
      		# - Get the LongName for the column
      		$cName = $self->{_CDATA}->val( $column, 'LongName' );
      		if( $cName eq '' ) {
      			# Unknown header type
      			wadg::Errors::warning( 'W0002', $column );
      			next;
      		} # end if 
      		$tableHeaders .= $self->{writer}->th( {scope => 'COL'}, $cName );
      	} # end foreach
      	$tableHeaders .= $self->{writer}->end_tr();
      
      	# - Create some summary text for the table
      	#   Remove any HTML tags, though
      	$altString = $self->{_CONFIG}{$self->{token}}{Description};
      	$altString =~ s/<.+?>//g;
      	my $tableBorder = '1';
      
      	$self->{writer}->write( 
      		$self->{writer}->br(),
      		$self->{writer}->start_div( {align => 'CENTER'} ),
      		$self->{writer}->start_table( {cellpadding => 5, cellspacing => 0, border => $tableBorder, width => '85%', summary => $altString } ),
      		$tableHeaders,
      	);
      	
      	return 0;
      } # end start_table
      
      
      
      # ----------------------------------------------------------
      # Sub: end_report
      #
      # Args: (None)
      #
      # Description: Calls the report specific summary, and 
      # closes the Navigation table, if any.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Feb19 Created to function                           JW
      # 1999Feb24 Added table around the summary information    JW
      # 1999Mar08 Changed name to endReport.                    JW
      # 2000May06 Changed to end_report; removed graphing stuff JW
      # 31May2001 Added support for report span date message    JW
      # 10Mar2003 Added 'width' attr to bounding table cells    JW
      # ----------------------------------------------------------
      sub end_report {
      	my $self = shift;
      
      	return if $self->{token} eq '';
      
      	#
      	# Do report specific summaries and close table.
      	#
      	$self->_write_summary();
      
      	#
      	# If Analog's REPORTSPAN was used, then output range
      	#
      	if( defined $self->{REPORTSPAN} ) {
      		$self->{writer}->write( 
      			$self->{writer}->p( {class => 'fineprint'},
      				# Globals are never imported into the object, so get them from the class
      				$self->{_FORMATTER}->formatMessage( $self->{_LANG}->val( 'Text', 'O0004' ), $$GLOBALS{'DataStart'}, $$GLOBALS{'DataEnd'} ),
      			)
      		);
      	} # end if
      	
      	#
      	# Close bounding table if in non-frames mode.
      	#
      	if( defined $self->{_CONFIG}{reports}{Navigation_Content} ) {
      		my %td = ( align => 'left', valign => 'top' );
      		$td{background} = $self->{_CONFIG}{reports}{Navigation_Background} if defined $self->{_CONFIG}{reports}{Navigation_Background};
      		$td{bgcolor} = $self->{_CONFIG}{reports}{Navigation_BG_Color} if defined $self->{_CONFIG}{reports}{Navigation_BG_Color};
      		if( $self->{_CONFIG}{reports}{Navigation_Position} eq 'RIGHT' ) {
      			$td{width} = '22%';
      			$self->{writer}->write( 
      				$self->{writer}->end_td(),
      				$self->{writer}->td( \%td, $self->{_CONFIG}{reports}{Navigation_Content} ),
      				$self->{writer}->end_tr(),
      				$self->{writer}->end_table(),
      			);
      		} elsif( $self->{_CONFIG}{reports}{Navigation_Position} eq 'BOTTOM' ) {
      			$td{align} = 'center';
      			$td{valign} = 'bottom';
      			$self->{writer}->write( 
      				$self->{writer}->end_td(),
      				$self->{writer}->end_tr(),
      				$self->{writer}->tr(	$self->{writer}->td( \%td, $self->{_CONFIG}{reports}{Navigation_Content} ) ),
      				$self->{writer}->end_table(),
      			);
      		} else {
      			$self->{writer}->write( 
      				$self->{writer}->end_td(),
      				$self->{writer}->end_tr(),
      				$self->{writer}->end_table(),
      			);
      		} # end if
      	} # end if
      
      } # end end_report
      
      
      
      # ----------------------------------------------------------
      # Sub: end_table
      #
      # Args: (None)
      #
      # Description: Closes the table for data columns.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999May15 Encapsulated to end the data table.           JW
      # 2000May06 Removed tables from filter rows               JW
      # 2000Jun28 Fixed bug when columns are undefined          JW
      # 29Jul2002 Added number formatting sub for graphs        JW
      # ----------------------------------------------------------
      sub end_table {
      	my $self = shift;
      
      	#
      	# Filters don't use tables, don't have graphs, 
      	# so just return if there are any
      	#
      	return if substr( $self->{columns}, 0 , 1 ) eq '*';
      	foreach (split(/ */, $self->{columns})) {
      		$_ .= '_' if $_ eq uc;
      		my $type = $self->{_CDATA}->val( $_, 'Type' );
      		return if defined($type) && ($type =~ /filter/i);
      	} # end foreach
      
      	$self->{writer}->write( 
      		$self->{writer}->end_table(),
      		$self->{writer}->end_div(),
      	);
      	
      	#
      	# Make graphs for active column(s)
      	#
      	my %opts = ( 
      		data         => $self->{_chart},
      		x_label      => $self->{_CONFIG}{$self->{token}}{DataName},
      		title        => $self->{_CONFIG}{$self->{token}}{LongName},
      		width        => $self->{_CONFIG}{$self->{token}}{Width} ||
      		                $self->{_CONFIG}{graphs}{Width} || 400,
      		height       => $self->{_CONFIG}{$self->{token}}{Height} ||
      		                $self->{_CONFIG}{graphs}{Height} || 300,
      		graph_font   => $self->{_CONFIG}{graphs}{Font},
      		font_color   => $self->{_CONFIG}{graphs}{Font_Color} || $self->{_CONFIG}{$self->{token}}{Font_Color},
      		bg_color     => $self->{_CONFIG}{$self->{token}}{BG_Color},
      		graph_color  => $self->{_CONFIG}{graphs}{BG_Color} || $self->{_CONFIG}{$self->{token}}{BG_Color},
      		avg_color    => $self->{_CONFIG}{graphs}{Average_Line_Color},
      		other_label  => $self->{_LANG}->val( 'Text', 'O0013' ),
      		ellipsis     => $self->{_LANG}->val( 'Symbols', 'ellipsis' ),
      		cycle_colors => 1,
      		shadows      => 1,
      		'3d'         => 1,
      	);
      	$opts{palette}      = [split /\s*,\s*/, $self->{_CONFIG}{graphs}{Palette}] if defined $self->{_CONFIG}{graphs}{Palette};
      	$opts{cycle_colors} = $self->{_CONFIG}{graphs}{Cycle_Colors} if defined $self->{_CONFIG}{graphs}{Cycle_Colors};
      	$opts{shadows}      = $self->{_CONFIG}{graphs}{Drop_Shadows} if defined $self->{_CONFIG}{graphs}{Shadows};
      	$opts{'3d'}         = $self->{_CONFIG}{graphs}{'3d'} if defined $self->{_CONFIG}{graphs}{'3d'};
      	$opts{'3d'}         = $self->{_CONFIG}{$self->{token}}{'3d'} if defined $self->{_CONFIG}{$self->{token}}{'3d'};
      #	$opts{avg}          = $self->{_summaries}{$dType}{total}{$self->{_CONFIG}{$self->{token}}{Active_Column}} / $self->{_summaries}{$dType}{count} if $self->{_summaries}{$dType}{count};
      
      	# Clean up graphs_Font 
      	# -- if imported from [reports] then remove it
      	delete $opts{graph_font} if defined $opts{graph_font} && ($opts{graph_font} eq $self->{_CONFIG}{reports}{Font});
      	
      	#
      	# If the Path_To setting is given, then use that as the location to 
      	# write images. If not, then use the same folder as the reports
      	#
      	## NOTE: This makes Path_To releative to the working directory
      	## To make it relative to ouput directory, read that first, then catdir( out, path );
      	#
      	# - Use fileparse() to get $outDir, 'cause dirname() will make 
      	#   'reports/' into './' and we want 'reports/'
      	my $outDir = $self->{_CONFIG}{graphs}{Path_To};
      	unless( defined $outDir ) {
      		( undef, $outDir, undef ) = fileparse( $self->{_CONFIG}{$self->{token}}{File_Out} );
      	} # end unless
      
      	foreach ( $self->_get_graph_filenames() ) {
      		my $type = $1 if /_([^\.]+)\.[^\.]+$/;
      		$opts{format} = $1 if /\.([^\.]+)$/;
      		$opts{filename} = File::Spec->catfile( $outDir, $_ );
      		if( $type =~ /pie/i ) {
      			$opts{column} = lc(substr( $self->{_CONFIG}{$self->{token}}{Active_Column}, 0, 1));
      			$opts{y_label}  = $self->{_CDATA}->val( $opts{column}, 'LongName' );
      			$opts{floor} = 3;
      			$opts{formatter} = sub{ $self->_format_data_item( $_[0], $opts{column} ) };
      		} elsif( $type =~ /bar/i ) {
      			$opts{column} = uc(substr( $self->{_CONFIG}{$self->{token}}{Active_Column}, 0, 1));
      			$opts{'y_label'}  = $self->{_CDATA}->val( $opts{column} . '_', 'LongName' );
      			$opts{floor} = int((100 - $opts{width})/11);
      			$opts{formatter} = sub{ $_ = $self->_format_data_item( $_[0], $opts{column} . '_' ); s/<[^>]+>//g; $_ };
      		} else {
      			$opts{column} = uc(substr( $self->{_CONFIG}{$self->{token}}{Active_Column}, 0, 1));
      			$opts{'y_label'}  = $self->{_CDATA}->val( $opts{column} . '_', 'LongName' );
      			$opts{floor} = 0;
      			$opts{formatter} = sub{ $self->_format_data_item( $_[0], $opts{column} . '_' ) };
      		} # end if
      
      		# Doing this leads to broken links, since the  doesn't know if data is there yet
      		#next unless defined $self->{_chart}[0]{$opts{column}};
      		#** Rather, we should warning() that no graph is created for column $opts{column} in this report
      
      		# ... This isn't really a warning, but a notice....
      		# .... Maybe we need a notice handler....
      		wadg::Errors::warning( 'N0003', $opts{filename} );
      		my $graphs = new wadg::rm::Graphs( %opts );
      		$graphs->graph($type);
      
      	} # end if
      
      } # end end_table
      
      
      # ----------------------------------------------------------
      # Sub: wadg::rm::Report::createNavMenu
      #
      # Args: $croParser, $htmlWriter
      #	$croParser	Reference to a croParser object from which to 
      #	          	make the navigation menu
      #	$htmlWRiter	Reference to an htmlWriter object to write the 
      #	          	menu with (style should be set)
      #
      # Description: This CLASS method creates the navigation menu
      # contents and returns it. Any styles should be setup before 
      # calling this function.
      #
      # ** I'd like to make this it's own object to pass to reports
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Nov17 Created a function to encapsulate the process JW
      # 2000May19 Converted to use an HTMLWriter for rendering  JW
      # 08Jan2002 Changed to use table for layout               JW
      # 26Jul2002 Added support for NONE (0) as layout location JW
      # 29Jul2002 Fixed so that blank Bullet_Image is not empty JW
      # 19Aug2002 Changed bullet to use navbullet style         JW
      # 28Oct2002 Removed nbsp after bullet. Cruft.             JW
      # 30Oct2002 Added Top_Logo support                        JW
      # 06Feb2003 Added File_Extension                          JW
      # ----------------------------------------------------------
      sub createNavMenu {
      	my( $croParser, $nw, $config ) = @_;
      	my $fileOut = '';
      	my $NavMenuContent = '';
      
      	#
      	# Get the filenames and a template for the links
      	#
      	my %a;
      	my $href = '<%%%>' . $config->{reports_File_Extension};
      	if( $config->{File_Out} !~ /^LEFT|RIGHT|TOP|BOTTOM|0$/i ) {
      		$a{target} = 'CONTENT';
      		$fileOut = basename( $config->{reports_File_Out} );
      	} # end if
      
      	
      	#
      	# Insert the logo file content, or the default text unless doing TOP or BOTTOM
      	#
      	if( $config->{File_Out} !~ /^TOP|BOTTOM$/i ) {
      		if( defined $config->{Top_Logo} && open( LOGOFILE, $config->{Top_Logo} ) ) {
      			$NavMenuContent = join( '',  );
      			close( LOGOFILE );
      		} else {
      			if( defined $config->{Top_Logo} ) {
      				# If logo is defined and we got here, then we couldn't open
      				# the file, so warn the user, but print the default text
      				wadg::Errors::warning( 'W0007', $config->{Top_Logo} );
      			} # end if
      			$NavMenuContent .= $nw->h4( $LANG->val( 'Text', 'O0012' ) );
      		} # end if
      	} # end if
      	
      
      	#
      	# Setup some variables to start including a template for the nav items
      	#	
      	my $item_template = '';
      	my $imageBall = '';
      	if( $config->{File_Out} =~ /^TOP|BOTTOM$/i ) {
      		$item_template = '[ ' . $nw->span( {class => 'navitem'}, '<%%TITLE%%>' ) . ' ] ';
      	} else {
      		if( defined $config->{Bullet_Image} && $config->{Bullet_Image} ) {
      			$imageBall = $nw->img( {src => $config->{Bullet_Image}, border => 0, alt => '*'} );
      		} # end if
      		$item_template = $nw->tr( 
      			$nw->td( {class => 'navbullet'}, '<%%IMG%%>' ),
      			$nw->td( {class => 'navitem'}, '<%%TITLE%%>' ),
      		);
      	} # end if
      
      	
      	#
      	# Add a layout table so wrapped titles are indented from bullets, unless TOP or BOTTOM
      	#
      	if( $config->{File_Out} !~ /^TOP|BOTTOM$/i ) {
      		$NavMenuContent .= $nw->start_table( {cellpadding => 1, cellspacing => 0, border => 0, summary => 'Layout table' } );
      	} # end if
      
      	#
      	# If single file put in top o' doc and change href template
      	#
      	if( $config->{One_File} != 0 ) {
      		$a{href} = "$fileOut#top";
      		$href = "$fileOut#<%%%>";
      		my $t = $item_template;
      		$t =~ s/<%%IMG%%>/$nw->a( \%a, $imageBall )/e;
      		$t =~ s/<%%TITLE%%>/$nw->a( \%a, $LANG->val( 'Text', 'O0002' ) )/e;
      		$NavMenuContent .= $t;
      	} # end if
      
      	#
      	# Add each report type nav item
      	#
      	while( !$croParser->eof ) {
      		my( $dataref ) = $croParser->nextReport();
      		
      		next if $dataref->[0] eq '';
      		
      		my( $link ) = split /[\012\015]+/, $$CONFIG{$dataref->[0]}{ShortName};
      		$link =~ s/ //g;
      		$a{href} = $href;
      		$a{href} =~ s/<%%%>/$link/g;
      		my $title = $$CONFIG{$dataref->[0]}{LongName};
      
      		if( $title ) {
      			my $t = $item_template;
      			$t =~ s/<%%IMG%%>/$nw->a( \%a, $imageBall )/e;
      			$t =~ s/<%%TITLE%%>/$nw->a( \%a, $title )/e;
      			$NavMenuContent .= $t;
      
      			# Remember to add quick report in just after General Summary, if desired
      			if( ($dataref->[0] eq 'x') && (defined $config->{Summary_Rows}) ) { 
      				( $link ) = split /[\012\015]+/, $$CONFIG{q}{ShortName};
      				$link =~ s/ //g;
      				$a{href} = $href;
      				$a{href} =~ s/<%%%>/$link/g;
      				$title = $$CONFIG{q}{LongName};
      				$t = $item_template;
      				$t =~ s/<%%IMG%%>/$nw->a( \%a, $imageBall )/e;
      				$t =~ s/<%%TITLE%%>/$nw->a( \%a, $title )/e;
      				$NavMenuContent .= $t;
      			} # end if
      		} # end if
      	} # end while
      	
      
      	#
      	# Close table if started
      	#
      	if( $config->{File_Out} !~ /^TOP|BOTTOM$/i ) {
      		$NavMenuContent .= $nw->end_table();
      
      		# Add email address if provided
      		if( $config->{website}{Webmaster} ) {
      			$NavMenuContent .= $nw->br() . $nw->br();
      			$NavMenuContent .= $nw->p( $FORMATTER->formatMessage( $LANG->val( 'Text', 'O0006' ), $config->{website}{Webmaster} ) );
      		} # end if
      	} # end if
      
      	# Reset current line marker
      	$croParser->resetParser();
      	
      	return $NavMenuContent;
      } # end createNavMenu
      
      
      # ----------------------------------------------------------
      # Sub: description
      #
      # Args: (None)
      #
      # Description: Writes out the description for the report at
      # the top of the report section.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Feb24 Modified to read description from rdata file  JW
      # 2000May06 Moved graph img tags to table_end method      JW
      # ----------------------------------------------------------
      sub description {
      	my $self = shift;
      	$self->{writer}->write( $self->{writer}->p( $self->{_CONFIG}{$self->{token}}{Description} ) );
      } # end description
      
      
      
      # ----------------------------------------------------------
      # Sub: wadg::rm::Report::openReportFile [CLASS METHOD]
      #
      # Args: $filename
      #		$filename	A filename to open and write to
      #		$header  	An optional header to put at the top of the file
      #
      # Returns: An HTMLWriter object that will be used to write the 
      # rest of the report content and should be closed with 
      # closeReportFile. Returns undef on error.
      #
      # Description: Opens an output file for a report or reports.
      # Inserts all the appropriate information at the head of the file.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Feb19 Creates to encapsulate report initialization  JW
      # 2000Apr20 Converted to class method                     JW
      # 2000May04 Added suport for header content               JW
      # 2000May29 Converted to HTMLWriter use                   JW
      # ----------------------------------------------------------
      sub openReportFile {
      	my( $fileName, $header, $letter ) = @_;
      	local *reportFile;
      		
      	return undef unless open( reportFile, ">$fileName" );
      	tied(%{$CONFIG})->get_report_styles( $letter );
        	my $rw = new wadg::HTMLWriter( -file => *reportFile,
        	                               -output => $$CONFIG{$letter}{Format}, 
        	                               -stylesheet => $$CONFIG{$letter}{_styles} );
      	
      	# Get character set
      	my $cs = '';
      	if( defined $LANG->val( 'Language', 'CharacterSet' ) ) {
      		$cs = $rw->meta( {'http-equiv' => 'Content-Type', content => 'text/html; charset=' . $LANG->val( 'Language', 'CharacterSet' ) } );
      	} # end if
      
      	# If norobots, then make a tag
      	my	$norobots = '';
      	if( defined $$CONFIG{$letter}{No_Robots} && $$CONFIG{$letter}{No_Robots} != 0 ) {
      		$norobots = $rw->meta( {name => 'ROBOTS', content => 'NOINDEX,NOFOLLOW' } );
      	} # end if
      	
      	# If meta-refresh, then make a tag
      	my $mr = $$CONFIG{$letter}{Meta_Refresh} || '';
      	if( $mr eq '0' ) {
      		$mr = '';
      	} elsif( $mr ne '' ) {
      		$mr = $rw->meta( {'http-equiv' => 'REFRESH', content => $mr } );
      	} # end if
      	
      	# Get title for window and top of file
      	my $title = $$CONFIG{website}{Title};
      
      	# Get stylesheet if defined
      	my $stylesheet = '';
      	if( defined $$CONFIG{$letter}{Stylesheet} ) {
      		if( $$CONFIG{$letter}{Stylesheet} =~ /\w+\s*\{\s*\w+\s*:.*}/ ) {
      			$stylesheet = $rw->style( {type => 'text/css'}, $$CONFIG{$letter}{Stylesheet} );
      		} elsif( $$CONFIG{$letter}{Stylesheet} ) {
      			$stylesheet = $rw->link( { type => 'text/css', href => $$CONFIG{$letter}{Stylesheet}, rel => 'STYLESHEET' } );
      		} # end if
      	} # end if
      
      	$rw->write( $rw->doctype( {-flavor => 'Strict'} ) );		# -flavor is ignored by HTML 3.2
      	$rw->write( $rw->start_html( { lang => $LANG->val( 'Language', 'Symbol' )} ) );
      
      	$rw->write( $rw->head( $cs,
      	                       $rw->meta( {name => 'AUTHOR', content => "This page created by $$CONFIG{_INTERNAL}{'_TITLE'} $$CONFIG{_INTERNAL}{'_VERSION'}"} ),
      	                       $norobots,
      	                       $rw->title( $title ),
      	                       $stylesheet,
      	                     ) );
      
      	$rw->write( $rw->start_body() );
      
      	# Write title at the top of the report page
      	if( defined $title ) {
      		$rw->write( $rw->h1( $title ) );
      	} # end if
      
      	# Insert head from CRO file if any
      	if( defined $header ) {
      		$rw->write( $header . $rw->br() );
      	} # end if
      
      	return $rw;
      	
      } # end openReportFile
      
      # ----------------------------------------------------------
      # Sub: wadg::rm::Report::closeReportFile [CLASS METHOD]
      #
      # Args: $handle
      #		$handle	A handle to an HTMLWriter file for the object
      #		$footer	An optional footer to put at the bottom of the file
      #
      # Description: Finishes writing data to a report file and 
      # closes the file associated with $handle.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Feb19 Created to encapsulate closing of the ouput 
      #           file wether once for single file reports or 
      #           every report for multi-file reports           JW
      # 2000May04 Added suport for footer content               JW
      # 2000May29 Converted to HTMLWriter use                   JW
      # 17Jan2002 Only output time and range when defined       JW
      # 10Mar2003 Fixed so no images written in STDOUT mode     JW
      # ----------------------------------------------------------
      sub closeReportFile {
      	my( $rw, $footer, $letter ) = @_;
      
      	# Output time and range (if values are defined)
      	my( $gt, $dr ) = ('', '');
      	$gt = $FORMATTER->formatMessage( $LANG->val( 'Text', 'O0003' ), $$GLOBALS{GenerationTime} ) 
      		if defined $$GLOBALS{GenerationTime};
      	$dr = $FORMATTER->formatMessage( $LANG->val( 'Text', 'O0004' ), $$GLOBALS{DataStart}, $$GLOBALS{DataEnd} ) 
      		if defined $$GLOBALS{DataStart} && defined $$GLOBALS{DataEnd};
      	if( $dr || $gt ) {
      		$rw->write( $rw->p( {class => 'fineprint'}, $gt, $rw->br(), $dr, ) );
      	} # end if
      	
      	# Insert logo file content or our logos
      	if( ($$CONFIG{website}{Company_Logo} && open( LOGOFILE, $$CONFIG{website}{Company_Logo} )) ||
      		 ($$CONFIG{reports}{File_Out} eq '-')
      		 ) {
      		$rw->write(  );
      		close( LOGOFILE );
      		$rw->write( 
      			$rw->table( {border => '0', cellpadding => '5', cellspacing => '0', width => '95%'},
      				$rw->tr( 
      					$rw->td( 
      						{colspan => 2, align => 'center', class => 'fineprint' }, 
      						$rw->b( $LANG->val( 'Text', 'O0005' ) ),
      						' ',
      						$rw->a( {href => 'http://www.analog.cx/', target => '_top'}, $$GLOBALS{'AnalogVersion'} || 'Analog' ),
      						' / ',
      						$rw->a( {href => 'http://www.reportmagic.org/', target => '_top'}, "$$CONFIG{_INTERNAL}{_TITLE} $$CONFIG{_INTERNAL}{_VERSION}" )
      					),
      				)
      			)
      		);
      	} else {
      		if( defined $$CONFIG{website}{Company_Logo} ) {
      			# If logo is defined and we got here, then we couldn't open
      			# the file, so warn the user, but print the default logos
      			# and remove defintion to warning only happens once.
      			wadg::Errors::warning( 'W0005', $$CONFIG{website}{Company_Logo} );
      			delete $$CONFIG{website}{Company_Logo};
      		} # end if
      		my $imageDir = $$CONFIG{$letter}{Image_Dir} || '';
      		$rw->write( 
      			$rw->table( {border => '0', cellpadding => '5', cellspacing => '0', width => '95%'},
      				$rw->tr( $rw->td( {colspan => 2, align => 'LEFT'}, $rw->b( $LANG->val( 'Text', 'O0005' ) ) ) ),
      				$rw->tr( 
      					$rw->td( {align => 'LEFT'}, 
      						$rw->a( {href => 'http://www.analog.cx/', target => '_top'}, 
      							$rw->img( {src => $imageDir . 'analogo.png', align => 'MIDDLE', alt => 'Analog logfile analyser.', border => 0} ),
      						),
      						' ',
      						$rw->a( {href => 'http://www.analog.cx/', target => '_top'}, ucfirst($$GLOBALS{'AnalogVersion'}  || 'Analog') )
      					),
      					$rw->td( {align => 'LEFT'}, 
      						$rw->a( {href => 'http://www.reportmagic.org/', target => '_top'},
      							$rw->img( {src => $imageDir . 'rmlogo.png', align => 'MIDDLE', alt => 'Report Magic statistics formatting by Wadsack-Allen.', border => 0} ),
      						),
      						' ',
      						$rw->a( {href => 'http://www.reportmagic.org/', target => '_top'}, "$$CONFIG{_INTERNAL}{_TITLE} $$CONFIG{_INTERNAL}{_VERSION}" ),
      					)
      				),
      			)
      		);
      	} # end if
      
      	# -- Output footer, if any
      	if( defined $footer ) {
      		$rw->write( $footer . $rw->br() );
      	} # end if
      
      	$rw->write( $rw->end_body() );
      	$rw->write( $rw->end_html() );
      
      	return close $rw->{file};
      } # end closeReportFile
      
      
      
      
      
      ##########################
      ##                      ##
      ##   Private Methods    ##
      ##                      ##
      ##########################
      
      
      # ----------------------------------------------------------
      # Sub: _format_data_label
      #
      # Args: $data
      #	$data	The data item label to be formatted
      #
      # Description: Formats the data label according to the style 
      # of this report. Subclassed by each report type.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000Apr25 Created method                                JW
      # 09Jan2002 Changed charset conversion only on latin-1    JW
      # ----------------------------------------------------------
      sub _format_data_label {
      	my $self = shift;
      	my( $data ) = @_;
      
      	my $cropChar = $self->{_CONFIG}{$self->{token}}{Truncate} || '';
      	my $elip = $self->{_LANG}->val( 'Symbols', 'ellipsis' );
      	
      	# Apply formatting
      	my $cropLineData = $data;
      	if( ( $cropChar ne '' )  && ( length($data) > $cropChar ) ) {
      		$cropLineData = substr( $data, 0, $cropChar ) . $elip;
      	} # end if
      
      	#
      	# First decode the point, in case it contains encoding.
      	# Then encode the point in case it doesn't
      	# Only do this if the character set it iso-8859-1 though, since 
      	# HTML::Entities only supports that charcter set.
      	# [Thanks to Jonas Smedegaard for the patch]
      	my $charset = $self->{_LANG}->val( 'Language', 'CharacterSet' ) || '';
      	if( $charset eq "iso-8859-1" ) {
      		HTML::Entities::decode($cropLineData);
      		HTML::Entities::encode($cropLineData);
      		# - Do this too. Even though it looks weird, it's the 'proper' way to 
      		#   write CGI links in HTML (SEE RFC 1866)
      		# - Also it helps avoid cross-scripting vulnerabilities
      		HTML::Entities::decode($data);
      		HTML::Entities::encode($data);
      	} # end if
      
      	if( defined $self->{_CONFIG}{$self->{token}}{SmallFont} ) {
      		$cropLineData = $self->{writer}->span( {class => 'smallfont'}, $cropLineData );
      	} # end if
      
      	return $self->__format_data__include_links( $data, $cropLineData );
      
      } # end _format_data_label
      
      
      
      # ----------------------------------------------------------
      # Sub: __format_data__include_links
      #
      # Args: $link_data, $display_data
      #	$link_data	The value to of the data item to link to.
      #	$display_data	The value if the displayed item to be linked
      #
      # Description: This is called by _format_data_label to 
      # make a linked label. Returns a single data item including 
      # the link.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Mar09 Uses a more generic matching for URLs that 
      #           helps keep text output from being linked      JW
      # 2000Apr27 Created method based on previous subs         JW
      #           Added support for list of matches to link     JW
      # 2000Jun16 Added '/' for non-url links                   JW
      # 21Feb2003 Support for Analog Crawler links              JW
      # 20Mar2003 Fixed cross-scripting hole in Crawler links   JW
      # 28Mar2003 Fixed bugs in linkable items detection        JW
      # ----------------------------------------------------------
      sub __format_data__include_links {
      	my $self = shift;
      	my( $link_data, $display_data ) = @_;
      	my $linktype = quotemeta( $self->{_CONFIG}{$self->{token}}{IncludeLinks} || '' );
      
      	# If it doesn't look like a URL link that don't bother linking
      	# This should be quite strict to avoid cross-scripting holes
      	# Actually, not sure that this is all that necessary, as even cross-scripted
      	# stuff will get HTML encoded before being written as a URL. 
      #	unless( $link_data =~ m{^([\w.+\-]+://[\w.-]+)?(/[\w/#~:.?+=&%@\\-]*)$}oi ) {
      	# Disabled. This is not really working and not all that valuable. All it does
      	# is make sure things that don't look like URLs aren't linked. That reduces
      	# the possibility the RM can be leverages for unkown or future protocols with
      	# different link patters. Anyway, the linked item should be responsible for
      	# not opening Cross-scripting or other CGI holes that this was meant to avoid
      	# propogating
      	
      	# If it's a [root directory] entry it should be linked to root
      	# But don't link anything that's a [not listed: #]
      	if( $link_data =~ /^\[.+[^\s\d]\]$/ ) {
      		$link_data = '/';
      	} elsif( $link_data =~ /^\[.+:\s\d+\]$/ ) {
      		return $display_data;
      	} # end if
      
      
      	## Don't use 'if defined' here 'cause after quotemeta, $linktype is always defined!
      	if( $linktype ) {
      		# - Convert wildcards in $linktype to regexp and restore commas
      		$linktype =~ s/\\\,/\,/g;
      		$linktype =~ s/([^\\])\\\*/$1\.\*/g;
      		$linktype =~ s/^\\\*/\.\*/g;
      		$linktype =~ s/([^\\])\\\?/$1\./g;
      		$linktype =~ s/^\\\?/\./g;
      
      		# Check if it matches the IncludeLinks spec.
      		foreach( split( ',', $linktype) ) {
      			if( $link_data =~ /^$_$/ || $link_data =~ /\($_\)$/ ) {
      				my $M = $&;		# Get the part of the data that matched the pattern
      				           		## NOTE: This is an expensive operation. If we can do
      									##       this differently we could speed things up
      	
      				# - Prepend the webiste URL if defined and this is a relative link.
      				my $web_root = '';
      				if( (defined $self->{_CONFIG}{website}{Base_URL}) && ($link_data !~ m#^\w+://#) ) {
      					$web_root = $self->{_CONFIG}{website}{Base_URL};
      				} # end if
      	
      				if( $link_data eq $M || $link_data eq '/' ) {
      					$display_data = $self->{writer}->a( { href => $web_root . $link_data, target => '_top' }, $display_data );
      				} else {
      					# Fix the link to not include the parens
      					$M = substr( $M, 1, length($M) - 2 );
      					# Link only the part that matches
      					$display_data =~ s/\Q$M/$self->{writer}->a( {href => $web_root . $M, target => '_top'}, $M )/e;
      				} # end if
      				
      				# If we found a match, then jump out
      				last;
      			} # end if
      		} # end foreach
      		
      	} # end if
      
      	return $display_data;
      } # end __format_data__include_links
      
      
      
      # ----------------------------------------------------------
      # Sub: _format_data_item
      #
      # Args: $data, $col
      #	$data The data item to be formatted
      #	$col  The column type
      #
      # Description: Formats the data item according to the style 
      # of this report for the graph. Subclassed by each report type.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000Apr25 Created method                                JW
      # 14Jun2001 Added $col and basic Formatting               JW
      # 29Jul2002 Included support for legacy Number and Time   JW
      # 14Aug2002 Stopped double formatting of TimeFormat       JW
      # 26Nov2002 Added support for Show_Bytes_As setting       JW
      # ----------------------------------------------------------
      sub _format_data_item {
      	my $self = shift;
      	my( $data, $col ) = @_;
      	
      	# Get one of the Format specifiers.
      	my $f = $self->{_CDATA}->val( $col, 'TimeFormat' );
      	if( defined $f ) {
      		# Time format has already been applied
      		return $data;
      	} else {
      		$f = $self->{_CDATA}->val( $col, 'Format' );
      		unless( defined $f ) {
      			$f = $self->{_CDATA}->val( $col, 'NumberFormat' );
      			$f = "number:$f" if defined $f;
      		} # end if
      	} # end unless
      	
      	# If there's a format then apply it here
      	if( defined $f ) {
      		my $b = $self->{_CONFIG}{$self->{token}}{Show_Bytes_As};
      		if( ($f eq 'bytes') and defined($b) and $b ) {
      			$data = $self->{_FORMATTER}->format_bytes( $f, $data, $b );
      		} else {
      			$data = $self->{_FORMATTER}->format_value( $f, $data );
      		} # end if
      	} # end if
      	
      	return $data;
      } # end _format_data_item
      
      
      
      # ----------------------------------------------------------
      # Sub: _format_graph_label
      #
      # Args: $data
      #	$data	The data item label to be formatted
      #
      # Description: Formats the data label according to the style 
      # of this report for the graph. Subclassed by each report type.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000Apr25 Created method                                JW
      # ----------------------------------------------------------
      sub _format_graph_label {
      	my $self = shift;
      	my( $data ) = @_;
      
      	# Remove HTML encoding
      	$data =~ s/<[^>]+>//g;
      
      	return $data;
      } # end _format_graph_label
      
      # ----------------------------------------------------------
      # Sub: _write_summary
      #
      # Args: (None)
      #
      # Description: Writes out the summary information for the 
      # report. Subclassed by most report types, this MUST close
      # the table within its processing.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000Apr25 Built from parts in endReport                 JW
      # ----------------------------------------------------------
      sub _write_summary {
      	my $self = shift;
      
      	$self->end_table();
      	$self->{writer}->write( $self->{writer}->p( ' ' ), $self->{writer}->hr() );
      } # end _write_summary
      
      
      # ----------------------------------------------------------
      # Sub: _intialize
      #
      # Args: %parms
      #	%parms	A set of named parameters to configure on init
      #
      # Description: Initializes the function. This is called by 
      # the 'new' contstructor of this and all subclasses
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000APR25 Created method                                JW
      # ----------------------------------------------------------
      sub _initialize {
      	my $self = shift;
      	my( %parms ) = @_;
      
      	# Parse named parameters
      	my($k, $v);
      	local $_;
      	while( ($k, $v) = each %parms ) {
      		$self->{$k} = $v;
      	} # end while 
      
      	# Declare some object variables
      	$self->{_chart} = [];
      	$self->{_summaries} = {};
      	$self->{_shaded_row} = 0;
      
      	return $self;
      } # end _initialize
      
      # ----------------------------------------------------------
      # Sub: _data_row
      #
      # Args: @data
      #	@data	The data to put in the row.
      #
      # Description: Writes out the data in the row of the table
      # for a report. Calls the appropriate formatting methods for
      # table and graph labels and data.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      #           Originally created by Corey Kaye / DNS        CK
      # 2000Apr25 Made a private method of Report Class         JW
      # 2000May04 Converted to _data_row and extracted table, 
      #           and filter components. Moved GeneralSummary 
      #           stuff to that subclass                        JW
      # 31May2001 Changed to handle new * columns in Analog 5   JW
      # ----------------------------------------------------------
      sub _data_row {
      	my $self = shift;
      	my ( @data ) = @_;
      	
      	# Filter column if it startes with '*' (analog 5+) or is only 'f' (analog 3 - 4) 
      	if( ($self->{columns} eq 'f') || (substr($self->{columns}, 0, 1) eq '*') ) {
      		$self->__filter_row( $self->{columns}, \@data );
      	} else {
      		my @columns = split( / */, $self->{columns} );
      		$self->__table_row( $self->{_shaded_row}, \@columns, \@data );
      	} # end if
      
      } # end _data_row
      
      # ----------------------------------------------------------
      # Sub: __table_row
      #
      # Args: $row_color, $colref, $dataref
      #	$row_color	The color (if any) to use for the row
      #	$colref  	Reference to the list of column specs
      #	$dataref 	Reference to the list of data to write to the row
      #
      # Description: Outputs data items into a table row.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000May04 Created from sources in _data_row             JW
      # 2000Nov28 Added support for Graph_Level setting         JW
      # 29Jul2002 Simplified number formatting code             JW
      # 10Mar2003 [not listed] now included in pie charts       JW
      # ----------------------------------------------------------
      sub __table_row {
      	my $self = shift;
      	my( $row_color, $colref, $dataref ) = @_;
      	my( @columns ) = @{$colref};
      	my( @data ) = @{$dataref};
      	my %chartData;
      	
      	$row_color = 'alt' . ($row_color + 1);
      	
      	$self->{writer}->write( $self->{writer}->start_tr() );
      
      	# Get index number for line
      	my $num = @{$self->{_chart}} + 1;
      
      	my $N_index = -1;
      	my $l_index = -1;
      	my $i;
      	# ** Note that this only allows for a single index or level column in a row.
      	#    and this gets the LAST one. [ JW]
      	for( $i = 0; $i < @columns; $i++ ) {
      		$N_index = $i if lc($self->{_CDATA}->val( $columns[$i], 'Type' )) eq 'index';
      		$l_index = $i if lc($self->{_CDATA}->val( $columns[$i], 'Type' )) eq 'level';
      	} # end for
      	
      	# If line contains an index column use that number and remove the column
      	if( $N_index > -1 ) {
      		$num = splice @data, $N_index + 1, 1;
      		splice @columns, $N_index, 1;
      	} # end if
      
      	# If the line contains a level column and level != Graph_Level, then don't number
      	if( ($l_index > -1) && ($data[$l_index + 1] ne $self->{_CONFIG}{$self->{token}}{Graph_Level}) ) {
      		$num = '';
      	} # end if
      
      	# Don't number/chart 'not listed: ###' rows
      	# Except we need to include [not listed] in the pie chart!
      	my $graph_not_listed = 0;
      	if( $data[0] =~ /^\[.+: \d+\]$/ ) {
      		$num = '';
      		$graph_not_listed = 1 if $self->{_CONFIG}{$self->{token}}{GraphType} =~ /pie/i;
      	} # end if
      	
      	# Print line index, if there is one
      	if( $num eq '' ) {
      		$self->{writer}->write( $self->{writer}->td( {class => $row_color}, ' ' ) );
      	} else {
      		$self->{writer}->write( $self->{writer}->td( {class => $row_color}, "$num." ) );
      	} # end if
      
      	#
      	# Now, iterate through data set and output rows.
      	#
      	$i = 0;
      	foreach (@data) {
      		my $c = 	$columns[$i - 1];
      		$c .= '_' if $c eq uc($c);
      
      		# Skip undefined data, level columns, and unknown columns
      		next unless defined;
      		
      		if( $i ) {
      			my $t = $self->{_CDATA}->val( $c, 'Type' ) || '';
      			my $l = $self->{_CDATA}->val( $c, 'LongName' ) || '';
      		   if( (lc($t) eq 'level') || ($l eq '') ) {
      				$i++;
      				next;
      			} # end if
      		} # end if
      
      		#
      		# Store data table for chart
      		# Do this before value is formatted for output
      		# Don't plot any non-numbered rows (num eq '') (unless it's 'not listed' and the chart is a pie chart!)
      		# Remove HTML before sending to chart
      		#
      		if( ($num ne '') || $graph_not_listed ) {
      			if( $i == 0 ) {
      				$chartData{'name'} = $self->_format_graph_label( $_ );
      				$chartData{'number'} = $num || '-';		# '-' to support [not listed] in pie charts
      			} else {
      				$chartData{$columns[$i - 1]} =  $_;
      			} # end if
      		} # end if
      		
      		#
      		# Print line data
      		#
      		my %td = (class => $row_color, align => 'left');
      
      		# If the data looks like a number then align right.
      		# Don't format IP numbers though and don't right-align anything in column 0
      		if( ($i > 0) && (/^[\d\.]+$/) && !(/\d+\.\d+\./) ) {
      			$td{align} = 'right';
      		} # end if
      		
      		# - If no value insert a  , otherwise format appropriately
      		if( $_ eq '' ) {
      			$_ = ' ';
      		} elsif( $i == 0 ) {
      			$_ = $self->_format_data_label( $_ );
      		} else {
      			$_ = $self->_format_data_item( $_, $c );
      		} # end if 
      
      		$self->{writer}->write( $self->{writer}->td( \%td, $_ ) );
      		$i++;
      	} # end foreach
      
      	if( defined $chartData{name} ) {
      		push @{$self->{_chart}}, \%chartData;
      	} # end if
      	
      	$self->{writer}->write( $self->{writer}->end_tr() );
      
      } # end __table_row
      
      # ----------------------------------------------------------
      # Sub: __summary_row
      #
      # Args: $row_color, $colref, $dataref
      #	$colref  	Reference to the list of column specs
      #	$dataref 	Reference to the list of data to write to the row
      #
      # Description: Outputs summary items into a table row.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000May04 Created from sources in _data_row             JW
      # 20Dec2001 Fixed bug where summary label was formatted   JW
      # 29Jul2002 Simplified number formatting code             JW
      # ----------------------------------------------------------
      sub __summary_row {
      	my $self = shift;
      	my( @columns ) = @{shift()};
      	my( @data ) = @{shift()};
      
      	$self->{writer}->write( $self->{writer}->start_tr() );
      
      	# Print an empty cell for the index number column
      	$self->{writer}->write( $self->{writer}->th( {class => 'total'}, ' ' ) );
      
      	#
      	# Now, iterate through data set and output rows.
      	#
      	my $i = 0;
      	foreach (@data) {
      		# Skip undefined data, index, level and unknown columns
      		next unless defined;
      
      		my $c = 	$columns[$i - 1];
      		$c .= '_' if $c eq uc($c);
      
      		if( $i && (
      		    (lc($self->{_CDATA}->val( $c, 'Type' )) eq 'level') ||
      		    ($self->{_CDATA}->val( $c, 'LongName' ) eq '')
      		  )) {
      			$i++;
      			next;
      		} # end if
      
      		#
      		# Print line data
      		#
      		my %th = (class => 'total', align => 'left');
      
      		# If the data looks like a number then align right.
      		# Don't format IP numbers though and don't right-align anything in column 0
      		if( ($i > 0) && (/^[\d\.]+$/) && !(/\d+\.\d+\./) ) {
      			$th{align} = 'right';
      		} # end if
      		
      		# - If no value insert a  , otherwise format appropriately
      		#   (Don't format the summary data labels, though!)
      		if( $_ eq '' ) {
      			$_ = ' ';
      		} elsif( $i ) {
      			$_ = $self->_format_data_item( $_, $c );
      		} # end if 
      
      		$self->{writer}->write( $self->{writer}->th( \%th, $_ ) );
      		$i++;
      	} # end foreach
      
      	$self->{writer}->write( $self->{writer}->end_tr() );
      
      } # end __summary_row
      
      
      # ----------------------------------------------------------
      # Sub: __filter_row
      #
      # Args: $dataref
      #	$column	The column spec for the filter row
      #	$dataref	A reference to the filter data to write
      #
      # Description: Writes out filter rows to the report
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000May04 Created from _data_row sources                JW
      # 31May2001 Added new filter row types BT, FR, LR         JW
      # 10Mar2003 Fixed bug with BT row killing summaries       JW
      # ----------------------------------------------------------
      sub __filter_row {
      	my $self = shift;
      	my( $column, $dataref ) = @_;
      
      	# Process each type of column separately
      	if( ($column eq 'f') || ($column eq '*f') ){
      		$column = 'f';
      		# Process the floor/sort through the the regular expressions
      		# Iterate over each column of data (first one in null)
      		my @out;
      		shift @$dataref if $dataref->[0] eq '';
      		
      		# This is now fairly hard-coded. If there's no Active_Column defined, then 
      		# set it based on the sort order of this report
      		unless( defined $self->{_CONFIG}{$self->{token}}{Active_Column} ) {
      			$self->{_CONFIG}{$self->{token}}{Active_Column} = $dataref->[1];
      			$self->{_CONFIG}{$self->{token}}{Active_Column} .= '_' if $self->{_CONFIG}{$self->{token}}{Active_Column} eq uc($self->{_CONFIG}{$self->{token}}{Active_Column});
      		} # end if
      		
      		
      		my $w = 0;
      		foreach( @$dataref ) {
      			$w++;
      			my $level = 1;
      			my $match = $self->{_CDATA}->val( $column, "Col$w" . "_Match$level" ) || '';
      			my @results;
      			$out[$w - 1] = $self->{_CDATA}->val( $column, "Col$w" . "_LongName$level" ) ||'';
      		
      			# - Find out which re it matches 
      			while( !( @results = /$match/ ) ) {
      				if( $match eq '' ) {
      					# There is no match so just output data
      					$out[$w - 1] = $_;
      					$level = 0;
      					last;
      				} # end if
      				$level++;
      				$match = $self->{_CDATA}->val( $column, "Col$w" . "_Match$level" ) || '';
      				$out[$w - 1] = $self->{_CDATA}->val( $column, "Col$w" . "_LongName$level" ) || '';
      			} # end while
      		
      			if( $level > 0 ) {
      				# If there's a match, start replacing results text
      				my $r;
      				for $r ( 0 .. @results ) {
      					my $rl = "Col$w" . '_Result' . $level . '_' . ($r + 1);
      					my $ri = $results[$r];
      					next unless defined $ri;
      					# Go through the results replacement items only if they exist
      					if( defined $self->{_CDATA}->val($column, $rl) ) {
      						foreach ($self->{_CDATA}->val($column, $rl)) {
      							my $t = $_;
      							next unless defined $t;
      							if( $ri eq '' ) {
      								if( ($t) = /^\t(.*)$/ ) {
      									$results[$r] = $t;
      									last;
      								} # end if
      							} elsif( ($t) = /^[^\t]*$ri[^\t]*\t(.*)$/ ) {
      								$results[$r] = $t;
      								last;
      							} # end if
      						} # end foreach	
      					} # end if
      					# Now put replaced texts into output string
      					$ri = $results[$r];
      					my $rn = $r + 1;
      					$out[$w -1] =~ s/\%$rn/$ri/g;
      				} # end for -- $r
      			} # end if
      		} # end foreach
      		
      		# Now write output string
      		$self->{writer}->write( $self->{writer}->p( {-class => 'smallfont'}, join( ' ', @out ) ) );
      	} elsif( $column eq '*BT' ){
      		# Put this into the summary section
      		my( $dType ) = split /[\012\015]+/, $self->{_CONFIG}{$self->{token}}{ShortName};
      		my $c = shift @$dataref;
      		my $d = shift @$dataref;
      		# Now insert the value from Analog
      		$self->{_summaries}{$dType}{max}{BT} = 1;
      		$self->{_summaries}{$dType}{max}{name} = $self->_format_data_label( $self->{_FORMATTER}->getDateString( @$dataref ) );
      		$self->{_summaries}{$dType}{max}{$c} = $d;
      	} elsif( $column eq '*FR' ){
      		$self->{REPORTSPAN} = 1;
      		$$GLOBALS{DataStart} = $dataref->[0];
      	} elsif( $column eq '*LR' ){
      		$self->{REPORTSPAN} = 1;
      		$$GLOBALS{DataEnd} = $dataref->[0];
      	} # end if
      } # end __filter_row
      
      
      # ----------------------------------------------------------
      # Sub: _summarize
      #
      # Args: $point, @lineData
      #	$point	The label for the current data set
      #	@lineData	The data set
      #
      # Description: Builds the summary hashes for the data based 
      # on the Active_Column.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      #           Created sometime in early 2000                JW
      # 2000APR25 Made a private method of the Report class     JW
      # 2000May06 Added total and count summaries               JW
      # 05Jun2001 Added workaround for Analog's *BT column      JW
      # 08Jan2002 Fixed bug where * columns were summarized     JW
      # ----------------------------------------------------------
      sub _summarize {
      	my $self = shift;
      	my( $point, @lineData ) = @_;
      
      	my( $dType ) = split /[\012\015]+/, $self->{_CONFIG}{$self->{token}}{ShortName};
      	my $active_col = substr($self->{_CONFIG}{$self->{token}}{Active_Column}, 0, 1);
      	my $active_value = $lineData[index( $self->{columns}, $active_col )] || '';
      	
      	# Don't summarize this row if it's a [not listed: xxx] row, not numeric or a meta-row
      	if( $point !~ /^\[.+: \d+\]$/ && $active_value =~ /^\d+$/ && ($self->{columns} ne 'f') && (substr($self->{columns}, 0, 1) ne '*')) {
      		# If this is bigger than the max then store as the max (unless Analog gave it to us)
      		if( !defined($self->{_summaries}{$dType}{max}{BT}) &&
      		    ( !defined($self->{_summaries}{$dType}{max}{$active_col}) ||
      		      $self->{_summaries}{$dType}{max}{$active_col} < $active_value 
      			 ) 
      		  ) {
      			$self->{_summaries}{$dType}{max}{name} = $self->_format_data_label( $point );
      			wadg::rm::CROParser::splitColumns( $self->{columns}, \%{$self->{_summaries}{$dType}{max}}, @lineData );
      		} # end if
      		# Store the total and count of values
      		$self->{_summaries}{$dType}{count}++;
      		my $i;
      		for( $i = 0; $i < @lineData; $i++ ) {
      			if(defined($lineData[$i]) && $lineData[$i] =~ /^\d+$/ ) {
      				$self->{_summaries}{$dType}{total}{substr($self->{columns}, $i, 1)} += $lineData[$i];
      			} # end if
      		} # end for
      	} # end if
      
      } # end _summarize
      
      
      
      # ----------------------------------------------------------
      # Sub: _format_data_columns
      #
      # Args: @data
      #	@data   	The data to 
      #
      # Description: Separates column data from datapoint name
      # If datapoint is more than one field then uses getDateString 
      # to make a date and puts it on the end. The returned array 
      # is all the data columns plus one column for the datapoint name.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 1999Feb26 Created function                              JW
      # 2000Mar21 Renamed to formatDataColumns                  JW
      # 2000Apr25 Converted to private method of Report class   JW
      # 31May2001 Special consideration for '*' columns         JW
      # ----------------------------------------------------------
      sub _format_data_columns {
      	my $self = shift;
      	my( @dataCols ) = @_;
      	my( $pointName, @pointCols );
      	my( $l, $j ) = (0, 0);
      	my @dCols = ();
      	my @rList = ();
      	my @columns = split( / */, $self->{columns} );
      	
      	# Handle '*' columns specially
      	my @saved = ();
      	if( $columns[0] eq '*' ) {
      		@columns = ( $self->{columns} );
      		if( $columns[0] eq '*f' ) {
      			$columns[0] = 'f';
      		} # end if
      		@saved = splice( @dataCols, 0, $self->{_CDATA}->val( $columns[0], 'Saved' ) ) if defined $self->{_CDATA}->val( $columns[0], 'Saved' );
      	} # end if;
      	
      	#
      	# Iterate through column specs and concatenate any date format columns
      	#
      	my $extra = @dataCols;
      	foreach ( @columns ) {
      		$_ .= '_' if $_ eq uc && substr($_,0,1) ne '*';
      		
      		$l = $self->{_CDATA}->val( $_, 'Width' );
      
      		if( defined $l && $l > 1 ) {
      			# -- Sometimes, "wide" columns can be less than their defined width 
      			#    (e.g. D, when the date undefined in Analog <= 4.1) so we need 
      			#    to limit the actual width. However, filter columns use the full 
      			#    width of the row, so set the width to at most the width of the 
      			#    data minus one only if it over runs the width of the row. 
      			if( $l > @dataCols - $j ) {
      				$l = @dataCols - $j - 1;
      				$l++ if $self->{_CDATA}->val( $_, 'Type' ) eq 'Filter';
      			} # end if
      
      			# -- Pull out all the columns for the 'wide' column
      			$extra -= $l;
      			@pointCols = splice( @dataCols, $j, $l );
      			# -- Now format those columns into a single value into @dCols
      			my $fmt = $self->{_CDATA}->val( $_, 'TimeFormat' ) || '';
      			if( $fmt ne '' ) {
      				# Handle unparsable dates by a '--' mark, otherwise format them
      				if( grep( /\D/, @pointCols ) || (grep {!defined} @pointCols) ) {
      					push( @dCols, '--' );
      				} else {
      					$pointName = $self->{_FORMATTER}->getDateString( @pointCols );
      					# For anything formatted on the column level do it here
      					if( $fmt ne 'report' ) {
      						$pointName = $self->{_FORMATTER}->formatDate( $fmt, $pointName );
      					} # end if
      					push( @dCols, $pointName );
      				} # end if
      			} else {
      				push( @dCols, @pointCols );
      			} # end if
      		} else {
      			$extra--;
      			push( @dCols, $dataCols[$j] );
      			$j++;
      		} # end if
      	} # end for each
      
      	if( $extra > 0 ) {
      		undef( @pointCols );
      		while( $extra ) {
      			$pointName = pop( @dataCols );
      			@pointCols = ($pointName, @pointCols );
      			$extra--;
      		} # end while
      		$pointName = $self->{_FORMATTER}->getDateString( @pointCols );
      		unshift @dCols, $pointName;
      	} elsif( substr($columns[0],0,1) ne '*') {
      		#
      		# The problem here, of course, is that the reports really expect
      		# there to be an extra of 1, so we need to fake it by inserting 
      		# a blank $point before the data. This is because, the split 
      		# function (in &splitline) doesn't read a non-value after a 
      		# trailing separator. Is this a bug in the split implementation?
      		# I kind of think so. [JW]
      		#
      		unshift @dCols, '';
      	} # end if
      	unshift @dCols, @saved;
      	
      	return @dCols;
      } # end _format_data_columns
      
      # ----------------------------------------------------------
      # Sub: _get_graph_filenames
      #
      # Args: (None)
      #
      # Description: Returns a list of filenames for the defined
      # graphs for the current report. This is called at the IMG
      # tag insertion point and graph file creation point so that
      # the filenames are guaranteed to coincide. Returns undef
      # if no graph data exists for the currently defined graphs 
      # and the Active_Column.
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000May07 Created to encapsulate filename generation    JW
      # 27Feb2003 Return () when sending to stdout w/o Path_To  JW
      # ----------------------------------------------------------
      sub _get_graph_filenames {
      	my $self = shift;
      	my @names;
      	my $type;
      	my $format = $self->{_CONFIG}{graphs}{Format} || 'png';
      
      
      	##
      	## We aren't going to go this right now. We'll just
      	## doc that the CGI interface is not transaction-safe
      	## Anyway, MD5(time.rand) is the way to make this unique!
      	##
      	
      	# Get the session code 
      	#   -- local time and PID should be enough, but add a random number 
      	#      for extra transactability. Results is 32-byte key capable of
      	#      3.4e+38 simultaneous sessions!
      	# if( ($self->{_CONFIG}{reports}{File_Out} eq '-') && (!defined $self->{Session_ID}) ) {
      		# 
      		# #
      		# # ******* SECURITY ISSUE *******
      		# # Using the PID as part of the session Id can be a security breach. Better
      		# # To just use random data
      		# #
      		# 
      		# # Now, pack it and shuffle it to mess it up a bit.
      		# my @chrs = split( //, pack( 'h', int( rand( 1000000.99999 ) ), ARRAY(localtime), $$ ) );
      		# splice( @chrs, 32 );
      		# for( 0 .. (length($self->{Session_ID}) - 1) ) {
      			# my $t = $chrs[$_];
      			# my $r = rand( @chrs );
      			# $chrs[$_] = $chrs[$r];
      			# $chrs[$r] = $chrs[$t];
      		# } # end for
      		# $self->{Session_ID} = join( '', @chrs );
      	# } # end if
      
      	
      	#
      	# When output is STDOUT, return an empty list (i.e. no graphs)
      	# unless Path_To is set. Otherwise we have no place to write them
      	#
      	return () if ($self->{_CONFIG}{reports}{File_Out} eq '-') && !exists $self->{_CONFIG}{graphs}{Path_To};
      
      	
      	#
      	# Get a basename -- use the first report-name listed in configs
      	#
      	my( $filename ) = split /[\012\015]+/, $self->{_CONFIG}{$self->{token}}{ShortName};
      
      	
      	#
      	# Run through each defined type
      	#
      	my $ac = substr( $self->{_CONFIG}{$self->{token}}{Active_Column}, 0, 1 );
      	foreach $type ( split( ',', $self->{_CONFIG}{$self->{token}}{GraphType} || '' ) ) {
      		$type =~ s/^\s+//;
      		$type =~ s/\s+$//;
      		if( ($type =~ /pie/i && index( $self->{columns}, lc($ac) ) > -1) ||
      		    ($type !~ /pie/i && index( $self->{columns}, uc($ac) ) > -1) ) {
      			push( @names, $filename . '_' . lc($type) . '.' . lc($format) );
      		} # end if
      	} # end foreach
      
      	return @names;
      	
      } # end _get_graph_filenames
      
      
      # module clean-up code here (global destructor)
      END { }
      
      1;  # so the require or use succeeds
      rmagic-2.21/wadg/rm/Settings.pm0100644000175000010010000012653007642525574015405 0ustar  kilroyNone############################################################
      #
      # Module: wadg::rm::Settings
      #
      # Created: 20.March.2000 by Jeremy Wadsack for Wadsack-Allen Digital Group
      # Copyright (C) 1999,2002 Wadsack-Allen. All rights reserved.
      # Based on subs from Report Magic (19.Feb.1999-20.Mar.2000)
      #
      # This package is free software; you can redistribute it and/or
      # modify it under the same terms as Perl itself.
      ############################################################
      # Date        Modification                            Author
      # ----------------------------------------------------------
      # 16Feb1999 Created by Corey Kaye / DNS                   CK
      # 26May2000 Converted to a Config::IniFiles subclass      JW
      # 26May2000 Removed all file processing, now only allows
      #           ini style configuration files.                JW
      # 14Jun2000 Converted data structure mods to method calls JW
      ############################################################
      package wadg::rm::Settings;
      use strict;
      
      BEGIN {
      	use vars       qw($VERSION @ISA);
      
      	$VERSION = do { my @r = (q$Revision: 2.20 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; # must be all one line, for MakeMaker
      
      	@ISA         = qw( Config::IniFiles );
      } # end BEGIN
      
      # non-exported package globals go here
      # These two package globals are used to store the
      # known settings and report names from the list 
      # at the end of the package
      use vars      qw( %KNOWN_SETTINGS @KNOWN_REPORTS %KNOWN_REPORTS );
      
      use Config::IniFiles;
      use File::Basename;
      use wadg::Errors;
      
      ##########################
      ##                      ##
      ##   TIEHASH Methods    ##
      ##                      ##
      ##########################
      # ----------------------------------------------------------
      # Sub: TIEHASH
      #
      # Args: {named parameter list}
      #  -argv 	A list of command-line options to parse as settings
      #  -preset 	A list of pre-set options to include in settings
      #	-version A message printed out for the --version command
      #  -	Any valid Config::IniFiles parameters
      #
      # Description: Contructs an object tied to the hash 
      #              with a tie call. The -argv list is parsed for 
      #              settings file names and overrides =~ -.*
      # ----------------------------------------------------------
      # Date      Modification                              Author
      # ----------------------------------------------------------
      # 2000Mar21 Created the function                          JW
      # 2000Jun14 Fixed include file processing                 JW
      # 29Jul2002 Fixed -default issue with -import using existsJW
      # 05Dec2002 Looks in script dir for config file last      JW
      # 27Feb2003 Added CGI mode parameter processing           JW
      # 09Mar2003 Added -preset because -arg is ignored in CGI  JW
      # ----------------------------------------------------------
      sub TIEHASH {
      	my $class = shift;
      	my %parms = @_;
      	
      	# Save version value
      	# -- This is distinct from {_INTERNAL}{_VERSION} which is just a number. 
      	#    This is the message to print for the -v command-line option
      	my $version = delete $parms{-version};
      	
      	# Get filename from command line
      	my @args = ();
      	@args = @{$parms{-argv}} if defined $parms{-argv};
      	delete $parms{-argv};
      	my @filenames = grep /^[^-]/, @args;
      
      	# Get the preset options here to add later
      	my %preset = ();
      	%preset = %{$parms{-preset}} if exists $parms{-preset};
      	delete $parms{-preset};
      
      	# If no filenames then look in cwd, then in installed dir
      	unless( @filenames ) {
      		my $base;
      		( $base, undef , undef ) = fileparse( $0, '\..*' );
      		
      		# Start in current directory
      		my $dir = File::Spec->curdir;
      		if( opendir( DIR, $dir ) ) {
      			push @filenames, map {File::Spec->catfile( $dir, $_ )} grep { /^$base\..+/i && -f File::Spec->catfile( $dir, $_ ) } readdir(DIR);
      			closedir DIR;
      		} # end if
      		
      		# Then look in script directory
      		if( defined $FindBin::RealBin ) {
      			$dir = $FindBin::RealBin;
      			if( opendir( DIR, $dir ) ) {
      				push @filenames, map {File::Spec->catfile( $dir, $_ )} grep { /^$base\..+/i && -f File::Spec->catfile( $dir, $_ ) } readdir(DIR);
      				closedir DIR;
      			} # end if
      		} # end if
      	} # end unless
      
      
      	# But don't match the script / executable name!
      	my $progname = fileparse( $0 );
      	@filenames = sort( grep !/^$progname$/i, @filenames );
      
      	# Create a new object, passing settings, and bless into our class
      	# try each filename in the list until one of them comes up valid
      	my $self = undef;
      	while( @filenames ) {
      		$parms{-file} = shift @filenames;
      		my %hash;
      		tie %hash, 'Config::IniFiles', ( %parms ) ;
      		$self = tied(%hash);
      		last if defined $self;
      	} # end if
      	return undef unless defined $self;
      	return undef unless $self->Sections;
      
      	bless( $self, $class );
      	$self->{FILENAME} = $parms{-file};
      
      	#----------------------------------------
      	# Insert values that are defined in pre-set
      	#----------------------------------------
      	foreach( keys %preset ) {
      		my $p;
      		foreach $p (keys %{$preset{$_}} ) {
      			$self->{v}{$_}{$p} = $preset{$_}{$p};
      		} # end foreach
      	} # end foreach
      	
      	
      
      	#----------------------------------------
      	# Recurse the settings through Include
      	#----------------------------------------
      	if( exists $self->{v}{statistics}{Include} ) {
      		# Get the file name(s) to include
      		my @files = ($self->{v}{statistics}{Include});
      		@files = @{$files[0]} if ref($files[0]) eq 'ARRAY';
      		# Now undef the Include setting so it can be set in the next file
      		delete $self->{v}{statistics}{Include};
      		
      		# Then include the file, or files
      		foreach( @files ) {
      			$parms{-file} = $_;
      			$self->_include_file( %parms );
      			
      			# Push any included files onto the file list and undef for next round
      			if( exists $self->{v}{statistics}{Include} ) {
      				my @f = ($self->{v}{statistics}{Include});
      				@f = @{$f[0]} if ref($f[0]) eq 'ARRAY';
      				push @files, @f;
      				delete $self->{v}{statistics}{Include};
      			} # end if
      		} # end foreach
      	} # end if
      	
      	
      	
      	#----------------------------------------
      	# If in CGI mode, then load from GET/POST
      	#----------------------------------------
      	if( exists $self->{v}{_INTERNAL}{_CGI} ) {
      		# See note in rmagic.pl about redundancy. This is here to be self-contained
      		require CGI;
      
      		# Set this up to start
      		$self->{v}{CGI}{Analog_Config} = [];
      		
      
      		#
      		# Make lists to hold forbidden/allowed commands
      		# Use hashes for lookup speed. Also normalize settings names here
      		#
      		my %forbidden = ();
      		my %allowed = ();
      		foreach( split /\s*,\s*/, $self->{v}{CGI}{Allowed} ) {
      			s/[- ]/_/;		# Normalize
      			$allowed{$_} = 1;
      		} # end foreach
      		my $has_allowed = keys %allowed;
      		foreach( split /\s*,\s*/, $self->{v}{CGI}{Forbidden} ) {
      			s/[- ]/_/;		# Normalize
      			$forbidden{$_} = 1;
      		} # end foreach
      		
      		# Default value if none provided.
      		# NOTE: The entire CGI section is excluded below, whatever %forbidden is set to
      		unless( $has_allowed || keys %forbidden ) {
      			%forbidden = map {$_ => 1} qw[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];
      		} # end  unless
      		
      
      		#
      		# Do the same for Analog commands
      		#
      		my %A_forbidden = ();
      		my %A_allowed = ();
      		foreach( split /\s*,\s*/, $self->{v}{CGI}{Analog_Allowed} ) {
      			s/[- ]/_/;		# Normalize
      			$A_allowed{$_} = 1;
      		} # end foreach
      		my $has_A_allowed = keys %A_allowed;
      		foreach( split /\s*,\s*/, $self->{v}{CGI}{Analog_Forbidden} ) {
      			s/[- ]/_/;		# Normalize
      			$A_forbidden{$_} = 1;
      		} # end foreach
      
      		# Default value if none provided.
      		# This is based on anlgform.pl 5.24
      		unless( $has_A_allowed || keys %A_forbidden ) {
      			%A_forbidden = map {$_ => 1} qw[LOGFORMAT APACHELOGFORMAT DEFAULTLOGFORMAT APACHEDEFAULTLOGFORMAT HEADERFILE FOOTERFILE UNCOMPRESS OUTFILE CACHEOUTFILE LOCALCHARTDIR ERRFILE DNS CGI SETTINGS PROGRESSFREQ LANGFILE DESCFILE];
      		} # end  unless
      		
      
      		# Parse each of the options as a Report Magic or Analog setting
      		my $query = new CGI();
      		my @params = $query->param();
      		foreach( @params ) {
      			#
      			# Something like 'statistics-=' is an RM setting
      			# Supports '-', '_' or ' ' to separate section from parameter names
      			#
      			if( /^([^_-]+)[ _-](.+)$/ ) {
      				my $name  = $1;
      				my $name2 = $2;
      				my $val   = $query->param($_);
      				   $val   = 1 if $val eq '';		# CGI 2.63 and later use '' for unvalued params
      				
      				# Like command-line, support '-' or '_' in parameter names
      				$name2 =~ s/-/_/g;
      				
      				# SECURITY: Do not allow these settings from the CGI variables!
      				next if $name eq 'CGI';
      				
      				# Check Allowed/Forbidden lists
      				next if exists $forbidden{"${name}_$name2"}; 
      				next if $has_allowed && !exists $allowed{"${name}_$name2"};
      				
      				# Store the new setting, overriding anything already set
      				$self->{v}{$name}{$name2} = $val;
      			} 
      			#
      			# Anything we don't know, pass to the Analog CGI process to deal with
      			#
      			else {
      				
      				# Check if the commands are forbidden
      				next if exists $A_forbidden{$_};
      				next if $has_A_allowed && !exists $A_allowed{$_};
      				if( /FLOORA$/ or /1$/ ) {
      					my $t = chop;
      					next if exists $A_forbidden{$t};
      					next if $has_A_allowed && !exists $A_allowed{$t};
      				} # end if
      				
      				# Only get the value for those that are not handled otherwise
      				my $k = uc($_);
      				push @{$self->{v}{CGI}{Analog_Config}}, $self->_analog_printargs( $query, $k )
      					unless($k eq 'QV' || $k eq 'CG' || $k eq 'CM' || $k =~ /FLOORB$/ ||
      					       $k =~ /2$/ || $k =~ '^LOGTIMEOFFSET' || $k =~ '^WARNINGS' ||
      							 # commands dealt with elsewhere
      							 $k =~ /[^A-Z12]/ || $k eq '' || $k =~ /^IGNORE/);
      							 # other stuff not wanted
      				
      			} # end if
      			
      		} # end foreach
      
      		#
      		# Add first Analog command to the top of the list
      		#		
      		if( !exists($A_forbidden{LOGTIMEOFFSET}) && (!$has_A_allowed || exists $A_allowed{LOGTIMEOFFSET}) ) {
      			unshift @{$self->{v}{CGI}{Analog_Config}}, $self->_analog_printargs($query, 'LOGTIMEOFFSET');
      		} # end if
      		if( !exists($A_forbidden{WARNINGS}) && (!$has_A_allowed || exists $A_allowed{WARNINGS}) ) {
      			unshift @{$self->{v}{CGI}{Analog_Config}}, $self->_analog_printargs($query, 'WARNINGS');
      		} # end if
      		unshift @{$self->{v}{CGI}{Analog_Config}}, "WARNINGS FL";
      		unshift @{$self->{v}{CGI}{Analog_Config}}, "DNS NONE";
      		unshift @{$self->{v}{CGI}{Analog_Config}}, "CGI ON";
      		if( !exists($A_forbidden{CG}) && (!$has_A_allowed || exists $A_allowed{CG}) ) {
      			unshift @{$self->{v}{CGI}{Analog_Config}}, $self->_analog_printargs($query, 'CG', 'CONFIGFILE');
      		} # end if
      
      
      		#
      		# Add the final Analog commands that must be listed last
      		#
      		push @{$self->{v}{CGI}{Analog_Config}}, "DEBUG -C";
      		if( !exists($A_forbidden{CM}) && (!$has_A_allowed || exists $A_allowed{CM}) ) {
      			push @{$self->{v}{CGI}{Analog_Config}}, $self->_analog_printargs($query, 'CM', 'CONFIGFILE');
      		} # end if
      		push @{$self->{v}{CGI}{Analog_Config}}, "OUTFILE stdout";
      		push @{$self->{v}{CGI}{Analog_Config}}, "OUTPUT COMPUTER";
      		push @{$self->{v}{CGI}{Analog_Config}}, "COMPSEP \t";		# Force this just to know we don't use ':'
      
      
      		#
      		# Now set the required values for certain RM commands
      		#
      		delete $self->{v}{navigation}{File_Out} unless $self->{v}{navigation}{File_Out} =~ /^(LEFT|TOP|RIGHT|BOTTOM|NONE)$/i;
      		delete $self->{v}{statistics}{Frame_File_Out};
      		delete $self->{v}{statistics}{File_In};
      		$self->{v}{reports}{File_Out} = '-';
      		$self->{v}{statistics}{Always_Quit} = '1';				# So the screen isn't filled with consoles
      		$self->{v}{statistics}{Verbose} =~ s/[^WEwe]//g; 		# So the error log isn't filled up
      		$self->{v}{statistics}{Language} =~ s/[^A-Za-z_-]//g;	# Only safe chars in language path!
      		delete $self->{v}{reports}{File_Extension};
      		
      		#
      		# Analog must be set in config file.
      		# NOTE: Don't try to auto-find, that could run something COMPLETELY unexpected!
      		#
      		unless( exists $self->{v}{CGI}{Analog} && -x $self->{v}{CGI}{Analog} ) {
      			wadg::Errors::error( -1, 'E0017' );
      		} # end unless
      		
      		##
      		## qv=1 could be processed here like in Analog:
      		#print STDOUT "$_
      \n" foreach( @{$self->{v}{CGI}{Analog_Config}} ); } # end if #---------------------------------------- # Get command line from parameters if not in CGI mode #---------------------------------------- unless( exists $self->{v}{_INTERNAL}{_CGI} ) { # Restore version in object in case it was clobbered in an include $self->{version} = $version; # Then include any command-line includes $self->_parse_command_line( @args ); if( exists $self->{v}{statistics}{Include} ) { my @files = ($self->{v}{statistics}{Include}); delete $self->{v}{statistics}{Include}; # Then include the file supporting included files there in ## I'm using an array here because recursion could get really deep and ## ugly. This is start-up so we want it to be pretty fast foreach( @files ) { $parms{-file} = $_; $self->_include_file( %parms ); # Push any included files onto the file list and undef for next round if( exists $self->{v}{statistics}{Include} ) { my @f = ($self->{v}{statistics}{Include}); @f = @{$f[0]} if ref($f[0]) eq 'ARRAY'; push @files, @f; delete $self->{v}{statistics}{Include}; } # end if } # end foreach } # end if } # end unless # Make sure all the settings are recognized $self->_recognize_all(); # Clean up the settings $self->_conversions(); $self->_defaults(); $self->_sanity_checks(); return $self; } # end TIEHASH ########################## ## ## ## Public Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: getFilename # # Args: (None) # # Description: Returns the filename for the user settings file # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Mar21 Created the function JW # ---------------------------------------------------------- sub getFilename { my $self = shift; return $self->{FILENAME}; } # end getFilename # ---------------------------------------------------------- # Sub: get_styles # # Args: $section # $section The section (report or navigation) for which to # parse settings from # # Description: Parses settings from a section of the settings # into a css style sheet. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May26 Created method JW # 2000Dec01 Now quotes font family names with whitespace JW # ---------------------------------------------------------- sub get_styles { my $self = shift; my( $section, $group, $elm ) = @_; $elm = 'body' unless defined $elm && $elm; if( defined $group && $group ) { $group .= '_'; } else { $group = ''; } # end if $self->newval( $section, '_styles', {} ) unless $self->val( $section, '_styles' ); my $styles = $self->val( $section, '_styles' ); $styles->{$elm} = {} unless defined $styles->{$elm}; if( $self->val( $section, $group . 'Font' ) ) { # Make sure all elements with spaces are quoted my @families = split /\s*,\s/, $self->val( $section, $group . 'Font' ); foreach (@families) { $_ = "\"$_\"" if /\s/ & !/\"/; } # end foreach $styles->{$elm}{'font-family'} = join ',', @families; } # end if if( $self->val( $section, $group . 'Font_Color' ) ) { $styles->{$elm}{color} = $self->val( $section, $group . 'Font_Color' ); } # end if if( $self->val( $section, $group . 'Background' ) ) { $styles->{$elm}{'background-image'} = 'url(' . $self->val( $section, $group . 'Background' ) . ')'; } # end if if( $self->val( $section, $group . 'BG_Color' ) ) { $styles->{$elm}{'background-color'} = $self->val( $section, $group . 'BG_Color' ); } # end if return; } # end get_styles # ---------------------------------------------------------- # Sub: get_report_styles # # Args: $section # $section The section (report letter) to get styles for # # Description: Convenince method to create a stylesheet for # a given report. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May26 Created method JW # 2000Oct03 Added check for Stylesheet attribute JW # ---------------------------------------------------------- sub get_report_styles { my $self = shift; my $section = shift || 'reports'; # Don't set any default styles if there's a stylesheet present. return if $self->val( $section, 'Stylesheet' ); $self->newval( $section, '_styles', {} ) unless $self->val( $section, '_styles' ); my $styles = $self->val( $section, '_styles' ); # Setup the style sheet for the Report pages $self->get_styles( $section ); # Duplicate the body element into p and td for Netscape $styles->{p} = {} unless defined $styles->{p} && ref($styles->{p}) eq 'HASH'; $styles->{td} = {} unless defined $styles->{td} && ref($styles->{td}) eq 'HASH'; %{$styles->{p}} = %{$styles->{body}}; %{$styles->{td}} = %{$styles->{td}}; $styles->{h1} = {} unless defined $styles->{h1}; $styles->{h1}{'font-size'} = '20pt'; $styles->{h1}{'text-align'} = 'CENTER'; # Setup some defaults for the 'h2' style, then build styles from settings $styles->{h2} = {} unless defined $styles->{h2}; $styles->{h2}{'font-size'} = '12pt'; if( defined $self->val( $section, 'Title_BG_Color' ) ) { $styles->{h2}{width} = '95%'; $styles->{h2}{padding} = '3pt'; $styles->{h2}{border} = 'none'; $styles->{h2}{'font-weight'} = 'bold'; } # end if $self->get_styles( $section, 'Title', 'h2' ); $styles->{'.fineprint'} = {} unless defined $styles->{'.fineprint'}; $styles->{'.fineprint'}{'font-size'} = '7pt'; $styles->{'.smallfont'} = {} unless defined $styles->{'.smallfont'}; $styles->{'.smallfont'}{'font-size'} = '8pt'; if( $self->val( $section, 'Data_Font' ) ) { $styles->{td} = {} unless defined $styles->{td}; $styles->{'td'}{'font-family'} = $self->val( $section, 'Data_Font' ); } # end if if( $self->val( $section, 'Data_Font_Color_1' ) ) { $styles->{'td.alt1'} = {} unless defined $styles->{'td.alt1'}; $styles->{'td.alt1'}{color} = $self->val( $section, 'Data_Font_Color_1' ); } # end if if( $self->val( $section, 'Data_Font_Color_2' ) ) { $styles->{'td.alt2'} = {} unless defined $styles->{'td.alt2'}; $styles->{'td.alt2'}{color} = $self->val( $section, 'Data_Font_Color_2' ); } # end if if( $self->val( $section, 'Data_BG_Color_1' ) ) { $styles->{'td.alt1'} = {} unless defined $styles->{'td.alt1'}; $styles->{'td.alt1'}{'background-color'} = $self->val( $section, 'Data_BG_Color_1' ); } # end if if( $self->val( $section, 'Data_BG_Color_2' ) ) { $styles->{'td.alt2'} = {} unless defined $styles->{'td.alt2'}; $styles->{'td.alt2'}{'background-color'} = $self->val( $section, 'Data_BG_Color_2' ); } # end if $self->get_styles( $section, 'Data_Header', 'th' ); $self->get_styles( $section, 'Data_Total', 'th.total' ); return $self; } # end get_report_styles # ---------------------------------------------------------- # Sub: get_nav_styles # # Args: (None) # # Description: Convenience method to retrieve all the styles # and set defaults necessary for the Navigation stylesheet # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May26 Created method JW # 2000Oct03 Added check for Stylesheet attribute JW # 19Aug2002 Added navbullet class for no italic on hover JW # ---------------------------------------------------------- sub get_nav_styles { my $self = shift; # Don't set any default styles if there's a stylesheet present. return if $self->val( 'navigation', 'Stylesheet' ); $self->newval( 'navigation', '_styles', {} ) unless $self->val( 'navigation', '_styles' ); my $styles = $self->val( 'navigation', '_styles' ); # Setup the style sheet for the Navigation panel $self->get_styles( 'navigation' ); $styles->{body} = {} unless defined $styles->{body}; $styles->{body}{'font-size'} = '9pt'; $styles->{td} = {} unless defined $styles->{body}; $styles->{td}{'font-size'} = '9pt'; $styles->{h4} = {} unless defined $styles->{h4}; $styles->{h4}{'font-size'} = '12pt'; $styles->{a} = {} unless defined $styles->{a}; $styles->{a}{'font-weight'} = 'normal'; $styles->{a}{'text-decoration'} = 'none'; if( $self->val( 'navigation', 'Font_Color' ) ) { $styles->{'a:link'} = {} unless defined $styles->{'a:link'}; $styles->{'a:visited'} = {} unless defined $styles->{'a:visited'}; $styles->{'a:active'} = {} unless defined $styles->{'a:active'}; $styles->{'a:link'}{color} = $self->val( 'navigation', 'Font_Color' ); $styles->{'a:visited'}{color} = $self->val( 'navigation', 'Font_Color' ); $styles->{'a:active'}{color} = $self->val( 'navigation', 'Font_Color' ); } # end if $styles->{'a:hover'} = {} unless defined $styles->{'a:hover'}; $styles->{'a:hover'}{'font-style'} = 'italic'; $styles->{'.navbullet a:hover'}{'font-style'} = 'normal'; return $self; } # end get_nav_styles ########################## ## ## ## Private Methods ## ## ## ########################## # ---------------------------------------------------------- # Sub: _parse_command_line # # Args: @args # @args A list of command-line arguments to the program # # Returns: The name of the file parsed for settings. # Settings are stored in $settings->{config} # # Description: Parses command-line arguments for filename # and overrides and builds a hash of settings # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 1999Mar29 Added support for commandline filename JW # 1999Aug21 Added suprort for command-line overrides JW # 2000May26 Pulled out defaults, conversion and sanities JW # 2000May26 Converted to command-line parser JW # 2000Jun14 Fixed processing for new data model JW # 04Feb2003 Added short-circuit options (help, etc.) JW # ---------------------------------------------------------- sub _parse_command_line { my $self = shift; my $filename = undef; my @args = @_; foreach ( @args ) { if( /^--?(.+)/ ) { # Parse '-option' arguments my $name = $1; my $val = 1; if( $name =~ /([^=]+)=(.+)/ ) { $name = $1; $val = $2; } # end if if( $name =~ /(_*[^_-]+)[_-](.+)/ ) { $name = $1; my $name2 = $2; $name2 =~ s/-/_/g; #** $self->newsection( $name ) unless defined $self->Parameters( $name ); if( defined $self->val( $name, $name2 ) ) { $self->setval( $name, $name2, $val ); } else { $self->newval( $name, $name2, $val ); } # end if } elsif ( $name =~ /^h(elp)?$|^\?$/i ) { $0 =~ s(^.+[\\/])(); print $self->{version}; print qq[ Basic Usage: $0 [options] rmagic.ini 'rmagic.ini' is the name of a settings file to use Some valid options include -h --help Show this message -v --version Show the version --settings Write out settings from the current configuration HTML documentation is in the docs folder, starting with index.html. Please read the License.html file for terms and conditions. You can also find documentation online at http://reportmagic.org/ ]; exit; } elsif ( lc($name) eq 'v' || lc($name) eq 'version' ) { print $self->{version}; exit; } elsif ( lc($name) eq 'settings' ) { # Just use Config::IniFiles' OutputConfig method to write # it all to STDOUT, including comments! Weee! $self->OutputConfig(); exit; } else { # Invalid command line argument wadg::Errors::warning( 'W0006', $name ); } # end if } # end if } # end for } # end _parse_command_line # ---------------------------------------------------------- # Sub: _sanity_check # # Args: (None) # # Description: Runs some sanity checks on the settings and # forces some values based on others. # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Apr04 Fixed bug in declarations like my( undef, ... JW # 2000May26 Created from sections of _read_user_settings JW # 2000Nov29 One_File test with -d; now makes proper paths JW # 2001Feb06 Changed directory test, cause it failed JW # 06Feb2003 Added [graphs] Path_To and URL_To cleaning JW # 21Mar2003 Better guessing of paths without trailing / JW # ---------------------------------------------------------- sub _sanity_checks { my $self = shift; # # Get the output directory for all the output files and # force them into that directory # my $outDir = $self->val( 'reports', 'File_Out' ); # # Set statistics_One_File based on what the output file is # If the file does not already exists as a directory, then get # the directory portion with fileparse. Don't use dirname, because # on Unix and DOS/Windows it will make something like 'lib/' have # a directory part of '.' -- cruft. # if( !-e $outDir || !-d $outDir ) { (undef, $outDir, undef) = fileparse( $self->val( 'reports', 'File_Out' ) ); } # end if # # If the $outDir matches exaclty the directory component then it's a directory # if( $outDir eq $self->val( 'reports', 'File_Out' ) ) { $self->newval( 'statistics', 'One_File', 0 ); } else { $self->newval( 'statistics', 'One_File', 1 ); } # end if # # Put the navigation and frameset files in the same folder as the reports # if( $self->val( 'navigation', 'File_Out' ) && $self->val( 'navigation', 'File_Out' ) !~ /^(LEFT|TOP|RIGHT|BOTTOM|NONE)$/i ) {; $self->setval( 'navigation', 'File_Out', File::Spec->catfile( $outDir, basename( $self->val( 'navigation', 'File_Out' ) ) ) ); } # end if if( defined $self->val( 'statistics', 'Frame_File_Out' ) ) { $self->setval( 'statistics', 'Frame_File_Out', File::Spec->catfile( $outDir, basename( $self->val( 'statistics', 'Frame_File_Out' ) ) ) ); } # end if # # Drop any any last '/' or '\' on website_Base_URL # my $website = $self->val( 'website', 'Base_URL' ); if( $website =~ s/^(.*)[\/\\]$/$1/ ) { $self->setval( 'website', 'Base_URL', $website ); } # end if # # Make sure there's a terminating '/' on graphs_URL_To # Do opposite for the Path_To, using portable code # my $url_to = $self->val( 'graphs', 'URL_To' ); if( defined($url_to) && $url_to !~ m[/$] ) { $self->setval( 'graphs', 'URL_To', "$url_to/" ); } # end if my $path_to = $self->val( 'graphs', 'Path_To' ); if( defined $path_to ) { $self->setval( 'graphs', 'Path_To', File::Spec->canonpath( $path_to ) ); } # end if # # Make Active Column a useful value # if( defined $self->val( 'reports', 'Active_Column' ) ) { # Make sure it's only the first letter. my $ac = substr( $self->val( 'reports', 'Active_Column' ), 0, 1 ); # Add "_" indicator to capital columns $ac .= '_' if $ac eq uc($ac); $self->setval( 'reports', 'Active_Column', $ac ); } # end if # If outputting to STDOUT, then force non-frames mode and # one-file mode and turn off Quick Summary (STDOUT cannot # be reopend to insert the summary). No notices either. if( $self->val( 'reports', 'File_Out' ) eq '-' ) { $self->setval( 'navigation', 'File_Out', 'RIGHT' ) unless $self->val( 'navigation', 'File_Out' ) =~ /^(LEFT|TOP|RIGHT|BOTTOM)$/i; $self->setval( 'statistics', 'One_File', 1 ); $self->delval( 'q', 'Rows' ); my $v = $self->val( 'statistics', 'Verbose' ); $v =~ s/N//; $self->setval( 'statistics', 'Verbose', $v ); } # end if # Don't allow [statistics]File_In to contain %infile% or ${infile} my $infile = $self->val( 'statistics' , 'File_In' ); $infile =~ s/%infile%//i; $infile =~ s/\$\{infile\}//i; $self->setval( 'statistics' , 'File_In', $infile ); return $self; } # end _sanity_checks # ---------------------------------------------------------- # Sub: _conversions # # Args: (None) # # Description: Converts settings from old styles to current one # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May26 Created from sections of _read_user_settings JW # 2000Jun14 Implemented __convert method for clarity JW # 20Feb2003 Patched so Language=no was not changed to 0 JW # ---------------------------------------------------------- sub _conversions { my $self = shift; # Title moved from [reports] to [website] $self->__convert( 'website', 'Title', 'reports', 'Title' ); # Active_Column moved from [statistics] to [reports] $self->__convert( 'reports', 'Active_Column', 'statistics', 'Active_Column' ); # Graph_Font moved from [reports] to [graphs]Font $self->__convert( 'graphs', 'Font', 'reports', 'Graph_Font' ); # Image_ball changed to Bullet_Image $self->__convert( 'navigation', 'Bullet_Image', 'navigation', 'Image_Ball' ); # Reverse_Time moved from [statistics] to [reports] $self->__convert( 'reports', 'Reverse_Time', 'statistics', 'Reverse_Time' ); # Update names of nav page styles $self->__convert( 'navigation', 'Font', 'navigation', 'Page_Font' ); $self->__convert( 'navigation', 'Font_Color', 'navigation', 'Page_Font_Color' ); $self->__convert( 'navigation', 'BG_Color', 'navigation', 'Page_BG_Color' ); $self->__convert( 'navigation', 'Background', 'navigation', 'Page_Background' ); # Update names of "_Color" to "_BG_Color" $self->__convert( 'reports', 'Data_BG_Color_1', 'reports', 'Data_Color_1' ); $self->__convert( 'reports', 'Data_BG_Color_2', 'reports', 'Data_Color_2' ); $self->__convert( 'reports', 'Data_Header_BG_Color', 'reports', 'Data_Header_Color' ); $self->__convert( 'reports', 'Data_Total_BG_Color', 'reports', 'Data_Total_Color' ); # Move "General_Rows" and "Summary_Rows" to their own sections $self->__convert( 'statistics', 'General_Rows', 'x', 'Rows' ); $self->__convert( 'statistics', 'Summary_Rows', 'q', 'Rows' ); # Equivalent boolean keywords my( $S, $P ); foreach $S ( $self->Sections() ) { foreach $P ( $self->Parameters( $S ) ) { next unless defined $self->val( $S, $P ); next if $P eq 'Language'; # May need to preserve other than just "no" language $self->setval( $S, $P, 1 ) if $self->val( $S, $P ) =~ /^(YES|ON|TRUE)$/i; $self->setval( $S, $P, 0 ) if $self->val( $S, $P ) =~ /^(NO|OFF|FALSE|NONE)$/i; } # end foreach } # end foreach return $self; } # end _conversions # ---------------------------------------------------------- # Sub: __convert # # Args: $new_section, $new_parm, $old_section, $old_parm # # Description: Helper method to convert settings from one # area to method # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000Jun14 Created function JW # ---------------------------------------------------------- sub __convert { my $self = shift; my( $new_section, $new_parm, $old_section, $old_parm ) = @_; unless( defined $self->val( $new_section, $new_parm ) ) { $self->newval( $new_section, $new_parm, $self->val( $old_section, $old_parm ) ); } # end if } # end __convert # ---------------------------------------------------------- # Sub: _defaults # # Args: (None) # # Description: Sets default values for some elements # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 2000May26 Created from sections of _read_user_settings JW # 2000Oct17 Fixed bug in ALL setting in GENERAL section JW # 2000Nov28 Added default for Graph_Level setting JW # 06Feb2003 Added default File_Extension JW # 14Feb2003 Default Frameset is index.html JW # 10Mar2003 Default input and output to STDIN/STDOUT JW # ---------------------------------------------------------- sub _defaults { my $self = shift; # # Check GD for support of desired output format. If none # given or not capable, then set output format accordingly. # my $g = new GD::Image(0,0); if( defined $self->val( 'graphs', 'Format' ) ) { if( $self->val( 'graphs', 'Format' ) =~ /jpe?g/i ) { $self->setval( 'graphs', 'Format', 'jpeg' ); } else { $self->setval( 'graphs', 'Format', lc($self->val( 'graphs', 'Format' )) ); } # end if unless( $g->can( $self->val( 'graphs', 'Format' ) ) ) { if( $g->can( 'png' ) ) { $self->setval( 'graphs', 'Format', 'png' ); } elsif( $g->can( 'gif' ) ) { $self->setval( 'graphs', 'Format', 'gif' ); } elsif( $g->can( 'jpeg' ) ) { $self->setval( 'graphs', 'Format', 'jpeg' ); } # end if } # end if } else { if( $g->can( 'png' ) ) { $self->newval( 'graphs', 'Format', 'png' ); } elsif( $g->can( 'gif' ) ) { $self->newval( 'graphs', 'Format', 'gif' ); } elsif( $g->can( 'jpeg' ) ) { $self->newval( 'graphs', 'Format', 'jpeg' ); } # end if } # end if # -- If format is still not defined, then error: unless( defined $self->val( 'graphs', 'Format' ) ) { wadg::Errors::error( -1, 'E0015', 'dgsupport\@wadsack-allen.com', $GD::VERSION, $self->val( '_INTERNAL', '_VERSION' ) ); } # end unless # -- Default vebosity is all if( !defined $self->val( 'statistics', 'Verbose' ) ) { $self->newval( 'statistics', 'Verbose', 'NWE' ); } elsif( $self->val( 'statistics', 'Verbose' ) =~ /NONE/i ) { $self->setval( 'statistics', 'Verbose', '' ); } # end if # -- Make General Summary and Quick Summary ROWS defaults { # Scope block my $general = $self->val( 'x', 'Rows' ) || $self->val( 'GENERAL', 'Rows' ) || ''; my $quick = $self->val( 'q', 'Rows' ) || $self->val( 'QUICK', 'Rows' ) || ''; $self->newval( 'x', 'Rows', '' ) unless $general; $self->setval( 'x', 'Rows', '' ) if $general =~ /ALL/i || $general =~ /ALL/i; $self->delval( 'GENERAL', 'Rows' ) if $general =~ /ALL/i; if( $quick =~ /NONE/i ) { $self->delval( 'q', 'Rows' ); $self->delval( 'QUICK', 'Rows' ); } # end if } # end scope # -- Default Navigation Position is RIGHT if( defined $self->val( 'navigation', 'File_Out' ) ) { $self->setval( 'navigation', 'File_Out', 'RIGHT') if $self->val( 'navigation', 'File_Out' ) eq $self->val( 'reports', 'File_Out' ); } else { # Since 'reports' is default, this case really never happens. # So maybe this should be an assert? [JW] $self->newval( 'navigation', 'File_Out', 'RIGHT'); } # end if $self->delval( 'navigation', 'File_Out' ) if $self->val( 'navigation', 'File_Out' ) =~ /NONE/i; # -- Default File_In and File_Out are STDIN and STDOUT respectively $self->newval( 'reports', 'File_Out', '-') unless defined $self->val( 'reports', 'File_Out' ); $self->newval( 'statistics', 'File_In', '-') unless defined $self->val( 'statistics', 'File_In' ); # -- Deafault Graph_Level is 1 $self->newval( 'reports', 'Graph_Level', '1') unless defined $self->val( 'reports', 'Graph_Level' ); # -- Default File_Extension is .html $self->newval( 'reports', 'File_Extension', '.html') unless defined $self->val( 'reports', 'File_Extension' ); # -- Default Frame_File_Out is index.{File_Extension} # Therefore this must be done after the default file extension is set $self->newval( 'statistics', 'Frame_File_Out', 'index' . $self->val( 'reports', 'File_Extension' ) ) unless defined $self->val( 'statistics', 'Frame_File_Out' ); ######## # NOTE: Default values for [CGI] Forbidden and Analog_Forbidden are set in teh # CGI section, because they need to be known before reading the CGI input ######## return $self; } # end _defaults # ---------------------------------------------------------- # Sub: _recognize_all # # Args: $section, $parameter # # Description: Returns true if every current setting passes # the test in _recognize method # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 04Feb2003 Added method to reduce spelling problems JW # 06Feb2003 Changed to a hash-lookup for speed JW # 25Mar2003 Converted to __DATA sub for Windows binary JW # ---------------------------------------------------------- sub _recognize_all { my $self = shift; my( $filename ) = @_; my( $S, $P ); # # Load the KNOWN_SETTINGS hash if it's not loaded # # We use a hash to store both section AND param names # because a hash lookup is MUCH faster than a list grep # There are examples of this in Camel, Cookbook and List::Compare # unless( %KNOWN_SETTINGS ) { my $cur = ''; foreach( split( /\n/, &__DATA() ) ) { chomp; if( /\[([^\]]+)\]/ ) { $cur = $1; next unless defined $cur; $KNOWN_SETTINGS{$cur} = {} unless exists $KNOWN_SETTINGS{$cur}; } else { $KNOWN_SETTINGS{$cur}{$_}++; } # end if } # end foreach } # end unless # # Now build %KNOWN_REPORTS hash from list # if( @KNOWN_REPORTS && !%KNOWN_REPORTS ) { foreach( @KNOWN_REPORTS ) { $KNOWN_REPORTS{$_}++; } # end foreach } # end unless # # Run through the sections and parameters and # make sure all are valid # for $S ( $self->Sections() ) { # Ignore empty sections (bug in some versions of Config-IniFiles) next unless defined $S; for $P ( $self->Parameters( $S ) ) { # Ignore empty parameters (bug in some versions of Config-IniFiles) next unless defined $P; # If the $section part is one of the defaults then check normally if( $KNOWN_SETTINGS{$S} ) { unless( $KNOWN_SETTINGS{$S}{$P} ) { wadg::Errors::warning( 'W0008', "[$S] $P" ); } # end if next; } # end if # If it's not a regular section, then it should be a report name unless( $KNOWN_REPORTS{$S} ) { wadg::Errors::warning( 'W0008', "[$S] $P" ); next; } # end if # If it's a report name section, then make sure the parameter is part of [reports] unless( $KNOWN_SETTINGS{reports}{$P} ) { wadg::Errors::warning( 'W0008', "[$S] $P" ); next; # Not needed... but... } # end if } # end for } # end for return 1; } # end _recognize_all # ---------------------------------------------------------- # Sub: _include_file # # Args: %param # # Description: Adds the settings in $param{-file} to the # current settings # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 06Feb2003 Added method to support mutliple includes JW # 27Feb2003 Added safety check for _INTERNAL settings JW # ---------------------------------------------------------- sub _include_file { my $self = shift; my( %parms ) = @_; # # Load a config file using the # given parameters # my $inc = new Config::IniFiles( %parms ); # # Now put these settings on top of the other ones # my( $S, $P ); foreach $S ( $inc->Sections() ) { # Don't allow importing of _INTERNAL values next if $S eq '_INTERNAL'; foreach $P ( $inc->Parameters( $S ) ) { unless( exists $self->{v}{$S}{$P} ) { my( @A ) = $inc->val( $S, $P ); if( @A > 1 ) { $self->{v}{$S}{$P} = \@A; } else { $self->{v}{$S}{$P} = $A[0]; } # end if } # end unless } # end foreach } # end foreach } # end _include_file # ---------------------------------------------------------- # Sub: _analog_printargs # # Args: $query, $cgi_arg [, $config_arg] # # Description: Returns a line for the Analog configuration # made up of the argument and it's value, properly normalized # and checked for CGI-safety # # Based on printargs sub in Analog's anlgform.pl # Copyright 1995 - 2002 Stephen R. E. Turner # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # 09Mar2003 Modified to make a method JW # ---------------------------------------------------------- sub _analog_printargs { my $self = shift; my $query = shift; my($name) = $_[1] || $_[0]; my($is_floora) = 0; my($is_12) = 0; my $config = ''; if ($name =~ /FLOORA$/) { chop($name); $is_floora = 1; } elsif ($name =~ /1$/) { chop($name); $is_12 = 1; } # end if if ($is_floora) { my $a = $query->param($name . 'A'); # last "FLOORA=$a" form arg specified my $b = $query->param($name . 'B'); $config = "$name $a$b" if ($b ne '' && $b !~ /\\$/); # could bracket $a$b, but no help because any special character in a # FLOOR command is junk anyway. } elsif ($is_12) { my $a = $query->param($name . '1'); my $b = $query->param($name . '2'); $config = ("$name " . _analog_backet($a) . " " . _analog_backet($b)) if ($b ne ''); } else { my $a; foreach $a ( $query->param($_[0]) ) { # run through all "NAME=$a" form args if ($a ne '') { $config .= "$name " . _analog_backet($a); $config .= ("DNS READ") if ($name eq 'DNSFILE'); } # end if } # end foreach } # end if # Make sure that the characters are valid, or dump it return '' if $config =~ /[\x00-\x1F\x7F-\x9F]/; if( $name =~ /LOGFILE/ or $name =~ /CACHEFILE/ ) { return '' if $config =~ m([^\w. /\\:\-*?]) || $config =~ m(\B-|-\B); } # end if return $config; } # end _analog_printargs # ---------------------------------------------------------- # Sub: _analog_backet # # Args: $value # # Description: Returns the value enclosed in single quotes, # double quotes or parentheses. # # Based on bracket sub in Analog's anlgform.pl # Copyright 1995 - 2002 Stephen R. E. Turner # ---------------------------------------------------------- # Date Modification Author # ---------------------------------------------------------- # ---------------------------------------------------------- sub _analog_backet { local $_ = $_[0]; return $_ unless (/[\s\#]/ || /^['"\(]/ || /\\$/); return "\"$_\"" unless (/"/); return "'$_'" unless (/'/); return "($_)"; } # end _analog_backet # module clean-up code here (global destructor) END { } 1; # so the require or use succeeds #---------------------------------------------------------------------- # The DATA section below is be used for a basic "known settings" check # NOTE: In compiled version for Windows, we can't user the 'DATA' section # because the ActiveState compiler doesn't know how to get to it. So instead # We''l just make this a function that returns a scalar and parse it above. #---------------------------------------------------------------------- sub __DATA { return q{ [_INTERNAL] _VERSION _TITLE _CGI [reports] File_Out Active_Column Meta_Refresh Image_Dir Stylesheet Reverse_Time Graph_Level BG_Color Background Font Font_Color Title_Font Title_BG_Color Title_Font_Color Data_Font Data_Font_Color Data_Font_Color_1 Data_Color_1 Data_BG_Color_1 Data_Font_Color_2 Data_Color_2 Data_BG_Color_2 Data_Total_Font Data_Total_Font_Color Data_Total_BG_Color Data_Total_Color Data_Header_Font Data_Header_Font_Color Data_Header_BG_Color Data_Header_Color Width Height 3d Show_Bytes_As Rows File_Extension ShortName LongName DataName ReportType Truncate IncludeLinks SmallFont TimeFormat GraphType MostActive Average Summary1 Summary2 Description [graphs] BG_Color Font Font_Color Width Height 3d Palette Cycle_Colors Shadows Format Path_To URL_To [statistics] File_In Frame_File_Out Frame_Border Reverse_Time No_Robots Log_File Always_Quit Language Verbose Include Format [navigation] File_Out BG_Color Background Font_Color Font Bullet_Image Stylesheet Top_Logo [website] Title Webmaster Base_URL Company_Logo [CGI] Analog Analog_Config Analog_Forbidden Analog_Allowed Forbidden Allowed }; } # end _DATA