#!/usr/bin/perl # Author: Peter R. Wood, http://prwdot.org/ use strict; use CGI; use DBI; my $q = new CGI; my $db_user = ''; my $db_pass = ''; my $db_host = ''; my $db_name = ''; my $wav_dir = ''; my $img_dir = ''; my $dbh = DBI->connect( "DBI:mysql:database=$db_name;host=$db_host", $db_user, $db_pass, { RaiseError => 1 } ); print $q->header(); my $sort_type = $q->param('sort') || 'desc'; my $sort_link = "?sort="; if ( $sort_type eq 'asc' ) { $sort_link = "Sort: [ Chronological | " . $q->a( { -href => $sort_link . "desc" }, "Reverse Chronological" ) . " ]"; } elsif ( $sort_type eq 'desc' ) { $sort_link = "Sort: [ " . $q->a( { -href => $sort_link . "asc" }, "Chronological" ) . " | Reverse Chronological ]"; } my $query = "select date_format(date,'%W, %M %D, %Y @ %l:%i:%s %p'), photo_code, memo_code, caption " . "from pcsblog " . "order by date $sort_type"; my $sth = $dbh->prepare($query); $sth->execute(); my $entries = ""; while ( my ( $date, $photo_code, $memo_code, $caption ) = $sth->fetchrow ) { my ( $photo, $memo ); $photo = $q->img( { -alt => "Blog Picture", -width => '352', -height => '288', -src => $img_dir . '/' . $photo_code . ".jpg" } ) if $photo_code . "\n"; $memo = $q->p( $q->a( { -href => $wav_dir . '/' . $memo_code . ".wav" }, "Listen to Voice Memo" ) ) . "\n" if $memo_code; $caption = $q->p( $q->b($caption) ) . "\n" if $caption; $entries .= $q->Tr( $q->td( { -valign => "top", -align => "left" }, $photo ) . "\n" . $q->td( { -valign => "top", -align => "left" }, $q->p( $q->b( "Date: " . $date ) ) . "\n" . $memo . $caption ) ) . "\n"; } $sth->finish; $entries = $q->table( { -align => "left" }, $entries ); my $page = $q->start_html( { -title => "PCS Photo Blog" } ) . "\n" . $q->h2( { -align => 'left' }, "PCS Photo Blog" ) . "\n" . $q->p( $sort_link . " " x 2 . $q->a( { -href => "http://validator.w3.org/check/referer" }, $q->img( { -src => "http://www.w3.org/Icons/valid-xhtml10", -alt => "Valid XHTML 1.0!", -height => "31", -width => "88", -border => "0" } ) ) . "\n" ) . "\n" . $entries . "\n" . $q->br . $q->end_html; print $page; $dbh->disconnect; sub forward { { $a <=> $b }; } sub reverse { { $b <=> $a }; }