version 1.107, 2002/08/26 20:42:36
|
version 1.111, 2002/09/04 02:48:31
|
Line 387 sub end_problem {
|
Line 387 sub end_problem {
|
$status ne 'UNCHECKEDOUT') { |
$status ne 'UNCHECKEDOUT') { |
# if part is zero, no <part>s existed, so we need show the current |
# if part is zero, no <part>s existed, so we need show the current |
# grading status |
# grading status |
my $gradesatement = &Apache::inputtags::gradestatus($Apache::inputtags::part); |
my $gradestatus = &Apache::inputtags::gradestatus($Apache::inputtags::part); |
if ($target eq 'tex') { |
#FIXME this is ugly we should just generate tex in inputtags |
$gradesatement =~ s/<table>//; |
if ($target eq 'tex') { $gradestatus=&html_to_tex($gradestatus); } |
$gradesatement =~ s/<\/table>//; |
$result.= $gradestatus; |
$gradesatement =~ s/<tr([^>]*)>//g; |
|
$gradesatement =~ s/<\/tr>//g; |
|
$gradesatement =~ s/<td([^>]*)>//g; |
|
$gradesatement =~ s/<\/td>//g; |
|
$gradesatement =~ s/<b>/\\textbf{/g; |
|
$gradesatement =~ s/<\/b>/}/g; |
|
$gradesatement =~ s/<br \/>/\\vskip 0 mm /g; |
|
$gradesatement =~ s/<input([^>]*)>//g; |
|
} |
|
$result.= $gradesatement; |
|
} |
} |
if ( |
if ( |
(($target eq 'web' || $target eq 'tex') && ($ENV{'request.state'} ne 'construct')) || |
(($target eq 'web' || $target eq 'tex') && ($ENV{'request.state'} ne 'construct')) || |
Line 442 sub end_problem {
|
Line 432 sub end_problem {
|
return $result; |
return $result; |
} |
} |
|
|
|
#FIXME I am ugly shoot me |
|
sub html_to_tex { |
|
my ($string)=@_; |
|
$string =~ s/<table>//; |
|
$string =~ s/<\/table>//; |
|
$string =~ s/<tr([^>]*)>//g; |
|
$string =~ s/<\/tr>//g; |
|
$string =~ s/<td([^>]*)>//g; |
|
$string =~ s/<\/td>//g; |
|
$string =~ s/<b>/\\textbf{/g; |
|
$string =~ s/<\/b>/}/g; |
|
$string =~ s/<br \/>/\\vskip 0 mm /g; |
|
$string =~ s/<input([^>]*)>//g; |
|
return $string; |
|
} |
|
|
sub start_library { |
sub start_library { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($result,$head_tag_start,$body_tag_start,$form_tag_start)= |
my ($result,$head_tag_start,$body_tag_start,$form_tag_start); |
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
|
if ($target eq 'edit') { |
if ($target eq 'edit') { |
|
($result,$head_tag_start,$body_tag_start,$form_tag_start)= |
|
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
$result.=$head_tag_start."</head>".$body_tag_start.$form_tag_start. |
$result.=$head_tag_start."</head>".$body_tag_start.$form_tag_start. |
&problem_edit_header(); |
&problem_edit_header(); |
my $temp=&Apache::edit::insertlist($target,$token); |
my $temp=&Apache::edit::insertlist($target,$token); |
Line 454 sub start_library {
|
Line 462 sub start_library {
|
} elsif ($target eq 'modified') { |
} elsif ($target eq 'modified') { |
$result=$token->[4]; |
$result=$token->[4]; |
$result.=&Apache::edit::handle_insert(); |
$result.=&Apache::edit::handle_insert(); |
} elsif ($target eq 'web' && $ENV{'request.state'} eq "construct" ) { |
} elsif ($target eq 'web' && $$tagstack[0] ne 'problem' && |
|
$ENV{'request.state'} eq "construct" ) { |
|
($result,$head_tag_start,$body_tag_start,$form_tag_start)= |
|
&page_start($target,$token,$tagstack,$parstack,$parser,$safeeval); |
my $name=&get_resource_name($parstack,$safeeval); |
my $name=&get_resource_name($parstack,$safeeval); |
my $rndseed=&setup_rndseed($safeeval); |
my $rndseed=&setup_rndseed($safeeval); |
$result.="$head_tag_start<title>$name</title></head> |
$result.="$head_tag_start<title>$name</title></head> |
Line 526 sub end_while {
|
Line 537 sub end_while {
|
return ""; |
return ""; |
} |
} |
|
|
# <randomlist> |
# <randomlist show="1"> |
# <tag1>..</tag1> |
# <tag1>..</tag1> |
# <tag2>..</tag2> |
# <tag2>..</tag2> |
# <tag3>..</tag3> |
# <tag3>..</tag3> |
Line 535 sub end_while {
|
Line 546 sub end_while {
|
sub start_randomlist { |
sub start_randomlist { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result; |
my $result; |
if ($target eq 'answer' || $target eq 'grade' || $target eq 'web') { |
if ($target eq 'answer' || $target eq 'grade' || $target eq 'web' || |
|
$target eq 'tex') { |
my $body= &Apache::lonxml::get_all_text("/randomlist",$$parser[$#$parser]); |
my $body= &Apache::lonxml::get_all_text("/randomlist",$$parser[$#$parser]); |
my $b_parser= HTML::TokeParser->new(\$body); |
my $b_parser= HTML::TokeParser->new(\$body); |
my $b_tok; |
my $b_tok; |
Line 645 sub end_part {
|
Line 657 sub end_part {
|
if ( $target eq 'grade' && $status eq 'CAN_ANSWER') { |
if ( $target eq 'grade' && $status eq 'CAN_ANSWER') { |
return &Apache::inputtags::grade; |
return &Apache::inputtags::grade; |
} |
} |
if ($target eq 'web') { |
if ($target eq 'web' || $target eq 'tex' ) { |
return &Apache::inputtags::gradestatus($Apache::inputtags::part); |
my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part); |
|
#FIXME this is ugly we should just generate tex in inputtags |
|
if ($target eq 'tex') { $gradestatus=&html_to_tex($gradestatus); } |
|
return $gradestatus; |
} |
} |
return ''; |
return ''; |
} |
} |