[LON-CAPA-cvs] cvs: loncom /homework imageresponse.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Wed, 11 Feb 2004 21:59:34 -0000
albertel Wed Feb 11 16:59:34 2004 EDT
Modified files:
/loncom/homework imageresponse.pm
Log:
- support <gnuplot> images as defined images
Index: loncom/homework/imageresponse.pm
diff -u loncom/homework/imageresponse.pm:1.46 loncom/homework/imageresponse.pm:1.47
--- loncom/homework/imageresponse.pm:1.46 Wed Jan 28 15:00:26 2004
+++ loncom/homework/imageresponse.pm Wed Feb 11 16:59:34 2004
@@ -2,7 +2,7 @@
# The LearningOnline Network with CAPA
# image click response style
#
-# $Id: imageresponse.pm,v 1.46 2004/01/28 20:00:26 sakharuk Exp $
+# $Id: imageresponse.pm,v 1.47 2004/02/11 21:59:34 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -113,7 +113,7 @@
my $respid=$Apache::inputtags::response['-1'];
my $id=&Apache::loncommon::get_cgi_id();
my %x;
- $x{"cgi.$id.BGIMG"}=$image;
+ $x{"cgi.$id.BGIMG"}=&Apache::lonnet::escape($image);
my ($x,$y)=split(/:/,$Apache::lonhomework::history{"resource.$part.$respid.submission"});
#draws 2 xs on the image at the clicked location
#one in white and then one in red on top of the one in white
@@ -174,11 +174,8 @@
my $image=$Apache::response::foilgroup{"$name.image"};
&Apache::lonxml::debug("image is $image");
if ( $target eq 'web' && $image !~ /^http:/ ) {
- $image=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$image);
- if (&Apache::lonnet::repcopy($image) ne OK) {
- $image='/home/httpd/html/adm/lonKaputt/lonlogo_broken.gif';
- }
- }
+ $image=&clean_up_image($image);
+ }
&Apache::lonxml::debug("image is $image");
if ( &Apache::response::show_answer() ) {
if ($target eq 'tex') {
@@ -201,6 +198,25 @@
$temp++;
}
return $result;
+}
+
+sub clean_up_image {
+ my ($image)=@_;
+ if ($image =~ /\s*<img\s*/) {
+ ($image) = ($image =~ /src\s*=\s*\"([^\"]+)\"/i);
+ if ($image !~ /^http:/) {
+ $image=&Apache::lonnet::hreflocation('',$image);
+ }
+ if (!$image) {
+ $image='/home/httpd/html/adm/lonKaputt/lonlogo_broken.gif';
+ }
+ } else {
+ $image=&Apache::lonnet::filelocation($Apache::lonxml::pwd[-1],$image);
+ if (&Apache::lonnet::repcopy($image) ne OK) {
+ $image='/home/httpd/html/adm/lonKaputt/lonlogo_broken.gif';
+ }
+ }
+ return $image;
}
sub gradefoils {