--- loncom/homework/structuretags.pm 2006/01/02 22:34:31 1.329
+++ loncom/homework/structuretags.pm 2006/06/24 01:33:40 1.332.2.4
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# definition of tags that give a structure to a document
#
-# $Id: structuretags.pm,v 1.329 2006/01/02 22:34:31 albertel Exp $
+# $Id: structuretags.pm,v 1.332.2.4 2006/06/24 01:33:40 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -44,7 +44,7 @@ BEGIN {
sub start_web {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$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 '';
@@ -113,6 +113,12 @@ sub page_start {
&Apache::lonhtmlcommon::htmlareaheaders().
&Apache::lonhtmlcommon::spellheader().
&Apache::lonxml::fontsettings();
+ my $css_href = &Apache::lonnet::EXT('resource.0.cssfile');
+ if ($css_href =~ /\S/) {
+ &Apache::lonxml::extlink($css_href);
+ $head_tag_start =
+ '';
+ }
if ($target eq 'edit') {
$head_tag_start.=&Apache::edit::js_change_detection();
}
@@ -423,13 +429,14 @@ sub checkout_msg {
'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?');
+ my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});
return (<$lt{'resource'}
$lt{'id_expln'}
$lt{'warning'}
-
@@ -441,9 +448,10 @@ sub firstaccess_msg {
my ($map)=&Apache::lonnet::decode_symb($symb);
my $foldertitle=&Apache::lonnet::gettitle($map);
&Apache::lonxml::debug("map is $map title is $foldertitle");
+ my $uri = &Apache::lonenc::check_encrypt($env{'request.uri'});
return (<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".
-
@@ -484,7 +492,9 @@ sub init_problem_globals {
@Apache::structuretags::whileline=();
$Apache::lonhomework::scantronmode=0;
undef($Apache::lonhomework::name);
-
+ undef($Apache::lonhomework::default_type);
+ undef($Apache::lonhomework::type);
+ undef($Apache::lonhomework::problemstatus);
}
sub reset_problem_globals {
@@ -496,6 +506,11 @@ sub reset_problem_globals {
#detect if we try to do 2 problems in one file
# undef($Apache::lonhomework::parsing_a_problem);
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 {
@@ -556,7 +571,7 @@ sub start_problem {
defined($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 '' ) {
my $uri=$env{'request.uri'};
@@ -658,7 +673,10 @@ sub start_problem {
}
$result.=$msg.'
';
} 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') {
$result.=&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'\vskip 0 mm ';
} else {
@@ -971,8 +989,8 @@ sub start_block {
my $result;
- if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
- $target eq 'tex' || $target eq 'analyze') {
+ if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
+ $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') {
my $code = $token->[2]->{'condition'};
if (defined($code)) {
if (!$Apache::lonxml::default_homework_loaded) {
@@ -1015,8 +1033,8 @@ sub start_languageblock {
my $result;
- if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
- $target eq 'tex' || $target eq 'analyze') {
+ if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
+ $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') {
my $include = $token->[2]->{'include'};
my $exclude = $token->[2]->{'exclude'};
my %languages=&Apache::loncommon::display_languages();
@@ -1068,8 +1086,8 @@ sub start_instructorcomment {
my $result;
- if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
- $target eq 'tex' || $target eq 'analyze') {
+ if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
+ $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') {
$result=($env{'request.role'}=~/^(in|cc|au|ca|li)/);
if ( (! $result) or ($env{'form.instructor_comments'} eq 'hide')) {
my $skip=&Apache::lonxml::get_all_text("/instructorcomment",
@@ -1097,8 +1115,8 @@ sub start_while {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result;
- if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
- $target eq 'tex' || $target eq 'analyze') {
+ if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
+ $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') {
my $code = $token->[2]->{'condition'};
push( @Apache::structuretags::whileconds, $code);
@@ -1130,8 +1148,8 @@ sub end_while {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
my $result;
- if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
- $target eq 'tex' || $target eq 'analyze') {
+ if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
+ $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') {
my $code = pop(@Apache::structuretags::whileconds);
my $bodytext = pop(@Apache::structuretags::whilebody);
my $line = pop(@Apache::structuretags::whileline);
@@ -1164,9 +1182,9 @@ sub end_while {
sub start_randomlist {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result;
- if ($target eq 'answer' || $target eq 'grade' || $target eq 'web' ||
- $target eq 'tex' || $target eq 'analyze') {
- my $body= &Apache::lonxml::get_all_text("/randomlist",$parser,$style);
+ if ($target eq 'answer' || $target eq 'grade' || $target eq 'web' ||
+ $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') {
+ my $body= &Apache::lonxml::get_all_text("/randomlist",$parser);
my $b_parser= HTML::LCParser->new(\$body);
$b_parser->xml_mode(1);
$b_parser->marked_sections(1);
@@ -1405,7 +1423,8 @@ sub end_part {
sub start_preduedate {
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']);
if (!$Apache::lonhomework::scantronmode &&
$Apache::inputtags::status['-1'] ne 'CAN_ANSWER' &&
@@ -1423,7 +1442,7 @@ sub end_preduedate {
sub start_postanswerdate {
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 ||
$Apache::inputtags::status['-1'] ne 'SHOW_ANSWER') {
&Apache::lonxml::get_all_text("/postanswerdate",$parser,$style);
@@ -1441,7 +1460,7 @@ sub end_postanswerdate {
sub start_notsolved {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
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"};
&Apache::lonxml::debug("not solved has :$gradestatus:");
if ($gradestatus =~ /^correct/ &&
@@ -1477,8 +1496,8 @@ sub end_solved {
sub start_problemtype {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result;
- if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
- $target eq 'tex' || $target eq 'analyze') {
+ if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
+ $target eq 'tex' || $target eq 'analyze' || $target eq 'webgrade') {
my $mode=lc(&Apache::lonxml::get_param('mode',$parstack,$safeeval));
if (!defined($mode)) { $mode='show'; }
my $for=&Apache::lonxml::get_param('for',$parstack,$safeeval);
@@ -1586,7 +1605,7 @@ sub start_simpleeditbutton {
my $result='';
if (($env{'form.simple_edit_button'} ne 'off') &&
($target eq 'web') &&
- (&Apache::lonnet::allowed('srm',$env{'request.course.id'}))) {
+ (&Apache::lonnet::allowed('mdc',$env{'request.course.id'}))) {
my $url=$env{'request.noversionuri'};
$url=~s/\?.*$//;
my ($symb) = &Apache::lonxml::whichuser();