File:  [LON-CAPA] / loncom / cgi / imagechoice.pl
Revision 1.4: download - view: text, annotated - select for diffs
Sat May 10 22:59:04 2003 UTC (20 years, 11 months ago) by www
Branches: MAIN
CVS tags: version_2_9_X, version_2_9_99_0, version_2_9_1, version_2_9_0, version_2_8_X, version_2_8_99_1, version_2_8_99_0, version_2_8_2, version_2_8_1, version_2_8_0, version_2_7_X, version_2_7_99_1, version_2_7_99_0, version_2_7_1, version_2_7_0, version_2_6_X, version_2_6_99_1, version_2_6_99_0, version_2_6_3, version_2_6_2, version_2_6_1, version_2_6_0, version_2_5_X, version_2_5_99_1, version_2_5_99_0, version_2_5_2, version_2_5_1, version_2_5_0, version_2_4_X, version_2_4_99_0, version_2_4_2, version_2_4_1, version_2_4_0, version_2_3_X, version_2_3_99_0, version_2_3_2, version_2_3_1, version_2_3_0, version_2_2_X, version_2_2_99_1, version_2_2_99_0, version_2_2_2, version_2_2_1, version_2_2_0, version_2_1_X, version_2_1_99_3, version_2_1_99_2, version_2_1_99_1, version_2_1_99_0, version_2_1_3, version_2_1_2, version_2_1_1, version_2_1_0, version_2_12_X, version_2_11_X, version_2_11_4_uiuc, version_2_11_4_msu, version_2_11_4, version_2_11_3_uiuc, version_2_11_3_msu, version_2_11_3, version_2_11_2_uiuc, version_2_11_2_msu, version_2_11_2_educog, version_2_11_2, version_2_11_1, version_2_11_0_RC3, version_2_11_0_RC2, version_2_11_0_RC1, version_2_11_0, version_2_10_X, version_2_10_1, version_2_10_0_RC2, version_2_10_0_RC1, version_2_10_0, version_2_0_X, version_2_0_99_1, version_2_0_2, version_2_0_1, version_2_0_0, version_1_99_3, version_1_99_2, version_1_99_1_tmcc, version_1_99_1, version_1_99_0_tmcc, version_1_99_0, version_1_3_X, version_1_3_3, version_1_3_2, version_1_3_1, version_1_3_0, version_1_2_X, version_1_2_99_1, version_1_2_99_0, version_1_2_1, version_1_2_0, version_1_1_X, version_1_1_99_5, version_1_1_99_4, version_1_1_99_3, version_1_1_99_2, version_1_1_99_1, version_1_1_99_0, version_1_1_3, version_1_1_2, version_1_1_1, version_1_1_0, version_1_0_99_3, version_1_0_99_2, version_1_0_99_1, version_1_0_99, version_1_0_3, version_1_0_2, version_1_0_1, version_1_0_0, version_0_99_5, version_0_99_4, version_0_99_3, version_0_99_2, version_0_99_1, version_0_99_0, loncapaMITrelate_1, language_hyphenation_merge, language_hyphenation, conference_2003, bz6209-base, bz6209, bz5969, bz2851, PRINT_INCOMPLETE_base, PRINT_INCOMPLETE, HEAD, GCI_3, GCI_2, GCI_1, BZ5971-printing-apage, BZ5434-fox, BZ4492-merge, BZ4492-feature_horizontal_radioresponse, BZ4492-feature_Support_horizontal_radioresponse, BZ4492-Support_horizontal_radioresponse
Does coordinate pairs now.

#!/usr/bin/perl
#
# $Id: imagechoice.pl,v 1.4 2003/05/10 22:59:04 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
#
# LON-CAPA is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# LON-CAPA is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with LON-CAPA; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
# /home/httpd/cgi-bin/plot.gif
#
# http://www.lon-capa.org/
#
use strict;

$|=1;

my %data;
foreach (split/&/,$ENV{'QUERY_STRING'}) {
    my ($name,$value)=split/=/;
    $data{$name}=$value;
}
my $filename = $data{'file'};
my $formname = $data{'formname'};
my $formx = $data{'formx'};
my $formy = $data{'formy'};
my $mode=$data{'mode'};
my $formwidth = $data{'formwidth'};
my $formheight = $data{'formheight'};
my $formcoord=$data{'formcoord'};
# unescape filename
$filename =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;

#
# Single coordinate, defined - store it
#
if ((defined($data{'x'})) && (defined($data{'y'})) && 
    ($mode ne 'pairtwo') && ($mode ne 'pairthree')) {
    my $output='';
    if ($data{'formwidth'}) {
	$output.='opener.document.forms.'.$data{'formname'}.'.'.$data{'formwidth'}.
	    '.value=document.pickimg.width;';
    }
    if ($data{'formheight'}) {
	$output.='opener.document.forms.'.$data{'formname'}.'.'.$data{'formheight'}.
	    '.value=document.pickimg.height;';
    }
    if ($data{'formx'}) {
	$output.='opener.document.forms.'.$data{'formname'}.'.'.$data{'formx'}.
	    '.value='.$data{'x'}.';';
    }
    if ($data{'formy'}) {
	$output.='opener.document.forms.'.$data{'formname'}.'.'.$data{'formy'}.
	    '.value='.$data{'y'}.';';
    }
    print <<"ENDSUBM";
Content-type: text/html

<html>
<script>
    function submitthis() {
	$output
	self.close();
    }
</script>
<body bgcolor="#FFFFFF" onLoad="submitthis()">
<h3>Position Selected</h3>
<img name="pickimg" src="$filename" />
</body>
</html>
ENDSUBM
#
# Coordinate Pair, Second Coordinate
#
} elsif ($mode eq 'pairthree') {
    my $output='';
    my $outputpair="($data{'selx'},$data{'sely'})-($data{'x'},$data{'y'})";
    if ($data{'formwidth'}) {
	$output.='opener.document.forms.'.$data{'formname'}.'.'.$data{'formwidth'}.
	    '.value=document.pickimg.width;';
    }
    if ($data{'formheight'}) {
	$output.='opener.document.forms.'.$data{'formname'}.'.'.$data{'formheight'}.
	    '.value=document.pickimg.height;';
    }
    if ($data{'formcoord'}) {
	$output.='opener.document.forms.'.$data{'formname'}.'.'.$data{'formcoord'}.
	    '.value="'.$outputpair.'";';
    }
    print <<"ENDCOORDSUB";
Content-type: text/html

<html>
<script>
    function submitthis() {
	$output
	self.close();
    }
</script>
<body bgcolor="#FFFFFF" onLoad="submitthis()">
<h3>Coordinates Selected</h3>
<img name="pickimg" src="$filename" />
</body>
</html>
ENDCOORDSUB
#
# First and second call
#
} else {
    my $heading='Position';
    my $nextstage='';
    if ($mode eq 'pair') {
       $heading='First Coordinate';
       $nextstage='<input type="hidden" name="mode" value="pairtwo" />';
   } elsif ($mode eq 'pairtwo') {
       $heading='Second Coordinate';
       $nextstage=<<ENDNEXTSTAGE;
<input type="hidden" name="mode" value="pairthree" />
<input type="hidden" name="selx" value="$data{'x'}" />
<input type="hidden" name="sely" value="$data{'y'}" />
ENDNEXTSTAGE
   }
    print <<"END";
Content-type: text/html

<html>
<body bgcolor="#FFFFFF">
<h3>Select $heading on Image</h3>
<form>
<input type="hidden" name="formname" value="$formname" />
<input type="hidden" name="formx" value="$formx" />
<input type="hidden" name="formy" value="$formy" />
<input type="hidden" name="formcoord" value="$formcoord" />
<input type="hidden" name="formwidth" value="$formwidth" />
<input type="hidden" name="formheight" value="$formheight" />
<input type="hidden" name="file" value="$filename" />
$nextstage
<input type="image" src="$filename" />
</form>
</body>
</html>
END
}




FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>