Diff for /loncom/homework/imageresponse.pm between versions 1.40 and 1.42.2.1

version 1.40, 2003/11/10 23:29:27 version 1.42.2.1, 2004/01/15 22:25:31
Line 104  sub whichfoils { Line 104  sub whichfoils {
 }  }
   
 sub prep_image {  sub prep_image {
     my ($image)=@_;      my ($image,$mode,$name)=@_;
     my $part=$Apache::inputtags::part;      my $part=$Apache::inputtags::part;
     my $id=$Apache::inputtags::response['-1'];      my $respid=$Apache::inputtags::response['-1'];
     my $token=$Apache::lonxml::curdepth.'_'.$$;      my $id=&Apache::loncommon::get_cgi_id();
     my $args="BGIMG=".$image;      my %x;
     &Apache::lonxml::debug("args is $args image is $image");      $x{"cgi.$id.BGIMG"}=$image;
     my ($x,$y)=split(/:/,$Apache::lonhomework::history{"resource.$part.$id.submission"});      my ($x,$y)=split(/:/,$Apache::lonhomework::history{"resource.$part.$respid.submission"});
     #draws 2 xs on the image at the clicked location      #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      #one in white and then one in red on top of the one in white
     if (defined($x) && defined($y)) {      if (defined($x) && defined($y)) {
  $args.="&LINECOUNT=4";   $x{"cgi.$id.LINECOUNT"}=4;
  my $length = 6;   my $length = 6;
  my $width = 1;   my $width = 1;
  my $extrawidth = 2;   my $extrawidth = 2;
  $args.="&LINEW0=".($width+$extrawidth);   $x{"cgi.$id.LINE0"}=
  $args.="&LINEC0=FFFFFF";      join(':',(($x-$length),($y-$length),($x+$length),($y+$length),
  $args.="&LINEX10=".($x-$length)."&LINEY10=".($y-$length);        "FFFFFF",($width+$extrawidth)));
  $args.="&LINEX20=".($x+$length)."&LINEY20=".($y+$length);   $x{"cgi.$id.LINE1"}=
  $args.="&LINEW1=".($width+$extrawidth);      join(':',(($x-$length),($y+$length),($x+$length),($y-$length),
  $args.="&LINEC1=FFFFFF";        "FFFFFF",($width+$extrawidth)));
  $args.="&LINEX11=".($x-$length)."&LINEY11=".($y+$length);   $x{"cgi.$id.LINE2"}=
  $args.="&LINEX21=".($x+$length)."&LINEY21=".($y-$length);      join(':',(($x-$length),($y-$length),($x+$length),($y+$length),
  $args.="&LINEW2=$width";        "FF0000",($width)));
  $args.="&LINEC2=FF0000";   $x{"cgi.$id.LINE3"}=
  $args.="&LINEX12=".($x-$length)."&LINEY12=".($y-$length);      join(':',(($x-$length),($y+$length),($x+$length),($y-$length),
  $args.="&LINEX22=".($x+$length)."&LINEY22=".($y+$length);        "FF0000",($width)));
  $args.="&LINEW3=$width";      }
  $args.="&LINEC3=FF0000";      if ($mode eq 'answer') {
  $args.="&LINEX13=".($x-$length)."&LINEY13=".($y+$length);   my $width = 1;
  $args.="&LINEX23=".($x+$length)."&LINEY23=".($y-$length);   my $extrawidth = 2;
     }   my @areas = @{ $Apache::response::foilgroup{"$name.area"} };
     &Apache::lonxml::debug("args is $args image is $image");   foreach my $area (@areas) {
     &Apache::lonnet::appenv(("imagerequest.$token"=>      my ($x1,$y1,$x2,$y2)=
      &Apache::lonnet::escape($args)));   ($area=~m/rectangle:\(([0-9]+),([0-9]+)\)\-\(([0-9]+),([0-9]+)\)/);
     return $token;      my $i=$x{"cgi.$id.BOXCOUNT"}++;
       $x{"cgi.$id.BOX$i"}=join(':',($x1,$y1,$x2,$y2,"FFFFFF",
     ($width+$extrawidth)));
       $i=$x{"cgi.$id.BOXCOUNT"}++;
       $x{"cgi.$id.BOX$i"}=join(':',($x1,$y1,$x2,$y2,"00FF00",$width));
    }
       }
       &Apache::lonnet::appenv(%x);
       return $id;
 }  }
   
 sub displayfoils {  sub displayfoils {
Line 163  sub displayfoils { Line 171  sub displayfoils {
     if ($target eq 'tex') {      if ($target eq 'tex') {
  $result.=$Apache::response::foilgroup{"$name.image"}."\\vskip 0 mm \n";   $result.=$Apache::response::foilgroup{"$name.image"}."\\vskip 0 mm \n";
     } else {      } else {
  my $token=&prep_image($image);   my $token=&prep_image($image,'answer',$name);
  $result.="<img src=\"/adm/randomlabel.png?token=$token\" /><br />\n";   $result.="<img src=\"/adm/randomlabel.png?token=$token\" /><br />\n";
     }      }
  } else {   } else {
Line 451  sub end_image { Line 459  sub end_image {
     my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat";      my $filename = "/home/httpd/prtspool/$ENV{'user.name'}_$ENV{'user.domain'}_printout.dat";
     $temp_file = Apache::File->new('>>'.$filename);       $temp_file = Apache::File->new('>>'.$filename); 
     print $temp_file "$src\n";      print $temp_file "$src\n";
     $Apache::response::foilgroup{"$name.image"} ='\vskip 0 mm \graphicspath{{/home/httpd/prtspool/}}\includegraphics[width='.$width_param.' mm]{'.$file.'} ';      $newsrc=~s/\/home\/httpd\/html\/res//;
       $newsrc=~s/\/home\/([^\/]*)\/public_html\//\/$1\//;
       $newsrc=~s/\/\.\//\//;
       $newsrc=~s/\/([^\/]+)\.(ps|eps)/\//;
       $Apache::response::foilgroup{"$name.image"} ='\vskip 0 mm \graphicspath{{/home/httpd/prtspool'.$newsrc.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'} ';
  }   }
     }       } 
     return $result;      return $result;

Removed from v.1.40  
changed lines
  Added in v.1.42.2.1


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