[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 {