#!/usr/bin/perl
BEGIN {
if (exists $ENV{MOD_PERL}){
if (Apache->request->filename() =~ m!(.*[/\\])!){
require Cwd;
Cwd::chdir(substr($1,0,-1));
}
}
}
$BASEDIR = ".";
$INDEX_X = 7;
$INDEX_Y = 7;
$INDEX_N = ($INDEX_X * $INDEX_Y) - (($INDEX_X - 2) * ($INDEX_Y -2 ));
$TBL_SX = $INDEX_X -2;
$TBL_SY = $INDEX_Y -2;
$SUM_X = 48;
$SUM_Y = 48;
$CELLSPC = 8;
$TBL_X = ($SUM_X * $INDEX_X)+ ($INDEX_X-1) * $CELLSPC;
$PRE_X = ($SUM_X * $TBL_SX) + ($TBL_SX-1) * $CELLSPC;
$PRE_Y = ($SUM_Y * $TBL_SY) + ($TBL_SY-1) * $CELLSPC;
if( -e "album.conf") {
require "./album.conf";
}
HttpStart();
GetQueryString();
HtmlOpen();
SWITCH: for ($_) {
/INDEX/ && do { Index(); last; };
/VIEW/ && do { View(); last; };
// && do { last; };
}
HtmlClose();
exit;
##############################################
sub GetQueryString {
if( $ENV{'QUERY_STRING'} eq "" ) { $_="INDEX"; return; }
@p1 = split(/&/, $ENV{'QUERY_STRING'});
foreach $pair (@p1)
{
($name, $val) = split(/=/,$pair);
$val =~ tr$\\!\$|<>/"';:$$d;
$QS{$name} = $val;
# print "$name = $val
";
}
if( defined $QS{'index'} ) {
$QS{'index'} = abs($QS{'index'});
$_ = "INDEX";
# } elsif( $name eq "edit" ) {
# $_ = "EDIT";
}
# } elsif( $name eq "view" ) {
if( $name eq "view" ) {
$_ = "VIEW";
# } elsif( $name eq "memo" ) {
# $_ = "MEMO";
} elsif( $name eq "post" ) {
$_ = "POST";
} else {
$QS{'index'} = 0;
$_ = "INDEX";
}
}
sub Index {
opendir(DIR, "$BASEDIR/photo/") or die;
@files = sort {$b cmp $a} grep( !/^_|^\.\.?$/, readdir( DIR ) );
closedir(DIR);
$allfiles = $#files;
if( ($allfiles-1) < $QS{'index'} ) { return };
#BOX Init.
for($y=0;$y<$INDEX_Y;$y++) {
for($x=0;$x<$INDEX_X;$x++) {
$box[$x][$y] = "1";
}
}
$box[1][1] = -1;
#
#Make Box
#
$cnt = 0;
#BOX UP
for($lc=0;$lc<$INDEX_X;$lc++) {
$box[$lc][0] = $files[$QS{'index'}+$cnt++];
}
#BOX RIGHT
for($lc=1;$lc<$INDEX_Y;$lc++) {
$box[$INDEX_X-1][$lc] = $files[$QS{'index'}+$cnt++];
}
#BOX UNDER
for($lc=$INDEX_X-2;$lc>=0;$lc--) {
$box[$lc][$INDEX_Y-1] = $files[$QS{'index'}+$cnt++];
}
#BOX LEFT
for($lc=$INDEX_Y-2;$lc>0;$lc--) {
$box[0][$lc] = $files[$QS{'index'}+$cnt++];
}
print "
\n"; print "
| \n";
$a = int((($allfiles-1)/$INDEX_N)+1);
$b = int(sqrt($a*2)+0.5);
for($cnt=0;$cnt<$a && $b > 0;$b--) {
for($c=0;$c<$b && $cnt<$a ;$c++,$cnt++) {
printf("%02d ",$cnt*$INDEX_N, $cnt+1);
}
print " "; } print " |
\n"; print "
| ";
# Text no display 2004/11/18
# if( -e "memo" ) {
# print "Text "; # } print "Return |
|