version 1.33, 2001/02/19 21:02:59
|
version 1.36, 2001/05/04 21:21:45
|
Line 1
|
Line 1
|
# The LearningOnline Network with CAPA # <script> definiton |
# The LearningOnline Network with CAPA |
|
# definition of tags that give a structure to a document |
# 2/19 Guy |
# 2/19 Guy |
package Apache::structuretags; |
package Apache::structuretags; |
|
|
Line 6 use strict;
|
Line 7 use strict;
|
use Apache::lonnet; |
use Apache::lonnet; |
|
|
sub BEGIN { |
sub BEGIN { |
&Apache::lonxml::register('Apache::structuretags',('block','while','randomlist','problem','web','tex','part','preduedate','postanswerdate','solved','notsolved')); |
&Apache::lonxml::register('Apache::structuretags',('block','while','randomlist','problem','web','tex','part','preduedate','postanswerdate','solved','notsolved','startouttext','endouttext')); |
} |
} |
|
|
sub start_web { |
sub start_web { |
Line 45 sub start_problem {
|
Line 46 sub start_problem {
|
&Apache::run::run($expression,$safeeval); |
&Apache::run::run($expression,$safeeval); |
my $status; |
my $status; |
my $datemsg; |
my $datemsg; |
if ($target ne 'meta') { |
|
|
my $result=&Apache::londefdef::start_html($target,$token,$parstack,$parser,$safeeval); |
|
|
|
if ($target eq 'web' || $target eq 'grade') { |
($status,$datemsg) = &Apache::lonhomework::check_date('0'); |
($status,$datemsg) = &Apache::lonhomework::check_date('0'); |
push (@Apache::inputtags::status,$status); |
push (@Apache::inputtags::status,$status); |
my $expression='$external::datestatus="'.$status.'";'; |
my $expression='$external::datestatus="'.$status.'";'; |
Line 54 sub start_problem {
|
Line 58 sub start_problem {
|
if ( $status eq 'CLOSED' ) { |
if ( $status eq 'CLOSED' ) { |
my $bodytext=&Apache::lonxml::get_all_text("/problem",$$parser[$#$parser]); |
my $bodytext=&Apache::lonxml::get_all_text("/problem",$$parser[$#$parser]); |
if ( $target eq "web" ) { |
if ( $target eq "web" ) { |
return "<body bgcolor=\"#FFFFFF\"> <br />Problem is not open to be viewed. The problem $datemsg<br />"; |
return $result."<body bgcolor=\"#FFFFFF\"> <br />Problem is not open to be viewed. The problem $datemsg<br />"; |
} |
} |
} |
} |
} |
} |
Line 69 sub start_problem {
|
Line 73 sub start_problem {
|
$Apache::lonhomework::name=$name; |
$Apache::lonhomework::name=$name; |
if ($status eq 'CAN_ANSWER') { |
if ($status eq 'CAN_ANSWER') { |
# create a page header and exit |
# create a page header and exit |
return "<title>$name</title>\n<body bgcolor=\"#FFFFFF\">\n<form name=\"lonhomework\" method=\"POST\" action=\"".$ENV{'request.uri'}."\">".'<input type="hidden" name="submitted" value="yes" />'; |
$result.="<head><title>$name</title></head>\n |
|
<body bgcolor=\"#FFFFFF\">\n |
|
<form name=\"lonhomework\" method=\"POST\" action=\"".$ENV{'request.uri'}."\">". |
|
'<input type="hidden" name="submitted" value="yes" />'; |
|
if ($ENV{'request.state'} eq "construct") { |
|
$result.='<input type="hidden" name="problemmode" value="View" /> |
|
<input type="submit" name="problemmode" value="Edit" /><hr />'; |
|
} |
|
return $result; |
} elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' || $status eq 'CLOSED') { |
} elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' || $status eq 'CLOSED') { |
return "<title>$name</title>\n<body bgcolor=\"#FFFFFF\">\n"; |
return $result."<title>$name</title>\n<body bgcolor=\"#FFFFFF\">\n"; |
} |
} |
} |
} |
|
if ($target eq 'edit') { |
|
$result.='<body bgcolor="#FFFFFF"> |
|
<form name="lonhomework" method="POST" action="'.$ENV{'request.uri'}.'"> |
|
<input type="hidden" name="submitted" value="edit" /> |
|
<input type="hidden" name="problemmode" value="Edit" /> |
|
<input type="submit" name="problemmode" value="View" /> |
|
<input type="submit" name="Undo" value="undo" /> <hr /> |
|
'; |
|
my $temp=&Apache::edit::insertlist($token,$target); |
|
&Apache::lonxml::debug("edit gave me $temp"); |
|
$result.=$temp; |
|
return $result; |
|
} |
return ''; |
return ''; |
} |
} |
|
|
Line 81 sub end_problem {
|
Line 106 sub end_problem {
|
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my $result=''; |
my $result=''; |
my $status=$Apache::inputtags::status['-1']; |
my $status=$Apache::inputtags::status['-1']; |
unless ($target eq 'meta') { |
if ($target eq 'grade' || $target eq'web' ) { |
if ( $target eq 'grade' && $Apache::inputtags::part eq '0' && |
if ( $target eq 'grade' && $Apache::inputtags::part eq '0' && |
$status eq 'CAN_ANSWER') { |
$status eq 'CAN_ANSWER') { |
# if part is zero, no <part>s existed, so we need to the grading |
# if part is zero, no <part>s existed, so we need to the grading |
Line 98 sub end_problem {
|
Line 123 sub end_problem {
|
$result.="</body>\n"; |
$result.="</body>\n"; |
} |
} |
} |
} |
} else { |
} |
|
if ($target eq 'meta') { |
if ($Apache::inputtags::part eq '0') { |
if ($Apache::inputtags::part eq '0') { |
|
|
$result=&Apache::response::mandatory_part_meta; |
$result=&Apache::response::mandatory_part_meta; |
} |
} |
} |
} |
|
if ($target eq 'edit') { |
|
&Apache::lonxml::debug("in end_problem with $target, edit"); |
|
$result='<br /><input type="submit" name="submit" value="Submit Changes" />'; |
|
} |
return $result; |
return $result; |
} |
} |
|
|
Line 248 sub end_part {
|
Line 279 sub end_part {
|
|
|
sub start_preduedate { |
sub start_preduedate { |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
if ($target ne 'meta') { |
if ($target eq 'web' || $target eq 'grade') { |
if ($Apache::inputtags::status['-1'] ne 'CAN_ANSWER' && |
if ($Apache::inputtags::status['-1'] ne 'CAN_ANSWER' && |
$Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER' ) { |
$Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER' ) { |
&Apache::lonxml::get_all_text("/preduedate",$$parser[$#$parser]); |
&Apache::lonxml::get_all_text("/preduedate",$$parser[$#$parser]); |
Line 263 sub end_preduedate {
|
Line 294 sub end_preduedate {
|
|
|
sub start_postanswerdate { |
sub start_postanswerdate { |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
if ($target ne 'meta') { |
if ($target eq 'web' || $target eq 'grade') { |
if ($Apache::inputtags::status['-1'] ne 'SHOW_ANSWER') { |
if ($Apache::inputtags::status['-1'] ne 'SHOW_ANSWER') { |
&Apache::lonxml::get_all_text("/postanswerdate",$$parser[$#$parser]); |
&Apache::lonxml::get_all_text("/postanswerdate",$$parser[$#$parser]); |
} |
} |
Line 277 sub end_postanswerdate {
|
Line 308 sub end_postanswerdate {
|
|
|
sub start_notsolved { |
sub start_notsolved { |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
if ($target ne 'meta') { |
if ($target eq 'web' || $target eq 'grade') { |
my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; |
my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; |
&Apache::lonxml::debug("not solved has :$gradestatus:"); |
&Apache::lonxml::debug("not solved has :$gradestatus:"); |
if ($gradestatus =~ /^correct/) { |
if ($gradestatus =~ /^correct/) { |
Line 294 sub end_notsolved {
|
Line 325 sub end_notsolved {
|
|
|
sub start_solved { |
sub start_solved { |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
if ($target ne 'meta') { |
if ($target eq 'web' || $target eq 'grade') { |
my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; |
my $gradestatus=$Apache::lonhomework::history{"resource.$Apache::inputtags::part.solved"}; |
if ($gradestatus !~ /^correct/) { |
if ($gradestatus !~ /^correct/) { |
&Apache::lonxml::get_all_text("/solved",$$parser[$#$parser]); |
&Apache::lonxml::get_all_text("/solved",$$parser[$#$parser]); |
Line 306 sub start_solved {
|
Line 337 sub start_solved {
|
sub end_solved { |
sub end_solved { |
return ''; |
return ''; |
} |
} |
|
|
|
sub start_startouttext { |
|
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
|
my @result=(''.''); |
|
if ($target eq 'edit' || $target eq 'modified' ) { @result=('','no'); } |
|
return (@result); |
|
} |
|
sub end_startouttext { |
|
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
|
my $result=''; |
|
my $text=''; |
|
|
|
if ($target eq 'edit') { |
|
$text=&Apache::lonxml::get_all_text("endouttext",$$parser[$#$parser]); |
|
$result= |
|
&Apache::edit::tag_start("outtext"). |
|
&Apache::edit::editfield($token->[1],$text,"Text Block"); |
|
} |
|
if ($target eq 'modified') { |
|
$text=&Apache::lonxml::get_all_text("endouttext",$$parser['-1']); |
|
$result='<startouttext />'.&Apache::edit::modifiedfield(); |
|
} |
|
return $result; |
|
} |
|
sub start_endouttext { |
|
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
|
my $result=''; |
|
if ($target eq "edit" ) { $result=&Apache::edit::tag_end("outtext"); } |
|
if ($target eq "modified") { $result='<endouttext />'; } |
|
return $result; |
|
} |
|
sub end_endouttext { |
|
my ($target,$token,$parstack,$parser,$safeeval)=@_; |
|
my @result=('',''); |
|
if ($target eq "edit" || $target eq 'modified') { @result=('','no'); } |
|
return (@result); |
|
} |
|
|
|
|
1; |
1; |
__END__ |
__END__ |