#!/usr/bin/perl # This is a graphical counter that is called from the tag. # Syantax is: # # So, for example, if your CounterDataFile was count.txt in the /file dir : # $minLen ? length($count) : $minLen; $formattedCount = sprintf("%0${len}d",$count); if ($isHigh) { for ($i = 0; $i < $len*3; $i++ ) { if ($isInverse) { push(@bytes,"ff"); # add three blank rows to each digit } else { push(@bytes,"00"); } } } for ($y=0; $y < 10; $y++) { for ($x=0; $x < $len; $x++) { $digit = substr($formattedCount,$x,1); if ($isInverse) { # $inv = 1 for inverted text $byte = substr(@invdigits[$digit],$y*3,2); } else { $byte = substr(@digits[$digit],$y*3,2); } push(@bytes,$byte); } } if ($isHigh) { for ($i = 0; $i < $len*3; $i++ ) { if ($isInverse) { push(@bytes,"ff"); # add three blank rows to each digit } else { push(@bytes,"00"); } } } } sub initialize { # $hostname = $ENV{REMOTE_HOST}; # $host = $ENV{REMOTE_ADDR}; # $port = $ENV{SERVER_PORT}; # bitmap for each digit # Each digit is 8 pixels wide, 10 high # @invdigits are white on black, @digits black on white @invdigits = ("c3 99 99 99 99 99 99 99 99 c3", # 0 "cf c7 cf cf cf cf cf cf cf c7", # 1 "c3 99 9f 9f cf e7 f3 f9 f9 81", # 2 "c3 99 9f 9f c7 9f 9f 9f 99 c3", # 3 "cf cf c7 c7 cb cb cd 81 cf 87", # 4 "81 f9 f9 f9 c1 9f 9f 9f 99 c3", # 5 "c7 f3 f9 f9 c1 99 99 99 99 c3", # 6 "81 99 9f 9f cf cf e7 e7 f3 f3", # 7 "c3 99 99 99 c3 99 99 99 99 c3", # 8 "c3 99 99 99 99 83 9f 9f cf e3"); # 9 @digits = ("3c 66 66 66 66 66 66 66 66 3c", # 0 "30 38 30 30 30 30 30 30 30 30", # 1 "3c 66 60 60 30 18 0c 06 06 7e", # 2 "3c 66 60 60 38 60 60 60 66 3c", # 3 "30 30 38 38 34 34 32 7e 30 78", # 4 "7e 06 06 06 3e 60 60 60 66 3c", # 5 "38 0c 06 06 3e 66 66 66 66 3c", # 6 "7e 66 60 60 30 30 18 18 0c 0c", # 7 "3c 66 66 66 3c 66 66 66 66 3c", # 8 "3c 66 66 66 66 7c 60 60 30 1c"); # 9 } sub incrementCount { &incrementTotalReads; } sub incrementTotalReads { if (-e $counterFile) { open(COUNT,"$counterFile") || die("Can't open $counterFile: $!\n"); } $totalReads = ; #chop $totalReads; close(COUNT); $totalReads++; open(COUNT,">$counterFile") || die "$0: can\'t open $counterFile: $!\n"; print (COUNT "$totalReads\n"); close(COUNT); }