--- loncom/xml/lonxml.pm 2005/04/07 00:42:07 1.371 +++ loncom/xml/lonxml.pm 2005/04/07 06:56:27 1.372 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # XML Parser Module # -# $Id: lonxml.pm,v 1.371 2005/04/07 00:42:07 albertel Exp $ +# $Id: lonxml.pm,v 1.372 2005/04/07 06:56:27 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -81,7 +81,7 @@ use Apache::languagetags(); use Apache::edit(); use Apache::inputtags(); use Apache::outputtags(); -use Apache::lonnet(); +use Apache::lonnet; use Apache::File(); use Apache::loncommon(); use Apache::lonfeedback(); @@ -152,7 +152,7 @@ sub xmlbegin { my ($style)=@_; my $output=''; @htmlareafields=(); - if ($ENV{'browser.mathml'}) { + if ($env{'browser.mathml'}) { $output='' #.''."\n" # .''.&mt('User').': '.$tuname.' at '.$tudom. '
'.&mt('ID').': '.$idhash{$tuname}. '
'.&mt('CourseID').': '.$tcrsid. - '
'.&mt('Course').': '.$ENV{'course.'.$tcrsid.'.description'}. + '
'.&mt('Course').': '.$env{'course.'.$tcrsid.'.description'}. '
'.&mt('DocID').': '.$token. '
'.&mt('Time').': '.&Apache::lonlocal::locallocaltime().'
'; } else { @@ -298,10 +298,10 @@ sub printtokenheader { sub fontsettings { my $headerstring=''; - if (($ENV{'browser.os'} eq 'mac') && (!$ENV{'browser.mathml'})) { + if (($env{'browser.os'} eq 'mac') && (!$env{'browser.mathml'})) { $headerstring.= ''; - } elsif (!$ENV{'browser.mathml'} && $ENV{'browser.unicode'}) { + } elsif (!$env{'browser.mathml'} && $env{'browser.unicode'}) { $headerstring.= ''; } @@ -330,9 +330,9 @@ sub xmlparse { # do we have a course style file? # - if ($ENV{'request.course.id'} && $ENV{'request.state'} ne 'construct') { + if ($env{'request.course.id'} && $env{'request.state'} ne 'construct') { my $bodytext= - $ENV{'course.'.$ENV{'request.course.id'}.'.default_xml_style'}; + $env{'course.'.$env{'request.course.id'}.'.default_xml_style'}; if ($bodytext) { foreach my $file (split(',',$bodytext)) { my $location=&Apache::lonnet::filelocation('',$file); @@ -343,8 +343,8 @@ sub xmlparse { } } } - } elsif ($ENV{'construct.style'} && ($ENV{'request.state'} eq 'construct')) { - my $location=&Apache::lonnet::filelocation('',$ENV{'construct.style'}); + } elsif ($env{'construct.style'} && ($env{'request.state'} eq 'construct')) { + my $location=&Apache::lonnet::filelocation('',$env{'construct.style'}); my $styletext=&Apache::lonnet::getfile($location); if ($styletext ne '-1') { %style_for_target = (%style_for_target, @@ -353,7 +353,7 @@ sub xmlparse { } #&printalltags(); my @pars = (); - my $pwd=$ENV{'request.filename'}; + my $pwd=$env{'request.filename'}; $pwd =~ s:/[^/]*$::; &newparser(\@pars,\$content_file_string,$pwd); @@ -371,12 +371,12 @@ sub xmlparse { my $finaloutput = &inner_xmlparse($target,\@stack,\@parstack,\@pars, $safeeval,\%style_for_target); - if ($ENV{'request.uri'}) { - &writeallows($ENV{'request.uri'}); + if ($env{'request.uri'}) { + &writeallows($env{'request.uri'}); } &do_registered_ssi(); if ($Apache::lonxml::counter_changed) { &store_counter() } - if ($ENV{'form.return_only_error_and_warning_counts'}) { + if ($env{'form.return_only_error_and_warning_counts'}) { return "$errorcount:$warningcount"; } return $finaloutput; @@ -945,8 +945,8 @@ sub increment_counter { } sub init_counter { - if (defined($ENV{'form.counter'})) { - $Apache::lonxml::counter=$ENV{'form.counter'}; + if (defined($env{'form.counter'})) { + $Apache::lonxml::counter=$env{'form.counter'}; $Apache::lonxml::counter_changed=0; } else { $Apache::lonxml::counter=1; @@ -1088,8 +1088,8 @@ sub parstring { sub writeallows { unless ($#extlinks>=0) { return; } my $thisurl='/res/'.&Apache::lonnet::declutter(shift); - if ($ENV{'httpref.'.$thisurl}) { - $thisurl=$ENV{'httpref.'.$thisurl}; + if ($env{'httpref.'.$thisurl}) { + $thisurl=$env{'httpref.'.$thisurl}; } my $thisdir=$thisurl; $thisdir=~s/\/[^\/]+$//; @@ -1122,24 +1122,24 @@ sub afterburn { my $result=shift; &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['highlight','anchor','link']); - if ($ENV{'form.highlight'}) { - foreach (split(/\,/,$ENV{'form.highlight'})) { + if ($env{'form.highlight'}) { + foreach (split(/\,/,$env{'form.highlight'})) { my $anchorname=$_; my $matchthis=$anchorname; $matchthis=~s/\_+/\\s\+/g; $result=~s/(\Q$matchthis\E)/\$1\<\/font\>/gs; } } - if ($ENV{'form.link'}) { - foreach (split(/\,/,$ENV{'form.link'})) { + if ($env{'form.link'}) { + foreach (split(/\,/,$env{'form.link'})) { my ($anchorname,$linkurl)=split(/\>/,$_); my $matchthis=$anchorname; $matchthis=~s/\_+/\\s\+/g; $result=~s/(\Q$matchthis\E)/\$1\<\/a\>/gs; } } - if ($ENV{'form.anchor'}) { - my $anchorname=$ENV{'form.anchor'}; + if ($env{'form.anchor'}) { + my $anchorname=$env{'form.anchor'}; my $matchthis=$anchorname; $matchthis=~s/\_+/\\s\+/g; $result=~s/(\Q$matchthis\E)/\$1\<\/a\>/s; @@ -1269,24 +1269,24 @@ ENDFOOTER } sub get_target { - my $viewgrades=&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'}); - if ( $ENV{'request.state'} eq 'published') { - if ( defined($ENV{'form.grade_target'}) + my $viewgrades=&Apache::lonnet::allowed('vgr',$env{'request.course.id'}); + if ( $env{'request.state'} eq 'published') { + if ( defined($env{'form.grade_target'}) && ($viewgrades == 'F' )) { - return ($ENV{'form.grade_target'}); - } elsif (defined($ENV{'form.grade_target'})) { - if (($ENV{'form.grade_target'} eq 'web') || - ($ENV{'form.grade_target'} eq 'tex') ) { - return $ENV{'form.grade_target'} + return ($env{'form.grade_target'}); + } elsif (defined($env{'form.grade_target'})) { + if (($env{'form.grade_target'} eq 'web') || + ($env{'form.grade_target'} eq 'tex') ) { + return $env{'form.grade_target'} } else { return 'web'; } } else { return 'web'; } - } elsif ($ENV{'request.state'} eq 'construct') { - if ( defined($ENV{'form.grade_target'})) { - return ($ENV{'form.grade_target'}); + } elsif ($env{'request.state'} eq 'construct') { + if ( defined($env{'form.grade_target'})) { + return ($env{'form.grade_target'}); } else { return 'web'; } @@ -1300,11 +1300,11 @@ sub handler { my $target=&get_target(); - $Apache::lonxml::debug=$ENV{'user.debug'}; + $Apache::lonxml::debug=$env{'user.debug'}; &Apache::loncommon::content_type($request,'text/html'); &Apache::loncommon::no_cache($request); - if ($ENV{'request.state'} eq 'published') { + if ($env{'request.state'} eq 'published') { $request->set_last_modified(&Apache::lonnet::metadata($request->uri, 'lastrevisiondate')); } @@ -1323,9 +1323,9 @@ sub handler { # # Edit action? Save file. # - unless ($ENV{'request.state'} eq 'published') { - if (($ENV{'form.savethisfile'}) || ($ENV{'form.attemptclean'})) { - if (&storefile($file,$ENV{'form.filecont'})) { + unless ($env{'request.state'} eq 'published') { + if (($env{'form.savethisfile'}) || ($env{'form.attemptclean'})) { + if (&storefile($file,$env{'form.filecont'})) { &Apache::lonxml::info("". &mt('Updated').": ". &Apache::lonlocal::locallocaltime(time). @@ -1350,21 +1350,21 @@ $bodytag ENDNOTFOUND $filecontents=''; - if ($ENV{'request.state'} ne 'published') { + if ($env{'request.state'} ne 'published') { if ($filetype eq 'sty') { $filecontents=&createnewsty(); } else { $filecontents=&createnewhtml(); } - $ENV{'form.editmode'}='Edit'; #force edit mode + $env{'form.editmode'}='Edit'; #force edit mode } } else { - unless ($ENV{'request.state'} eq 'published') { + unless ($env{'request.state'} eq 'published') { if ($filecontents=~/BEGIN LON-CAPA Internal/) { &Apache::lonxml::error(&mt('This file appears to be a rendering of a Lon-CAPA resource. If this is correct, this resource will act very oddly and incorrectly.')); } - if ($ENV{'form.attemptclean'}) { + if ($env{'form.attemptclean'}) { $filecontents=&htmlclean($filecontents,1); } # @@ -1372,7 +1372,7 @@ ENDNOTFOUND &Apache::loncommon::get_unprocessed_cgi ($ENV{'QUERY_STRING'},['editmode']); } - if (!$ENV{'form.editmode'} || $ENV{'form.viewmode'}) { + if (!$env{'form.editmode'} || $env{'form.viewmode'}) { $result = &Apache::lonxml::xmlparse($request,$target,$filecontents, '',%mystyle); undef($Apache::lonhomework::parsing_a_task); @@ -1382,12 +1382,12 @@ ENDNOTFOUND # # Edit action? Insert editing commands # - unless ($ENV{'request.state'} eq 'published') { - if ($ENV{'form.editmode'} && (!($ENV{'form.viewmode'}))) { + unless ($env{'request.state'} eq 'published') { + if ($env{'form.editmode'} && (!($env{'form.viewmode'}))) { my $displayfile=$request->uri; $displayfile=~s/^\/[^\/]*//; my $bodytag=''; - if ($ENV{'environment.remote'} eq 'off') { + if ($env{'environment.remote'} eq 'off') { $bodytag=&Apache::loncommon::bodytag(); } $result=''.$bodytag. @@ -1408,10 +1408,10 @@ ENDNOTFOUND sub display_title { my $result; - if ($ENV{'request.state'} eq 'construct') { + if ($env{'request.state'} eq 'construct') { my $title=&Apache::lonnet::gettitle(); if (!defined($title) || $title eq '') { - $title = $ENV{'request.filename'}; + $title = $env{'request.filename'}; $title = substr($title, rindex($title, '/') + 1); } $result = ""; @@ -1430,15 +1430,15 @@ sub debug { } sub show_error_warn_msg { - if ($ENV{'request.filename'} eq '/home/httpd/html/res/lib/templates/simpleproblem.problem' && - &Apache::lonnet::allowed('mdc',$ENV{'request.course.id'})) { + if ($env{'request.filename'} eq '/home/httpd/html/res/lib/templates/simpleproblem.problem' && + &Apache::lonnet::allowed('mdc',$env{'request.course.id'})) { return 1; } return (($Apache::lonxml::debug eq 1) || - ($ENV{'request.state'} eq 'construct') || + ($env{'request.state'} eq 'construct') || ($Apache::lonhomework::browse eq 'F' && - $ENV{'form.show_errors'} eq 'on')); + $env{'form.show_errors'} eq 'on')); } sub error { @@ -1457,11 +1457,11 @@ sub error { $errormsg=&mt("An error occured while processing this resource. The author has been notified."); } #notify author - &Apache::lonmsg::author_res_msg($ENV{'request.filename'},join('
',@_)); + &Apache::lonmsg::author_res_msg($env{'request.filename'},join('
',@_)); #notify course - if ( $symb && $ENV{'request.course.id'} ) { + if ( $symb && $env{'request.course.id'} ) { my (undef,%users)=&Apache::lonfeedback::decide_receiver(undef,0,1,1,1); - my $declutter=&Apache::lonnet::declutter($ENV{'request.filename'}); + my $declutter=&Apache::lonnet::declutter($env{'request.filename'}); my @userlist; foreach (keys %users) { my ($user,$domain) = split(/:/, $_); @@ -1469,7 +1469,7 @@ sub error { &Apache::lonmsg::user_normal_msg($user,$domain, "Error [$declutter]",join('
',@_)); } - if ($ENV{'request.role.adv'}) { + if ($env{'request.role.adv'}) { $errormsg=&mt("An error occured while processing this resource. The course personnel ([_1]) and the author have been notified.",join(', ',@userlist)); } else { $errormsg=&mt("An error occured while processing this resource. The instructor has been notified."); @@ -1482,7 +1482,7 @@ sub error { sub warning { $warningcount++; - if ($ENV{'form.grade_target'} ne 'tex') { + if ($env{'form.grade_target'} ne 'tex') { if ( &show_error_warn_msg() ) { my $request=$Apache::lonxml::request; if (!$request) { $request=Apache->request; } @@ -1495,8 +1495,8 @@ sub warning { } sub info { - if ($ENV{'form.grade_target'} ne 'tex' - && $ENV{'request.state'} eq 'construct') { + if ($env{'form.grade_target'} ne 'tex' + && $env{'request.state'} eq 'construct') { push(@Apache::lonxml::info_messages,join('
',@_)."
\n"); } } @@ -1647,15 +1647,15 @@ sub helpinfo { sub whichuser { my ($passedsymb)=@_; my ($symb,$courseid,$domain,$name,$publicuser); - if (defined($ENV{'form.grade_symb'})) { + if (defined($env{'form.grade_symb'})) { my ($tmp_courseid)= &Apache::loncommon::get_env_multiple('form.grade_courseid'); my $allowed=&Apache::lonnet::allowed('vgr',$tmp_courseid); if (!$allowed && - exists($ENV{'request.course.sec'}) && - $ENV{'request.course.sec'} !~ /^\s*$/) { + exists($env{'request.course.sec'}) && + $env{'request.course.sec'} !~ /^\s*$/) { $allowed=&Apache::lonnet::allowed('vgr',$tmp_courseid. - '/'.$ENV{'request.course.sec'}); + '/'.$env{'request.course.sec'}); } if ($allowed) { ($symb)=&Apache::loncommon::get_env_multiple('form.grade_symb'); @@ -1670,14 +1670,14 @@ sub whichuser { } else { $symb=$passedsymb; } - $courseid=$ENV{'request.course.id'}; - $domain=$ENV{'user.domain'}; - $name=$ENV{'user.name'}; + $courseid=$env{'request.course.id'}; + $domain=$env{'user.domain'}; + $name=$env{'user.name'}; if ($name eq 'public' && $domain eq 'public') { - if (!defined($ENV{'form.username'})) { - $ENV{'form.username'}.=time.rand(10000000); + if (!defined($env{'form.username'})) { + $env{'form.username'}.=time.rand(10000000); } - $name.=$ENV{'form.username'}; + $name.=$env{'form.username'}; } return ($symb,$courseid,$domain,$name,$publicuser); }