version 1.326, 2005/12/01 18:46:31
|
version 1.332.2.2, 2006/03/29 22:43:29
|
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') { |
if ($target eq 'web' || $target eq 'webgrade') { |
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'); |
|
if ($css_href =~ /\S/) { |
|
&Apache::lonxml::extlink($css_href); |
|
$head_tag_start = |
|
'<link rel="stylesheet" type="text/css" href="'.$css_href.'" />'; |
|
} |
|
if ($target eq 'edit') { |
|
$head_tag_start.=&Apache::edit::js_change_detection(); |
|
} |
} |
} |
my $body_tag_start; |
my $body_tag_start; |
if (!defined($found{'body'}) && $env{'request.state'} eq 'construct') { |
if (!defined($found{'body'}) && $env{'request.state'} eq 'construct') { |
Line 150 sub page_start {
|
Line 159 sub page_start {
|
$form_tag_start='<form name="lonhomework" enctype="multipart/form-data" method="POST" action="'; |
$form_tag_start='<form name="lonhomework" enctype="multipart/form-data" method="POST" action="'; |
my $uri=$env{'request.uri'}; |
my $uri=$env{'request.uri'}; |
if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); } |
if ($env{'request.enc'}) { $uri=&Apache::lonenc::encrypted($uri); } |
$form_tag_start.=$uri.'">'; |
$form_tag_start.=$uri.'" '; |
|
if ($target eq 'edit') { |
|
$form_tag_start.=&Apache::edit::form_change_detection(); |
|
} |
|
$form_tag_start.='>'; |
} |
} |
return ($result,$head_tag_start,$body_tag_start,$form_tag_start); |
return ($result,$head_tag_start,$body_tag_start,$form_tag_start); |
} |
} |
Line 225 sub problem_edit_header {
|
Line 238 sub problem_edit_header {
|
&Apache::structuretags::remember_problem_state().' |
&Apache::structuretags::remember_problem_state().' |
<input type="hidden" name="problemmode" value="'.&mt('Edit').'" /> |
<input type="hidden" name="problemmode" value="'.&mt('Edit').'" /> |
<input type="submit" name="problemmode" accesskey="d" value="'.&mt('Discard Edits and View').'" /> |
<input type="submit" name="problemmode" accesskey="d" value="'.&mt('Discard Edits and View').'" /> |
<input type="submit" name="problemmode" accesskey="x" value="'.&mt('EditXML').'" /> |
<input '.&Apache::edit::submit_ask_anyway().' type="submit" name="problemmode" accesskey="x" value="'.&mt('EditXML').'" /> |
<input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" /> <hr /> |
<input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" /> <hr /> |
<input type="submit" name="submit" accesskey="s" value="'.&mt('Submit Changes and Edit').'" /> |
<input type="submit" name="submit" accesskey="s" value="'.&mt('Submit Changes and Edit').'" /> |
<input type="submit" name="submit" accesskey="v" value="'.&mt('Submit Changes and View').'" /><table><tr><td>'. |
<input type="submit" name="submit" accesskey="v" value="'.&mt('Submit Changes and View').'" /><table><tr><td>'. |
Line 549 sub start_problem {
|
Line 562 sub start_problem {
|
defined($env{'form.problemtype'})) { |
defined($env{'form.problemtype'})) { |
$Apache::lonhomework::type=$env{'form.problemtype'}; |
$Apache::lonhomework::type=$env{'form.problemtype'}; |
} |
} |
&Apache::lonxml::debug("Found this to be of type :$Apache::ltonhomework::type:"); |
&Apache::lonxml::debug("Found this to be of type :$Apache::lonhomework::type:"); |
} |
} |
if ($Apache::lonhomework::type eq '' ) { |
if ($Apache::lonhomework::type eq '' ) { |
my $uri=$env{'request.uri'}; |
my $uri=$env{'request.uri'}; |
Line 651 sub start_problem {
|
Line 664 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'; |
my $startminipage = ($env{'form.problem_split'}=~/yes/i)? '' |
|
: '\begin{minipage}{\textwidth}'; |
|
$result.='\begin{document}\noindent \vskip 1 mm '. |
|
$startminipage.'\vskip 0 mm'; |
if ($status eq 'UNAVAILABLE') { |
if ($status eq 'UNAVAILABLE') { |
$result.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'\vskip 0 mm '; |
$result.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'\vskip 0 mm '; |
} else { |
} else { |
Line 712 sub end_problem {
|
Line 728 sub end_problem {
|
|
|
if (!$Apache::lonxml::metamode) { |
if (!$Apache::lonxml::metamode) { |
$result = &Apache::lonxml::endredirection(); #started in &start_problem |
$result = &Apache::lonxml::endredirection(); #started in &start_problem |
|
$Apache::lonxml::post_evaluate=0; |
} |
} |
|
|
if ($target eq 'tex') { |
if ($target eq 'tex') { |
Line 963 sub start_block {
|
Line 980 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 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
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 1007 sub start_languageblock {
|
Line 1024 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 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
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 1060 sub start_instructorcomment {
|
Line 1077 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 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
$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 1089 sub start_while {
|
Line 1106 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 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
my $code = $token->[2]->{'condition'}; |
my $code = $token->[2]->{'condition'}; |
|
|
push( @Apache::structuretags::whileconds, $code); |
push( @Apache::structuretags::whileconds, $code); |
Line 1122 sub end_while {
|
Line 1139 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 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
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 1156 sub end_while {
|
Line 1173 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 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
my $body= &Apache::lonxml::get_all_text("/randomlist",$parser,$style); |
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); |
$b_parser->marked_sections(1); |
$b_parser->marked_sections(1); |
Line 1364 sub end_part {
|
Line 1381 sub end_part {
|
my $result; |
my $result; |
if (!$Apache::lonxml::metamode) { |
if (!$Apache::lonxml::metamode) { |
$result = &Apache::lonxml::endredirection(); # started in &start_part |
$result = &Apache::lonxml::endredirection(); # started in &start_part |
|
$Apache::lonxml::post_evaluate=0; |
} |
} |
if ($target eq 'grade') { |
if ($target eq 'grade') { |
if (($status eq 'CAN_ANSWER' || $Apache::lonhomework::scantronmode) && |
if (($status eq 'CAN_ANSWER' || $Apache::lonhomework::scantronmode) && |
Line 1396 sub end_part {
|
Line 1414 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' || $target eq 'tex') { |
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' || |
|
$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 1414 sub end_preduedate {
|
Line 1433 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') { |
if ($target eq 'web' || $target eq 'grade' || $target eq 'webgrade') { |
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 1432 sub end_postanswerdate {
|
Line 1451 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 'tex' || $target eq 'webgrade') { |
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 1468 sub end_solved {
|
Line 1487 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 'tex' || $target eq 'analyze' || $target eq 'webgrade') { |
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); |
Line 1577 sub start_simpleeditbutton {
|
Line 1596 sub start_simpleeditbutton {
|
my $result=''; |
my $result=''; |
if (($env{'form.simple_edit_button'} ne 'off') && |
if (($env{'form.simple_edit_button'} ne 'off') && |
($target eq 'web') && |
($target eq 'web') && |
(&Apache::lonnet::allowed('srm',$env{'request.course.id'}))) { |
(&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) { |
my $url=$env{'request.noversionuri'}; |
my $url=$env{'request.noversionuri'}; |
$url=~s/\?.*$//; |
$url=~s/\?.*$//; |
my ($symb) = &Apache::lonxml::whichuser(); |
my ($symb) = &Apache::lonxml::whichuser(); |