#!/usr/bin/perl use Pg; use CGI qw(:standard); use CGI qw(:cgi-lib); use CGI::Carp qw(fatalsToBrowser); ########################################################### # Copyright Paul Barrette and the Trajan Column Project, # # 1999. # # Interested parties may use parts and/or adapt # # this script for their own NON-COMMERCIAL projects # # provided that this copywrite notice is kept intact # # at the head of the CGI script. # # Thank you. # # Paul Barrette, barretp@mcmaster.ca # ########################################################### print header; ReadParse(); #extract the key num from a link and grab the following fields from the db #$slide=$ARGV[0]; #passed after the ? in a link $key=$ARGV[0]; #passed after the ? in a link $relatedtrue=$ARGV[1]; #get header and footer $head=`cat stndheader.txt`; $footer=`cat stndfooter.txt`; #things to extract from the db #1. vwdescription #2. scenenumber #3. drumnumber #4. sideofcolumn #5. notessubject #6. relatedslides #if related slide is true use this sql if ($relatedtrue){ $sql = "SELECT vwdescription, scenenumber, drumnumber, sideofcolumn, notessubject, relatedslides, imagenumber, cdnumber, relatedslides, furthernotes, toolkeywords, notesdescription, subjectkeywords, slidenumber, photographer, key FROM traj WHERE slidenumber = '$ARGV[0]'"; #use for normal page }else{ $sql = "SELECT vwdescription, scenenumber, drumnumber, sideofcolumn, notessubject, relatedslides, imagenumber, cdnumber, relatedslides, furthernotes, toolkeywords, notesdescription, subjectkeywords, slidenumber, photographer, key FROM traj WHERE key = '$ARGV[0]'"; } #FROM traj WHERE slidenumber = '$slide'"; #################################### #CONNECT TO THE DATABASE #================================ $conn = Pg::connectdb("dbname=trajan"); #execute the query Pg::doQuery($conn, $sql, \@ary); #================================ $count=0; #print @ary; #print "sql=$sql||"; #print "slide=$slide"; for $i(0..$ary) { $vwdescription=$ary[$i][0]; $scenenumber=$ary[$i][1]; $drumnumber=$ary[$i][2]; $sideofcolumn=$ary[$i][3]; $notessubject=$ary[$i][4]; $relatedslides=$ary[$i][5]; $imagenumber=$ary[$i][6]; $cdnumber=$ary[$i][7]; $relatedslides=$ary[$i][8]; $furthernotes=$ary[$i][9]; $toolkeywords=$ary[$i][10]; $tooldescription=$ary[$i][11]; $subjectkeywords=$ary[$i][12]; $slidenumber=$ary[$i][13]; $photographer=$ary[$i][14]; $key=$ary[$i][15]; } #build next and previous links if ($key > 1 && $key < 511){ $next=$key; $next++; $previous=$key; $previous--; }elsif ($key==1){ $next=$key; $next++; $previous=$key; }elsif ($key==511) { $next=$key; $previous=$key; $previous--; } #check to see if the drumnumber field is empty #separate spiral and drum number, use these for cartoon links. @sd=split ",",$drumnumber; $spiralonly=$sd[0]; $drumonly=$sd[1]; #some spirals are 10-18, fix this if ($sd[0]=~s/-/-/){ @ssd= split "-", $sd[0]; $spiralnumber=$ssd[0]; $drum=$sd[1]; }else{ $spiralnumber=$sd[0]; $drum=$sd[1]; } #append the "a,b,c or d" to spiral num #strip spaces $sideofcolumn=~s/ //g; if ($sideofcolumn eq "1-2"){ $sc="a";$panel="a-b";} if ($sideofcolumn eq "2-3"){ $sc="b";$panel="b-c";} if ($sideofcolumn eq "3-4"){ $sc="c";$panel="c-d";} if ($sideofcolumn eq "1-4"){ $sc="d";$panel="a-d";} if ($sideofcolumn eq "4-1"){ $sc="d";$panel="d-next spiral";} #now set abcd if ($sideofcolumn eq "1"){ $sc="a";$panel="a";} if ($sideofcolumn eq "2"){ $sc="b";$panel="b";} if ($sideofcolumn eq "3"){ $sc="c";$panel="c";} if ($sideofcolumn eq "4"){ $sc="d";$panel="d";} #check to see if drumnumbercontains data if ($drumnumber=~s/_/_/){ $spiralnumber=""; }else{ $spiralnumber.=$sc; $spirallink="Spiral $spiralnumber"; } #====================== #link up related slides #====================== if ($relatedslides) { @rs=split ",",$relatedslides; @fs=split ",",$furthernotes; $count=0; foreach $i(@rs) { if (!($i eq "_")){ $i=~s/ //g; $relatedlinks.="
  • $fs[$count]\n"; $count++; } } chop($relatedlinks); } #print "vwdescription=$vwdescription \n\n scenenumber=$scenenumber \n\n drumnumber=$drumnumber \n\n sideofcolumn=$sideofcolumn \n\n notessubject=$notessubject \n\n relatedslides=$relatedslides"; #========== #now build the webpage print < Trajan's Column - Image Database
    $head

     

      View Cartoon:
    • $spirallink
      Related Images: $relatedlinks
    Scene Number: $scenenumber
    Subject: $vwdescription
    Spiral & Panel Number:$spiralonly$panel
    Drum Number(s):$drumonly
    Subject Description: $notessubject
    Subject Keywords: $subjectkeywords
    Tool & Technical Description: $tooldescription
    Tool Keywords: $toolkeywords
    Photographer: $photographer
    CD Number: $cdnumber
    Image Number: $imagenumber
    PR Slide Number: $slidenumber
    Record Number: $key
    Next Image
    Previous Image
    $key
    $footer
    eof exit;