version 1.137, 2002/11/13 23:37:56
|
version 1.145, 2003/02/07 21:50:12
|
Line 118 sub page_start {
|
Line 118 sub page_start {
|
return ($result,$head_tag_start,$body_tag_start,$form_tag_start); |
return ($result,$head_tag_start,$body_tag_start,$form_tag_start); |
} |
} |
|
|
|
#use Time::HiRes(); |
sub get_resource_name { |
sub get_resource_name { |
my ($parstack,$safeeval)=@_; |
my ($parstack,$safeeval)=@_; |
my $name=&Apache::lonxml::get_param('name',$parstack,$safeeval); |
my $name=&Apache::lonnet::gettitle(); |
if ($name eq '') { |
if ($name eq '') { |
$name=&Apache::lonnet::EXT('resource.title'); |
$name=&Apache::lonnet::EXT('resource.title'); |
if ($name eq 'con_lost') { $name = ''; } |
if ($name eq 'con_lost') { $name = ''; } |
} |
} |
Line 303 sub start_problem {
|
Line 304 sub start_problem {
|
&Apache::lonxml::debug("Got $status"); |
&Apache::lonxml::debug("Got $status"); |
if (( $status eq 'CLOSED' ) || |
if (( $status eq 'CLOSED' ) || |
( $status eq 'UNCHECKEDOUT') || |
( $status eq 'UNCHECKEDOUT') || |
( $status eq 'BANNED')) { |
( $status eq 'BANNED') || |
|
( $status eq 'UNAVAILABLE')) { |
my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser); |
my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser); |
if ( $target eq "web" ) { |
if ( $target eq "web" ) { |
$result.= $head_tag_start.'</head>'; |
$result.= $head_tag_start.'</head>'; |
my $msg=$body_tag_start. |
my $msg=$body_tag_start; |
'<h1>Not open to be viewed</h1>'; |
if ($status eq 'UNAVAILABLE') { |
|
$result.='<h1>Unable to determine if this resource is open due to network problems. Please try again later.</h1>'; |
|
} else { |
|
$result.='<h1>Not open to be viewed</h1>'; |
|
} |
if ($status eq 'CLOSED') { |
if ($status eq 'CLOSED') { |
$msg.='The problem '.$accessmsg; |
$msg.='The problem '.$accessmsg; |
} elsif ($status eq 'UNCHECKEDOUT') { |
} elsif ($status eq 'UNCHECKEDOUT') { |
Line 316 sub start_problem {
|
Line 322 sub start_problem {
|
} |
} |
$result.=$msg.'<br />'; |
$result.=$msg.'<br />'; |
} elsif ($target eq 'tex') { |
} elsif ($target eq 'tex') { |
$result.="\\begin{document}\\noindent \\vskip 1 mm \\begin{minipage}{\\textwidth}\\vskip 0 mm Problem is not open to be viewed. It $accessmsg \\vskip 0 mm "; |
$result.="\\begin{document}\\noindent \\vskip 1 mm \\begin{minipage}{\\textwidth}\\vskip 0 mm "; |
} |
if ($status eq 'UNAVAILABLE') { |
|
$result.='Unable to determine if this resource is open due to network problems. Please try again later.\vskip 0 mm '; |
|
} else { |
|
$result.="Problem is not open to be viewed. It $accessmsg \\vskip 0 mm "; |
|
} |
|
} |
} elsif ($target eq 'web') { |
} elsif ($target eq 'web') { |
my $name= &get_resource_name($parstack,$safeeval); |
my $name= &get_resource_name($parstack,$safeeval); |
if ($status eq 'CAN_ANSWER') { |
if ($status eq 'CAN_ANSWER') { |
Line 336 sub start_problem {
|
Line 347 sub start_problem {
|
} |
} |
} |
} |
} elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' |
} elsif ($status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER' |
|| $status eq 'CLOSED') { |
|| $status eq 'CLOSED' || $status eq 'UNAVALAILABLE') { |
$result.=$head_tag_start. |
$result.=$head_tag_start. |
"<title>$name</title></head>\n$body_tag_start\n"; |
"<title>$name</title></head>\n$body_tag_start\n"; |
} |
} |
Line 400 sub end_problem {
|
Line 411 sub end_problem {
|
my $result=''; |
my $result=''; |
my $status=$Apache::inputtags::status['-1']; |
my $status=$Apache::inputtags::status['-1']; |
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex') { |
if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex') { |
if ( $target eq 'grade' && $Apache::inputtags::part eq '0') { |
if ( $target eq 'grade' && $Apache::inputtags::part eq '0' && $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 |
&Apache::inputtags::grade; |
&Apache::inputtags::grade; |
} elsif ( ($target eq 'web' || $target eq 'tex') && $Apache::inputtags::part eq '0' && |
} elsif ( ($target eq 'web' || $target eq 'tex') && $Apache::inputtags::part eq '0' && |
Line 424 sub end_problem {
|
Line 435 sub end_problem {
|
$result.="</body>\n"; |
$result.="</body>\n"; |
} |
} |
} |
} |
if ($target ne 'tex') { |
if ($target eq 'web') { |
$result.=&Apache::lonxml::xmlend(); |
$result.=&Apache::lonxml::xmlend(); |
} else { |
} elsif ($target eq 'tex') { |
$result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}'; |
$result .= '\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}'; |
if (not $ENV{'request.symb'} =~ m/\.page_/) { |
if (not $ENV{'request.symb'} =~ m/\.page_/) { |
$result .= '\end{minipage}\end{document} '; |
$result .= '\end{minipage}\end{document} '; |
} else { |
} else { |
$result .= ''; |
$result .= ''; |
} |
} |
} |
} |
} |
} |
if ($target eq 'grade') { |
if ($target eq 'grade') { |
&Apache::lonhomework::showhash(%Apache::lonhomework::results); |
&Apache::lonhomework::showhash(%Apache::lonhomework::results); |
&finalize_storage(); |
&finalize_storage(); |
} |
} |
|
if ($target eq 'answer' && ($ENV{'request.state'} eq 'construct') ) { |
|
$result.='</html>'; #normally we get it from xmlend, but in CSTR |
|
# we always show answer mode too. |
|
} |
} elsif ($target eq 'meta') { |
} elsif ($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; |
Line 446 sub end_problem {
|
Line 461 sub end_problem {
|
} elsif ($target eq 'edit') { |
} elsif ($target eq 'edit') { |
&Apache::lonxml::debug("in end_problem with $target, edit"); |
&Apache::lonxml::debug("in end_problem with $target, edit"); |
$result = &problem_edit_footer(); |
$result = &problem_edit_footer(); |
} |
} |
return $result; |
return $result; |
} |
} |
|
|
Line 693 sub end_part {
|
Line 708 sub end_part {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
&Apache::lonxml::debug("in end_part $target "); |
&Apache::lonxml::debug("in end_part $target "); |
my $status=$Apache::inputtags::status['-1']; |
my $status=$Apache::inputtags::status['-1']; |
pop @Apache::inputtags::status; |
my $result=''; |
if ( $target eq 'meta' ) { return ''; } |
if ( $target eq 'meta' ) { |
if ( $target eq 'grade' && $status eq 'CAN_ANSWER') { |
$result=''; |
return &Apache::inputtags::grade; |
} elsif ( $target eq 'grade' && $status eq 'CAN_ANSWER') { |
} |
$result=&Apache::inputtags::grade; |
if ($target eq 'web' || $target eq 'tex' ) { |
} elsif ($target eq 'web' || $target eq 'tex' ) { |
my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part,$target); |
my $gradestatus=&Apache::inputtags::gradestatus($Apache::inputtags::part, |
|
$target); |
if ($Apache::lonhomework::type eq 'exam') {$gradestatus='';} |
if ($Apache::lonhomework::type eq 'exam') {$gradestatus='';} |
return $gradestatus; |
$result=$gradestatus; |
} |
} |
return ''; |
pop @Apache::inputtags::status; |
|
return $result; |
} |
} |
|
|
sub start_preduedate { |
sub start_preduedate { |