version 1.79, 2006/11/06 11:56:23
|
version 1.82, 2007/04/18 01:06:22
|
Line 132 sub prep_image {
|
Line 132 sub prep_image {
|
my ($image,$mode,$name)=@_; |
my ($image,$mode,$name)=@_; |
my $part=$Apache::inputtags::part; |
my $part=$Apache::inputtags::part; |
my $respid=$Apache::inputtags::response['-1']; |
my $respid=$Apache::inputtags::response['-1']; |
|
my ($x,$y)=split(/:/,$Apache::lonhomework::history{"resource.$part.$respid.submission"}); |
|
&draw_image($mode,$image,$x,$y,$Apache::response::foilgroup{"$name.area"}); |
|
} |
|
|
|
sub draw_image { |
|
my ($mode,$image,$x,$y,$areas) = @_; |
|
|
my $id=&Apache::loncommon::get_cgi_id(); |
my $id=&Apache::loncommon::get_cgi_id(); |
|
|
my (%x,$i); |
my (%x,$i); |
$x{"cgi.$id.BGIMG"}=&escape($image); |
$x{"cgi.$id.BGIMG"}=&escape($image); |
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) && $x =~/\S/ |
if (defined($x) && $x =~/\S/ |
&& defined($y) && $y =~/\S/ |
&& defined($y) && $y =~/\S/ |
&& !&Apache::response::show_answer() |
&& ($mode eq 'submission' || !&Apache::response::show_answer()) |
&& $mode ne 'answeronly') { |
&& $mode ne 'answeronly') { |
my $length = 6; |
my $length = 6; |
my $width = 1; |
my $width = 1; |
Line 170 sub prep_image {
|
Line 179 sub prep_image {
|
if ($mode eq 'answer' || $mode eq 'answeronly') { |
if ($mode eq 'answer' || $mode eq 'answeronly') { |
my $width = 1; |
my $width = 1; |
my $extrawidth = 2; |
my $extrawidth = 2; |
my @areas = @{ $Apache::response::foilgroup{"$name.area"} }; |
foreach my $area (@{ $areas }) { |
foreach my $area (@areas) { |
|
if ($area=~/^rectangle:/) { |
if ($area=~/^rectangle:/) { |
$x{"cgi.$id.OBJTYPE"}.='RECTANGLE:'; |
$x{"cgi.$id.OBJTYPE"}.='RECTANGLE:'; |
$i=$x{"cgi.$id.OBJCOUNT"}++; |
$i=$x{"cgi.$id.OBJCOUNT"}++; |
Line 203 sub displayfoils {
|
Line 211 sub displayfoils {
|
my $result =''; |
my $result =''; |
my $name; |
my $name; |
my $temp=1; |
my $temp=1; |
|
my @images; |
foreach $name (@whichopt) { |
foreach $name (@whichopt) { |
$result.=$Apache::response::foilgroup{"$name.text"}; |
$result.=$Apache::response::foilgroup{"$name.text"}; |
&Apache::lonxml::debug("Text is $result"); |
&Apache::lonxml::debug("Text is $result"); |
Line 211 sub displayfoils {
|
Line 220 sub displayfoils {
|
&Apache::lonxml::debug("image is $image"); |
&Apache::lonxml::debug("image is $image"); |
if ( $target eq 'web' && $image !~ /^http:/ ) { |
if ( $target eq 'web' && $image !~ /^http:/ ) { |
$image=&clean_up_image($image); |
$image=&clean_up_image($image); |
} |
} |
|
push(@images,$image); |
&Apache::lonxml::debug("image is $image"); |
&Apache::lonxml::debug("image is $image"); |
if ( &Apache::response::show_answer() ) { |
if ( &Apache::response::show_answer() ) { |
if ($target eq 'tex') { |
if ($target eq 'tex') { |
Line 233 sub displayfoils {
|
Line 243 sub displayfoils {
|
} |
} |
$temp++; |
$temp++; |
} |
} |
|
if ($target eq 'web') { |
|
&Apache::response::setup_prior_tries_hash(\&format_prior_response, |
|
[\@images]); |
|
} |
return $result; |
return $result; |
} |
} |
|
|
|
sub format_prior_response { |
|
my ($mode,$answer,$other_data) = @_; |
|
my ($x,$y)=split(/:/,$answer); |
|
my $images = $other_data->[0]; |
|
|
|
my $token = &draw_image('submission',$images->[0],$x,$y); |
|
|
|
return "<img class=\"LC_prior_image\" src=\"/adm/randomlabel.png?token=$token\" />"; |
|
|
|
} |
|
|
sub display_answers { |
sub display_answers { |
my ($target,$whichopt)=@_; |
my ($target,$whichopt)=@_; |
|
|
Line 346 sub end_foilgroup {
|
Line 371 sub end_foilgroup {
|
|
|
if ($target eq 'web' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'tex') { |
$result=&displayfoils($target,@whichopt); |
$result=&displayfoils($target,@whichopt); |
|
$Apache::lonxml::post_evaluate=0; |
} elsif ($target eq 'grade') { |
} elsif ($target eq 'grade') { |
if ( defined $env{'form.submitted'}) { &gradefoils(@whichopt); } |
if ( defined $env{'form.submitted'}) { &gradefoils(@whichopt); } |
} elsif ( $target eq 'analyze') { |
} elsif ( $target eq 'analyze') { |
Line 544 sub end_image {
|
Line 570 sub end_image {
|
$graphinclude =~ s/^$commentline//; |
$graphinclude =~ s/^$commentline//; |
} else { |
} else { |
my ($path,$file) = &Apache::londefdef::get_eps_image($src); |
my ($path,$file) = &Apache::londefdef::get_eps_image($src); |
$file =~ s/\ /\_/g; |
|
my ($height_param,$width_param)= |
my ($height_param,$width_param)= |
&Apache::londefdef::image_size($src,0.3,$parstack,$safeeval); |
&Apache::londefdef::image_size($src,0.3,$parstack,$safeeval); |
$graphinclude = '\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'}'; |
$graphinclude = '\graphicspath{{'.$path.'}}\includegraphics[width='.$width_param.' mm]{'.$file.'}'; |