version 1.1, 2004/01/09 23:22:19
|
version 1.2, 2004/01/12 19:53:54
|
Line 26 package Apache::imagechoice;
|
Line 26 package Apache::imagechoice;
|
use strict; |
use strict; |
use Apache::Constants qw(:common :http); |
use Apache::Constants qw(:common :http); |
|
|
# |
|
# Single coordinate, defined - store it |
|
# |
|
|
|
|
sub deletedata { |
|
my ($id)=@_; |
|
&Apache::lonnet::delenv("imagechoice\\.$id"); |
|
} |
|
|
sub closewindow { |
sub closewindow { |
my ($r,$output,$filename)=@_; |
my ($r,$output,$filename)=@_; |
Line 43 sub closewindow {
|
Line 44 sub closewindow {
|
</script> |
</script> |
<body bgcolor="#FFFFFF" onLoad="submitthis()"> |
<body bgcolor="#FFFFFF" onLoad="submitthis()"> |
<h3>Position Selected</h3> |
<h3>Position Selected</h3> |
<img name="pickimg" src="$filename" /> |
<!--<img name="pickimg" src="$filename" />--> |
</body> |
</body> |
</html> |
</html> |
ENDSUBM |
ENDSUBM |
Line 52 ENDSUBM
|
Line 53 ENDSUBM
|
sub storedata { |
sub storedata { |
my ($r,$mode,$filename,$id)=@_; |
my ($r,$mode,$filename,$id)=@_; |
|
|
my (undef,@coords)=split(':',$ENV{"cgi.$id.coords"}); |
my (undef,@coords)=split(':',$ENV{"imagechoice.$id.coords"}); |
|
|
my $output; |
my $output; |
|
|
if ($ENV{"cgi.$id.formwidth"}) { |
if ($ENV{"imagechoice.$id.formwidth"}) { |
$output.='opener.document.forms.'.$ENV{"cgi.$id.formname"}.'.'.$ENV{"cgi.$id.formwidth"}.'.value=document.pickimg.width;'; |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formwidth"}.'.value=document.pickimg.width;'; |
} |
} |
if ($ENV{"cgi.$id.formheight"}) { |
if ($ENV{"imagechoice.$id.formheight"}) { |
$output.='opener.document.forms.'.$ENV{"cgi.$id.formname"}.'.'.$ENV{"cgi.$id.formheight"}.'.value=document.pickimg.height;'; |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formheight"}.'.value=document.pickimg.height;'; |
} |
} |
|
|
if ((defined($ENV{"cgi.$id.x"})) && (defined($ENV{"cgi.$id.y"})) && |
if ((defined($ENV{"imagechoice.$id.x"})) && (defined($ENV{"imagechoice.$id.y"})) && |
($mode ne 'pairtwo') && ($mode ne 'pairthree')) { |
($mode ne 'pairtwo') && ($mode ne 'pairthree')) { |
my $output=''; |
my $output=''; |
if ($ENV{"cgi.$id.formx"}) { |
if ($ENV{"imagechoice.$id.formx"}) { |
$output.='opener.document.forms.'.$ENV{"cgi.$id.formname"}.'.'.$ENV{"cgi.$id.formx"}. |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formx"}. |
'.value='.$ENV{"cgi.$id.x"}.';'; |
'.value='.$ENV{"imagechoice.$id.x"}.';'; |
} |
} |
if ($ENV{"cgi.$id.formy"}) { |
if ($ENV{"imagechoice.$id.formy"}) { |
$output.='opener.document.forms.'.$ENV{"cgi.$id.formname"}.'.'.$ENV{"cgi.$id.formy"}. |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formy"}. |
'.value='.$ENV{"cgi.$id.y"}.';'; |
'.value='.$ENV{"imagechoice.$id.y"}.';'; |
} |
} |
} elsif ($mode eq 'pairthree') { |
} elsif ($mode eq 'pairthree') { |
my $output=''; |
my $output=''; |
my $outputpair='('.$ENV{"cgi.$id.selx"}.','.$ENV{"cgi.$id.sely"}.')-('.$ENV{"cgi.$id.x"}.','.$ENV{"cgi.$id.y"}.')'; |
my $outputpair='('.$ENV{"imagechoice.$id.selx"}.','.$ENV{"imagechoice.$id.sely"}.')-('.$ENV{"imagechoice.$id.x"}.','.$ENV{"imagechoice.$id.y"}.')'; |
|
|
if ($ENV{"cgi.$id.formcoord"}) { |
if ($ENV{"imagechoice.$id.formcoord"}) { |
$output.='opener.document.forms.'.$ENV{"cgi.$id.formname"}.'.'.$ENV{"cgi.$id.formcoord"}. |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formcoord"}. |
'.value="'.$outputpair.'";'; |
'.value="'.$outputpair.'";'; |
} |
} |
} elsif ($mode eq 'polygon') { |
} elsif ($mode eq 'polygon') { |
Line 88 sub storedata {
|
Line 89 sub storedata {
|
$coordstr.='('.shift(@coords).','.shift(@coords).')-'; |
$coordstr.='('.shift(@coords).','.shift(@coords).')-'; |
} |
} |
chop($coordstr); |
chop($coordstr); |
$output.='opener.document.forms.'.$ENV{"cgi.$id.formname"}.'.'.$ENV{"cgi.$id.formcoord"}.'.value="'.$coordstr.'";'; |
$output.='opener.document.forms.'.$ENV{"imagechoice.$id.formname"}.'.'.$ENV{"imagechoice.$id.formcoord"}.'.value="'.$coordstr.'";'; |
} |
} |
|
&deletedata($id); |
&closewindow($r,$output,$filename); |
&closewindow($r,$output,$filename); |
} |
} |
|
|
Line 113 sub getcoord {
|
Line 115 sub getcoord {
|
<h3>Select $heading on Image</h3> |
<h3>Select $heading on Image</h3> |
<form method="POST" action="/adm/imagechoice?token=$id"> |
<form method="POST" action="/adm/imagechoice?token=$id"> |
$nextstage |
$nextstage |
|
<input type="submit" name="cancel" value="Cancel" /> |
|
<br /> |
<input name="image" type="image" src="$filename" /> |
<input name="image" type="image" src="$filename" /> |
</form> |
</form> |
</body> |
</body> |
Line 123 END
|
Line 127 END
|
sub savecoord { |
sub savecoord { |
my ($id)=@_; |
my ($id)=@_; |
if (defined($ENV{"form.image.x"}) && defined($ENV{"form.image.y"})) { |
if (defined($ENV{"form.image.x"}) && defined($ENV{"form.image.y"})) { |
my $data=join(':',($ENV{"cgi.$id.coords"},$ENV{"form.image.x"}, |
my $data=join(':',($ENV{"imagechoice.$id.coords"},$ENV{"form.image.x"}, |
$ENV{"form.image.y"})); |
$ENV{"form.image.y"})); |
&Apache::lonnet::appenv("cgi.$id.coords"=>$data); |
&Apache::lonnet::appenv("imagechoice.$id.coords"=>$data); |
} |
} |
} |
} |
|
|
Line 153 sub drawX {
|
Line 157 sub drawX {
|
|
|
sub drawPolygon { |
sub drawPolygon { |
my ($id,$imid)=@_; |
my ($id,$imid)=@_; |
my (undef,@coords)=split(':',$ENV{"cgi.$id.coords"}); |
my (undef,@coords)=split(':',$ENV{"imagechoice.$id.coords"}); |
my $coordstr; |
my $coordstr; |
while (@coords) { |
while (@coords) { |
$coordstr.='('.shift(@coords).','.shift(@coords).')-'; |
$coordstr.='('.shift(@coords).','.shift(@coords).')-'; |
Line 174 sub drawPolygon {
|
Line 178 sub drawPolygon {
|
sub drawimage { |
sub drawimage { |
my ($r,$mode,$filename,$id)=@_; |
my ($r,$mode,$filename,$id)=@_; |
my $imid=&Apache::loncommon::get_cgi_id(); |
my $imid=&Apache::loncommon::get_cgi_id(); |
my (undef,@coords)=split(':',$ENV{"cgi.$id.coords"}); |
my (undef,@coords)=split(':',$ENV{"imagechoice.$id.coords"}); |
if (scalar(@coords) < 2) { return $filename; } |
if (scalar(@coords) < 2) { return &Apache::lonnet::hreflocation('',$filename); } |
$filename=&Apache::lonnet::filelocation('',$filename); |
|
my %data; |
my %data; |
$data{"cgi.$imid.BGIMG"}=$filename; |
$data{"cgi.$imid.BGIMG"}=$filename; |
my $x=@coords[-2]; |
my $x=@coords[-2]; |
Line 192 sub handler {
|
Line 195 sub handler {
|
$r->content_type('text/html'); |
$r->content_type('text/html'); |
my %data; |
my %data; |
my (undef,$id) = split(/=/,$ENV{'QUERY_STRING'}); |
my (undef,$id) = split(/=/,$ENV{'QUERY_STRING'}); |
my $filename = $ENV{"cgi.$id.file"}; |
my $filename = &Apache::lonnet::unescape($ENV{"imagechoice.$id.file"}); |
my $formname = $ENV{"cgi.$id.formname"}; |
my $formname = $ENV{"imagechoice.$id.formname"}; |
my $mode=$ENV{"cgi.$id.mode"}; |
my $mode=$ENV{"imagechoice.$id.mode"}; |
$filename=&Apache::lonnet::unescape($filename); |
if ($ENV{'form.cancel'} eq 'Cancel') { |
|
&deletedata($id); |
|
&closewindow($r,'',$filename); |
|
} |
&savecoord($id); |
&savecoord($id); |
my $imurl=&drawimage($r,$mode,$filename,$id); |
my $imurl=&drawimage($r,$mode,$filename,$id); |
if ($ENV{'form.finish'} eq 'Finish') { |
if ($ENV{'form.finish'} eq 'Finish') { |