version 1.332.2.4, 2006/06/24 01:33:40
|
version 1.335, 2006/02/16 01:58:54
|
Line 44 BEGIN {
|
Line 44 BEGIN {
|
sub start_web { |
sub start_web { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my $bodytext=&Apache::lonxml::get_all_text("/web",$parser,$style); |
my $bodytext=&Apache::lonxml::get_all_text("/web",$parser,$style); |
if ($target eq 'web' || $target eq 'webgrade') { |
if ($target eq 'web') { |
return $bodytext; |
return $bodytext; |
} |
} |
return ''; |
return ''; |
Line 113 sub page_start {
|
Line 113 sub page_start {
|
&Apache::lonhtmlcommon::htmlareaheaders(). |
&Apache::lonhtmlcommon::htmlareaheaders(). |
&Apache::lonhtmlcommon::spellheader(). |
&Apache::lonhtmlcommon::spellheader(). |
&Apache::lonxml::fontsettings(); |
&Apache::lonxml::fontsettings(); |
my $css_href = &Apache::lonnet::EXT('resource.0.cssfile'); |
my $css_href = &Apache::lonnet::EXT('resource.0.cssstyle'); |
if ($css_href =~ /\S/) { |
if ($css_href =~ /\S/) { |
&Apache::lonxml::extlink($css_href); |
&Apache::lonxml::extlink($css_href); |
$head_tag_start = |
$head_tag_start = |
Line 192 sub setup_rndseed {
|
Line 192 sub setup_rndseed {
|
my ($safeeval)=@_; |
my ($safeeval)=@_; |
my $rndseed; |
my $rndseed; |
my ($symb)=&Apache::lonxml::whichuser(); |
my ($symb)=&Apache::lonxml::whichuser(); |
if ($env{'request.state'} eq "construct" || $symb eq '' || |
if ($env{'request.state'} eq "construct" |
$Apache::lonhomework::history{'resource.CODE'}) { |
|| $symb eq '' |
|
|| $Apache::lonhomework::type eq 'practice' |
|
|| $Apache::lonhomework::history{'resource.CODE'}) { |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
['rndseed']); |
['rndseed']); |
$rndseed=$env{'form.rndseed'}; |
$rndseed=$env{'form.rndseed'}; |
Line 336 sub initialize_storage {
|
Line 338 sub initialize_storage {
|
%Apache::lonhomework::results=(); |
%Apache::lonhomework::results=(); |
%Apache::lonhomework::history=(); |
%Apache::lonhomework::history=(); |
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
if ($env{'request.state'} eq 'construct' || $symb eq '') { |
if ($env{'request.state'} eq 'construct' |
|
|| $symb eq '' |
|
|| $Apache::lonhomework::type eq 'practice') { |
|
|
|
my $namespace = $symb || $env{'request.uri'}; |
|
if ($env{'form.resetdata'} eq &mt('Reset Submissions') || |
|
$env{'form.resetdata'} eq &mt('New Problem Variation') || |
|
$env{'form.newrandomization'} eq &mt('New Randomization')) { |
|
&Apache::lonnet::tmpreset($namespace,'',$domain,$name); |
|
&Apache::lonxml::debug("Attempt reset"); |
|
} |
%Apache::lonhomework::history= |
%Apache::lonhomework::history= |
&Apache::lonnet::tmprestore($env{'request.uri'},'',$domain,$name); |
&Apache::lonnet::tmprestore($namespace,'',$domain,$name); |
my ($temp)=keys %Apache::lonhomework::history ; |
my ($temp)=keys %Apache::lonhomework::history ; |
&Apache::lonxml::debug("Return message of $temp"); |
&Apache::lonxml::debug("Return message of $temp"); |
} else { |
} else { |
Line 362 sub finalize_storage {
|
Line 374 sub finalize_storage {
|
my @remove = grep(/^INTERNAL_/,keys(%Apache::lonhomework::results)); |
my @remove = grep(/^INTERNAL_/,keys(%Apache::lonhomework::results)); |
delete(@Apache::lonhomework::results{@remove}); |
delete(@Apache::lonhomework::results{@remove}); |
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser(); |
if ($env{'request.state'} eq 'construct' || $symb eq '') { |
if ($env{'request.state'} eq 'construct' |
|
|| $symb eq '' |
|
|| $Apache::lonhomework::type eq 'practice') { |
|
my $namespace = $symb || $env{'request.uri'}; |
$Apache::lonhomework::results{'rndseed'}=$env{'form.rndseed'}; |
$Apache::lonhomework::results{'rndseed'}=$env{'form.rndseed'}; |
$result=&Apache::lonnet::tmpstore(\%Apache::lonhomework::results, |
$result=&Apache::lonnet::tmpstore(\%Apache::lonhomework::results, |
$env{'request.uri'},'',$domain,$name); |
$namespace,'',$domain,$name); |
&Apache::lonxml::debug('Construct Store return message:'.$result); |
&Apache::lonxml::debug('Construct Store return message:'.$result); |
} else { |
} else { |
$result=&Apache::lonnet::cstore(\%Apache::lonhomework::results, |
$result=&Apache::lonnet::cstore(\%Apache::lonhomework::results, |
Line 429 sub checkout_msg {
|
Line 444 sub checkout_msg {
|
'warning'=>'Checking out resources is subject to course policies, and may exclude future credit even if done erroneously.', |
'warning'=>'Checking out resources is subject to course policies, and may exclude future credit even if done erroneously.', |
'checkout'=>'Check out Exam for Viewing', |
'checkout'=>'Check out Exam for Viewing', |
'checkout?'=>'Check out Exam?'); |
'checkout?'=>'Check out Exam?'); |
my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); |
|
return (<<ENDCHECKOUT); |
return (<<ENDCHECKOUT); |
<h2>$lt{'resource'}</h2> |
<h2>$lt{'resource'}</h2> |
<p>$lt{'id_expln'}</p> |
<p>$lt{'id_expln'}</p> |
<font color="red"> |
<font color="red"> |
<p>$lt{'warning'}</p> |
<p>$lt{'warning'}</p> |
</font> |
</font> |
<form name="checkout" method="POST" action="$uri"> |
<form name="checkout" method="POST" action="$env{'request.uri'}"> |
<input type="hidden" name="doescheckout" value="yes" /> |
<input type="hidden" name="doescheckout" value="yes" /> |
<input type="button" name="checkoutbutton" value="$lt{'checkout'}" onClick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" /> |
<input type="button" name="checkoutbutton" value="$lt{'checkout'}" onClick="javascript:if (confirm('$lt{'checkout?'}')) { document.checkout.submit(); }" /> |
</form> |
</form> |
Line 448 sub firstaccess_msg {
|
Line 462 sub firstaccess_msg {
|
my ($map)=&Apache::lonnet::decode_symb($symb); |
my ($map)=&Apache::lonnet::decode_symb($symb); |
my $foldertitle=&Apache::lonnet::gettitle($map); |
my $foldertitle=&Apache::lonnet::gettitle($map); |
&Apache::lonxml::debug("map is $map title is $foldertitle"); |
&Apache::lonxml::debug("map is $map title is $foldertitle"); |
my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'}); |
|
return (<<ENDCHECKOUT); |
return (<<ENDCHECKOUT); |
<h2>The resources in "$foldertitle" are open for a limited time. Once you click the 'Show Resource' button below you have $time to complete all resources "$foldertitle".</h2> |
<h2>The resources in "$foldertitle" are open for a limited time. Once you click the 'Show Resource' button below you have $time to complete all resources "$foldertitle".</h2> |
<form name="markaccess" method="POST" action="$uri"> |
<form name="markaccess" method="POST" action="$env{'request.uri'}"> |
<input type="hidden" name="markaccess" value="yes" /> |
<input type="hidden" name="markaccess" value="yes" /> |
<input type="button" name="accessbutton" value="Show Resource" onClick="javascript:if (confirm('Start Timer?')) { document.markaccess.submit(); }" /> |
<input type="button" name="accessbutton" value="Show Resource" onClick="javascript:if (confirm('Start Timer?')) { document.markaccess.submit(); }" /> |
</form> |
</form> |
Line 492 sub init_problem_globals {
|
Line 505 sub init_problem_globals {
|
@Apache::structuretags::whileline=(); |
@Apache::structuretags::whileline=(); |
$Apache::lonhomework::scantronmode=0; |
$Apache::lonhomework::scantronmode=0; |
undef($Apache::lonhomework::name); |
undef($Apache::lonhomework::name); |
undef($Apache::lonhomework::default_type); |
|
undef($Apache::lonhomework::type); |
|
undef($Apache::lonhomework::problemstatus); |
|
} |
} |
|
|
sub reset_problem_globals { |
sub reset_problem_globals { |
Line 506 sub reset_problem_globals {
|
Line 517 sub reset_problem_globals {
|
#detect if we try to do 2 problems in one file |
#detect if we try to do 2 problems in one file |
# undef($Apache::lonhomework::parsing_a_problem); |
# undef($Apache::lonhomework::parsing_a_problem); |
undef($Apache::lonhomework::name); |
undef($Apache::lonhomework::name); |
undef($Apache::lonhomework::default_type); |
|
undef($Apache::lonhomework::type); |
|
undef($Apache::lonhomework::scantronmode); |
|
undef($Apache::lonhomework::problemstatus); |
|
undef($Apache::lonhomework::ignore_response_errors); |
|
} |
} |
|
|
sub set_problem_state { |
sub set_problem_state { |
Line 617 sub start_problem {
|
Line 623 sub start_problem {
|
#handle rand seed in construction space |
#handle rand seed in construction space |
my $rndseed=&setup_rndseed($safeeval); |
my $rndseed=&setup_rndseed($safeeval); |
my ($symb)=&Apache::lonxml::whichuser(); |
my ($symb)=&Apache::lonxml::whichuser(); |
if ($env{'request.state'} ne "construct" && $symb eq '') { |
if ($env{'request.state'} ne "construct" && |
|
($symb eq '' || $Apache::lonhomework::type eq 'practice')) { |
$form_tag_start.='<input type="hidden" name="rndseed" value="'. |
$form_tag_start.='<input type="hidden" name="rndseed" value="'. |
$rndseed.'" />'. |
$rndseed.'" />'. |
'<input type="submit" name="resetdata" |
'<input type="submit" name="resetdata" |
value="'.&mt('New Problem Variation').'" />'. |
value="'.&mt('New Problem Variation').'" />'; |
|
if (exists($env{'form.username'})) { |
|
$form_tag_start.= |
'<input type="hidden" name="username" |
'<input type="hidden" name="username" |
value="'.$env{'form.username'}.'" />'; |
value="'.$env{'form.username'}.'" />'; |
if ($env{'user.adv'}) { |
} |
|
if ($env{'request.role.adv'}) { |
$form_tag_start.= |
$form_tag_start.= |
' <label><input type="checkbox" name="showallfoils" '; |
' <label><input type="checkbox" name="showallfoils" '; |
if (defined($env{'form.showallfoils'})) { |
if (defined($env{'form.showallfoils'})) { |
Line 989 sub start_block {
|
Line 999 sub start_block {
|
|
|
my $result; |
my $result; |
|
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
$target eq 'tex' || $target eq 'analyze') { |
my $code = $token->[2]->{'condition'}; |
my $code = $token->[2]->{'condition'}; |
if (defined($code)) { |
if (defined($code)) { |
if (!$Apache::lonxml::default_homework_loaded) { |
if (!$Apache::lonxml::default_homework_loaded) { |
Line 1033 sub start_languageblock {
|
Line 1043 sub start_languageblock {
|
|
|
my $result; |
my $result; |
|
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
$target eq 'tex' || $target eq 'analyze') { |
my $include = $token->[2]->{'include'}; |
my $include = $token->[2]->{'include'}; |
my $exclude = $token->[2]->{'exclude'}; |
my $exclude = $token->[2]->{'exclude'}; |
my %languages=&Apache::loncommon::display_languages(); |
my %languages=&Apache::loncommon::display_languages(); |
Line 1086 sub start_instructorcomment {
|
Line 1096 sub start_instructorcomment {
|
|
|
my $result; |
my $result; |
|
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
$target eq 'tex' || $target eq 'analyze') { |
$result=($env{'request.role'}=~/^(in|cc|au|ca|li)/); |
$result=($env{'request.role'}=~/^(in|cc|au|ca|li)/); |
if ( (! $result) or ($env{'form.instructor_comments'} eq 'hide')) { |
if ( (! $result) or ($env{'form.instructor_comments'} eq 'hide')) { |
my $skip=&Apache::lonxml::get_all_text("/instructorcomment", |
my $skip=&Apache::lonxml::get_all_text("/instructorcomment", |
Line 1115 sub start_while {
|
Line 1125 sub start_while {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
|
|
my $result; |
my $result; |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
$target eq 'tex' || $target eq 'analyze') { |
my $code = $token->[2]->{'condition'}; |
my $code = $token->[2]->{'condition'}; |
|
|
push( @Apache::structuretags::whileconds, $code); |
push( @Apache::structuretags::whileconds, $code); |
Line 1148 sub end_while {
|
Line 1158 sub end_while {
|
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_; |
my $result; |
my $result; |
|
|
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
$target eq 'tex' || $target eq 'analyze') { |
my $code = pop(@Apache::structuretags::whileconds); |
my $code = pop(@Apache::structuretags::whileconds); |
my $bodytext = pop(@Apache::structuretags::whilebody); |
my $bodytext = pop(@Apache::structuretags::whilebody); |
my $line = pop(@Apache::structuretags::whileline); |
my $line = pop(@Apache::structuretags::whileline); |
Line 1182 sub end_while {
|
Line 1192 sub end_while {
|
sub start_randomlist { |
sub start_randomlist { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
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' || $target eq 'analyze' || $target eq 'webgrade') { |
$target eq 'tex' || $target eq 'analyze') { |
my $body= &Apache::lonxml::get_all_text("/randomlist",$parser); |
my $body= &Apache::lonxml::get_all_text("/randomlist",$parser); |
my $b_parser= HTML::LCParser->new(\$body); |
my $b_parser= HTML::LCParser->new(\$body); |
$b_parser->xml_mode(1); |
$b_parser->xml_mode(1); |
Line 1423 sub end_part {
|
Line 1433 sub end_part {
|
|
|
sub start_preduedate { |
sub start_preduedate { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || $target eq 'tex') { |
$target eq 'tex' || $target eq 'webgrade') { |
|
&Apache::lonxml::debug("State in preduedate is ". $Apache::inputtags::status['-1']); |
&Apache::lonxml::debug("State in preduedate is ". $Apache::inputtags::status['-1']); |
if (!$Apache::lonhomework::scantronmode && |
if (!$Apache::lonhomework::scantronmode && |
$Apache::inputtags::status['-1'] ne 'CAN_ANSWER' && |
$Apache::inputtags::status['-1'] ne 'CAN_ANSWER' && |
Line 1442 sub end_preduedate {
|
Line 1451 sub end_preduedate {
|
|
|
sub start_postanswerdate { |
sub start_postanswerdate { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
if ($target eq 'web' || $target eq 'grade' || $target eq 'webgrade') { |
if ($target eq 'web' || $target eq 'grade') { |
if ($Apache::lonhomework::scantronmode || |
if ($Apache::lonhomework::scantronmode || |
$Apache::inputtags::status['-1'] ne 'SHOW_ANSWER') { |
$Apache::inputtags::status['-1'] ne 'SHOW_ANSWER') { |
&Apache::lonxml::get_all_text("/postanswerdate",$parser,$style); |
&Apache::lonxml::get_all_text("/postanswerdate",$parser,$style); |
Line 1460 sub end_postanswerdate {
|
Line 1469 sub end_postanswerdate {
|
sub start_notsolved { |
sub start_notsolved { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex' || $target eq 'webgrade') { |
$target eq 'tex') { |
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 1496 sub end_solved {
|
Line 1505 sub end_solved {
|
sub start_problemtype { |
sub start_problemtype { |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; |
my $result; |
my $result; |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
$target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
$target eq 'tex' || $target eq 'analyze') { |
my $mode=lc(&Apache::lonxml::get_param('mode',$parstack,$safeeval)); |
my $mode=lc(&Apache::lonxml::get_param('mode',$parstack,$safeeval)); |
if (!defined($mode)) { $mode='show'; } |
if (!defined($mode)) { $mode='show'; } |
my $for=&Apache::lonxml::get_param('for',$parstack,$safeeval); |
my $for=&Apache::lonxml::get_param('for',$parstack,$safeeval); |