| tobias's point of view |
|
Main »
Show
#!/usr/bin/perl -Tw
use strict;
#use CGI qw(:standard);
#use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
my $image_subDir = 'landscapes/sky';
my $pageHeading = "Slide Show";
my $pageSubHeading = "run on test pics";
my $footer = 'website design and photography copyright 2013 by <a href="http://lisalanephoto.com/" target="_blank">Lisa Lane Photography';
my $picExtString = '(\.jpg)|(\.jpeg)|(\.png)|(\.gif)|(\.tif)|(\.tiff)';
#====================================
my $script_name = $ENV{SCRIPT_NAME}; # returns: /testarea/publicDomainPics2/show.cgi
$script_name =~ m/^.+\/(.+)$/;
$script_name = $1 if($1); # sets: show.cgi
my $cgi_url=$ENV{'REQUEST_URI'}; # returns: pov.us/testarea/publicDomainPics2/show.cgi?autoPlay=0&picN=3
$cgi_url=~ m/(.+?)\?/;
$cgi_url= $1 if($1);
my $image_dir=$ENV{SCRIPT_FILENAME}; # returns: /var/www/webA1/web/testarea/publicDomainPics2/show.cgi
$image_dir=~ m/(.+?\/)$script_name$/;
$image_dir= $1 if($1);
$image_dir = $image_dir . $image_subDir;
opendir (DATA, "$image_dir");
# this sorts by alphanumeric so order can be set by filename.
#my @filenames = sort { $a cmp $b } grep (!/^\.\.?$/, readdir (DATA)); # this ignored "." dir, but allowed subdir or non pic files.
my @filenames = sort { $a cmp $b } grep (/$picExtString$/i, readdir (DATA)); # we just want to display pic type files and not dirs.
closedir (DATA);
my $numberOfPics = @filenames;
my %query = &parse_query;
$query{'picN'} = 0 unless $query{'picN'}; # first time through picN is not sent.
my $image_name = $filenames[$query{'picN'}];
my $nextpicN = $query{'picN'} + 1;
my $prevpicN = $query{'picN'} - 1;
my $currentPic = $query{'picN'} +1;
$nextpicN = 0 if($nextpicN > @filenames-1);
$prevpicN = @filenames-1 if($prevpicN < 0);
&html_main;
sub parse_query {
my @pairs = split(/&/, $ENV{'QUERY_STRING'});
foreach my $pair (@pairs) {
my ($name, $value) = split(/=/, $pair);
$query{$name} = $value;
}
return(%query);
}
sub html_main{
# cgi variables passed via url ie: 125grandview.com/cgi-bin/show.cgi?autoPlay=0&picN=4
my $delay = 3;
my $date = "/bin/date";
my $refreshURL;
my $play;
my $autoPlay = $query{'autoPlay'};
#my $autoPlay_orig = $autoPlay;
$autoPlay = 1 unless defined $autoPlay;
if($autoPlay){$refreshURL = "Refresh: $delay; URL=$cgi_url?autoPlay=1&picN=$nextpicN\n";$play = "stop";$autoPlay=0;}
else{$refreshURL = "Refresh: 600; URL=$cgi_url?autoPlay=0&picN=$nextpicN\n";$play = "start";$autoPlay=1;}
print "$refreshURL";
print "Content-type: text/html; charset=utf-8\n\n";
#print "autoPlay = $autoPlay_orig <br> refreshURL = $refreshURL<br>\n";
print qq~
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<style type="text/css">
p {margin:0em 0 0em 0; color:#AAAAAA}
body {color:#FFFFFF; background-color:#000000;}
img { max-width: 85%; max-height: 85%;}
a:link {text-decoration:none; color:#AAAAAA;}
a:visited {text-decoration:none; color:#AAAAAA;}
a:hover {text-decoration:underline; color:#FFFFFF;}
a:active {text-decoration:underline; color:#FFFFFF;}
</style>
<title>Slide Show: $image_name</title>
</head>
<body>
<p align="left"> <a href="$cgi_url"><strong><font face="Arial,Helvetica" size="6" color="#FFFFFF">$pageHeading</font></strong></a> <font face="Arial,Helvetica" size="2" color="#AAAAAA">$pageSubHeading</font></p>
<p align="center"><font face="Arial,Helvetica" size="2">
<a href="$cgi_url?autoPlay=0&picN=$prevpicN"> < </a>
<a href="$cgi_url?autoPlay=0&picN=$nextpicN"> > </a>
<a href="$cgi_url?autoPlay=$autoPlay&picN=$nextpicN"> $play </a>
</font>
<font face="Arial,Helvetica" size="4"> </font><font face="Arial,Helvetica" size="1" color="#666666"><a href="$cgi_url/contact.cgi">contact / info</a>
$currentPic / $numberOfPics
</font></p>
<center>
<a href="$image_subDir/$image_name" target="_blank"><img src="$image_subDir/$image_name" border="0" alt="click for hi rez image"></a>
</center>
<br><br><br >
<p align="right"><font face="Arial,Helvetica" size="1">$footer</a> </font></p>
</body></html>
~;
}
|
top level subjects: |
| Page last modified on October 29, 2014, at 08:43 PM |