--- loncom/imspackages/imsprocessor.pm 2005/07/12 16:05:59 1.22 +++ loncom/imspackages/imsprocessor.pm 2005/07/20 05:13:46 1.27 @@ -2095,7 +2095,7 @@ sub parse_webct4_questionDB { $$settings{$id}{$numid}{toltype} = $attr->{type}; } if ("@state" eq "questestinterop section item resprocessing itemproc_extension webct:x_webct_v01_autocalculate webct:x_webct_v01_unit") { - my $unitid = $attr->{ident}; + $unitid = $attr->{ident}; %{$$settings{$id}{$numid}{$unitid}} = (); push(@{$$settings{$id}{$numid}{units}},$unitid); $$settings{$id}{$numid}{$unitid}{value} = $attr->{value}; @@ -2864,13 +2864,10 @@ sub write_webct4_questions { $allfeedback .= $feedback; } if ($$settings{$id}{texttype} eq 'text/html') { - $$settings{$id}{text} = &HTML::Entities::decode($$settings{$id}{text}); + $$settings{$id}{text} =~ s/(\&)(nbsp|gt|lt)(?!;)/$1$2;$3/gi; $$settings{$id}{text} = &Apache::loncleanup::htmlclean($$settings{$id}{text}); - $$settings{$id}{text} =~ s#(]+)(/?>)#$1../../resfiles/$2 />#gi; + $$settings{$id}{text} =~ s#(]+?)(/?>)#$1../../resfiles/$2 />#gi; $$settings{$id}{text} =~ s#<([bh])r>#<$1r />#g; -# $$settings{$id}{text} =~ s#

#

#g; -# $$settings{$id}{text} =~ s#

#

#; -# $$settings{$id}{text} =~ s#

##g; $$settings{$id}{text} =~ s#

#

#g; $$settings{$id}{text} =~ s#

##g; } @@ -3060,7 +3057,7 @@ sub write_webct4_questions { } else { $output .= qq| - + |; } } else { @@ -3251,11 +3248,34 @@ sub write_webct4_questions { } } } elsif ($$settings{$id}{class} eq 'numerical') { + my %mathfns = ( + 'abs' => 'abs', + 'acos' => 'acos', + 'asin' => 'asin', + 'atan' => 'atan', + 'ceil' => 'ceil', + 'cos' => 'cos', + 'exp' => 'exp', + 'fact' => 'factorial', + 'floor' => 'floor', + 'int' => 'int', + 'ln' => 'log', + 'log' => 'log', + 'max' => 'max', + 'min' => 'min', + 'round' => 'roundto', + 'sin' => 'sin', + 'sqrt' => 'sqrt', + 'tan' => 'tan', + ); + my $scriptblock = qq|