--- loncom/homework/imageresponse.pm 2008/02/01 22:05:45 1.92
+++ loncom/homework/imageresponse.pm 2009/08/03 10:40:00 1.98
@@ -2,7 +2,7 @@
# The LearningOnline Network with CAPA
# image click response style
#
-# $Id: imageresponse.pm,v 1.92 2008/02/01 22:05:45 raeburn Exp $
+# $Id: imageresponse.pm,v 1.98 2009/08/03 10:40:00 foxr Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -29,6 +29,87 @@
#FIXME LATER assumes multiple possible submissions but only one is possible
#currently
+
+=head1 NAME
+
+Apache::imageresponse
+
+=head1 SYNOPSIS
+
+Coordinates the response to clicking an image.
+
+This is part of the LearningOnline Network with CAPA project
+described at http://www.lon-capa.org.
+
+=head1 SUBROUTINES
+
+=over
+
+=item start_imageresponse()
+
+=item end_imageresponse()
+
+=item start_foilgroup()
+
+=item getfoilcounts()
+
+=item whichfoils()
+
+=item prep_image()
+
+=item draw_image()
+
+=item displayfoils()
+
+=item format_prior_response()
+
+=item display_answers()
+
+=item clean_up_image()
+
+=item gradefoils()
+
+=item stringify_submission()
+
+=item get_submission()
+
+=item end_foilgroup()
+
+=item start_conceptgroup()
+
+=item end_conceptgroup()
+
+=item insert_foil()
+
+=item start_foil()
+
+=item end_foil()
+
+=item start_text()
+
+=item end_text()
+
+=item start_image()
+
+=item end_image()
+
+=item start_rectangle()
+
+=item grade_rectangle()
+
+=item end_rectangle()
+
+=item start_polygon()
+
+=item grade_polygon()
+
+=item end_polygon()
+
+=back
+
+=cut
+
+
package Apache::imageresponse;
use strict;
use Image::Magick();
@@ -106,7 +187,6 @@ sub end_imageresponse {
}
&Apache::response::end_response();
-
return $result;
}
@@ -223,7 +303,7 @@ sub draw_image {
}
}
}
- &Apache::lonnet::appenv(%x);
+ &Apache::lonnet::appenv(\%x);
return $id;
}
@@ -239,7 +319,7 @@ sub displayfoils {
my $image=$Apache::response::foilgroup{"$name.image"};
&Apache::lonxml::debug("image is $image");
if ( ($target eq 'web' || $target eq 'answer')
- && $image !~ /^http:/ ) {
+ && $image !~ /^https?\:/ ) {
$image=&clean_up_image($image);
}
push(@images,$image);
@@ -305,7 +385,7 @@ sub display_answers {
my $image=$Apache::response::foilgroup{"$name.image"};
&Apache::lonxml::debug("image is $image");
if ( ($target eq 'web' || $target eq 'answer')
- && $image !~ /^http:/ ) {
+ && $image !~ /^https?\:/ ) {
$image = &clean_up_image($image);
}
my $token=&prep_image($image,'answeronly',$name);
@@ -320,7 +400,7 @@ sub clean_up_image {
my ($image)=@_;
if ($image =~ /\s*[_1] appears more than once. Foil names need to be unique.",$name));
+ &Apache::lonxml::error(&mt("Foil name [_1] appears more than once. Foil names need to be unique."
+ ,''.$name.''));
}
$Apache::response::foilnames{$name}++;
if ( $Apache::imageresponse::conceptgroup
@@ -634,11 +715,13 @@ sub end_image {
my ($commentline, $restofstuff) = split(/\n/, $src);
$graphinclude = $src;
$graphinclude =~ s/^$commentline//;
- } else {
+ } elsif (!($src =~ /\\/)) {
my ($path,$file) = &Apache::londefdef::get_eps_image($src);
my ($height_param,$width_param)=
&Apache::londefdef::image_size($src,0.3,$parstack,$safeeval);
$graphinclude = '\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'}';
+ } else {
+ $graphinclude = $src; # Already fully formed.
}
$Apache::response::foilgroup{"$name.image"} ='\vskip 0 mm \noindent '.$graphinclude;
}