Diff for /loncom/xml/lonxml.pm between versions 1.341 and 1.353

version 1.341, 2004/10/05 20:18:29 version 1.353, 2005/01/28 21:08:45
Line 159  sub xmlbegin { Line 159  sub xmlbegin {
             .'<html xmlns:math="http://www.w3.org/1998/Math/MathML" '               .'<html xmlns:math="http://www.w3.org/1998/Math/MathML" ' 
  .'xmlns="http://www.w3.org/TR/REC-html40">';   .'xmlns="http://www.w3.org/TR/REC-html40">';
   } else {    } else {
       $output='<html>';        $output='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
   <html>';
   }    }
   return $output;    return $output;
 }  }
Line 287  sub fontsettings() { Line 288  sub fontsettings() {
     my $headerstring='';      my $headerstring='';
     if (($ENV{'browser.os'} eq 'mac') && (!$ENV{'browser.mathml'})) {       if (($ENV{'browser.os'} eq 'mac') && (!$ENV{'browser.mathml'})) { 
  $headerstring.=   $headerstring.=
     '<meta Content-Type="text/html; charset=x-mac-roman">';      '<meta Content-Type="text/html; charset=x-mac-roman" />';
     } elsif (!$ENV{'browser.mathml'} && $ENV{'browser.unicode'}) {      } elsif (!$ENV{'browser.mathml'} && $ENV{'browser.unicode'}) {
  $headerstring.=   $headerstring.=
     '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';      '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />';
Line 1028  sub parstring { Line 1029  sub parstring {
     unless ($_=~/\W/) {      unless ($_=~/\W/) {
       my $val=$token->[2]->{$_};        my $val=$token->[2]->{$_};
       $val =~ s/([\%\@\\\"\'])/\\$1/g;        $val =~ s/([\%\@\\\"\'])/\\$1/g;
       $val =~ s/^(\$\d)/\\$1/;        $val =~ s/(\$[^{a-zA-Z_])/\\$1/g;
         $val =~ s/(\$)$/\\$1/;
       #if ($val =~ m/^[\%\@]/) { $val="\\".$val; }        #if ($val =~ m/^[\%\@]/) { $val="\\".$val; }
       $temp .= "my \$$_=\"$val\";";        $temp .= "my \$$_=\"$val\";";
     }      }
Line 1155  sub inserteditinfo { Line 1157  sub inserteditinfo {
       if ($filetype eq 'html') {        if ($filetype eq 'html') {
   my $addbuttons=&Apache::lonhtmlcommon::htmlareaaddbuttons();    my $addbuttons=&Apache::lonhtmlcommon::htmlareaaddbuttons();
   $initialize=&Apache::lonhtmlcommon::htmlareaheaders().    $initialize=&Apache::lonhtmlcommon::htmlareaheaders().
       &Apache::lonhtmlcommon::spellheader().(<<FULLPAGE);        &Apache::lonhtmlcommon::spellheader();
     if (!&Apache::lonhtmlcommon::htmlareablocked() &&
         &Apache::lonhtmlcommon::htmlareabrowser()) {
         $initialize.=(<<FULLPAGE);
 <script type="text/javascript">  <script type="text/javascript">
 $addbuttons  $addbuttons
   
Line 1168  $addbuttons Line 1173  $addbuttons
     }      }
 </script>  </script>
 FULLPAGE  FULLPAGE
             } else {
         $initialize.=(<<FULLPAGE);
   <script type="text/javascript">
   $addbuttons
       function initDocument() {
       }
   </script>
   FULLPAGE
     }
           $result=~s/\<body([^\>]*)\>/\<body onload="initDocument()" $1\>/i;            $result=~s/\<body([^\>]*)\>/\<body onload="initDocument()" $1\>/i;
   $xml_help=&Apache::loncommon::helpLatexCheatsheet();    $xml_help=&Apache::loncommon::helpLatexCheatsheet();
       }        }
Line 1247  sub handler { Line 1261  sub handler {
  &Apache::loncommon::content_type($request,'text/html');   &Apache::loncommon::content_type($request,'text/html');
     }      }
     &Apache::loncommon::no_cache($request);      &Apache::loncommon::no_cache($request);
       $request->set_last_modified(&Apache::lonnet::metadata($request->uri,
     'lastrevisiondate'));
     $request->send_http_header;      $request->send_http_header;
           
     return OK if $request->header_only;      return OK if $request->header_only;
Line 1288  $bodytag Line 1304  $bodytag
 </body>  </body>
 </html>  </html>
 ENDNOTFOUND  ENDNOTFOUND
     $filecontents='';          $filecontents='';
  if ($ENV{'request.state'} ne 'published') {   if ($ENV{'request.state'} ne 'published') {
     if ($filetype eq 'sty') {      if ($filetype eq 'sty') {
  $filecontents=&createnewsty();   $filecontents=&createnewsty();
Line 1299  ENDNOTFOUND Line 1315  ENDNOTFOUND
  }   }
     } else {      } 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);   $filecontents=&htmlclean($filecontents,1);
     }      }
Line 1320  ENDNOTFOUND Line 1340  ENDNOTFOUND
  if ($ENV{'form.editmode'} && (!($ENV{'form.viewmode'}))) {   if ($ENV{'form.editmode'} && (!($ENV{'form.viewmode'}))) {
     my $displayfile=$request->uri;      my $displayfile=$request->uri;
     $displayfile=~s/^\/[^\/]*//;      $displayfile=~s/^\/[^\/]*//;
     $result='<html><body bgcolor="#FFFFFF">'.      my $bodytag='<body bgcolor="#FFFFFF">';
       if ($ENV{'environment.remote'} eq 'off') {
    $bodytag=&Apache::loncommon::bodytag();
       }
       $result='<html>'.$bodytag.
  &Apache::lonxml::message_location().'<h3>'.   &Apache::lonxml::message_location().'<h3>'.
  $displayfile.   $displayfile.
  '</h3></body></html>';   '</h3></body></html>';
Line 1355  sub debug { Line 1379  sub debug {
  my $request=$Apache::lonxml::request;   my $request=$Apache::lonxml::request;
  if (!$request) { $request=Apache->request; }   if (!$request) { $request=Apache->request; }
  $request->print('<font size="-2"><pre>DEBUG:'.&HTML::Entities::encode($_[0],'<>&"')."</pre></font>\n");   $request->print('<font size="-2"><pre>DEBUG:'.&HTML::Entities::encode($_[0],'<>&"')."</pre></font>\n");
 # &Apache::lonnet::logthis($_[0]);   #&Apache::lonnet::logthis($_[0]);
     }      }
 }  }
   
   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'})) {
    return 1;
       }
       return (($Apache::lonxml::debug eq 1) ||
       ($ENV{'request.state'} eq 'construct') ||
       ($Apache::lonhomework::browse eq 'F'
        &&
        $ENV{'form.show_errors'} eq 'on'));
   }
   
 sub error {  sub error {
     $errorcount++;      $errorcount++;
     if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) {      if ( &show_error_warn_msg() ) {
  # If printing in construction space, put the error inside <pre></pre>   # If printing in construction space, put the error inside <pre></pre>
  push(@Apache::lonxml::error_messages,   push(@Apache::lonxml::error_messages,
      $Apache::lonxml::warnings_error_header.       $Apache::lonxml::warnings_error_header.
Line 1401  sub warning { Line 1437  sub warning {
     $warningcount++;      $warningcount++;
       
     if ($ENV{'form.grade_target'} ne 'tex') {      if ($ENV{'form.grade_target'} ne 'tex') {
  if ($ENV{'request.state'} eq 'construct' || $Apache::lonxml::debug) {   if ( &show_error_warn_msg() ) {
     my $request=$Apache::lonxml::request;      my $request=$Apache::lonxml::request;
     if (!$request) { $request=Apache->request; }      if (!$request) { $request=Apache->request; }
     push(@Apache::lonxml::warning_messages,      push(@Apache::lonxml::warning_messages,
Line 1566  sub whichuser { Line 1602  sub whichuser {
   my ($passedsymb)=@_;    my ($passedsymb)=@_;
   my ($symb,$courseid,$domain,$name,$publicuser);    my ($symb,$courseid,$domain,$name,$publicuser);
   if (defined($ENV{'form.grade_symb'})) {    if (defined($ENV{'form.grade_symb'})) {
     my $tmp_courseid=$ENV{'form.grade_courseid'};        my ($tmp_courseid)=
     my $allowed=&Apache::lonnet::allowed('vgr',$tmp_courseid);    &Apache::loncommon::get_env_multiple('form.grade_courseid');
     if ($allowed) {        my $allowed=&Apache::lonnet::allowed('vgr',$tmp_courseid);
       $symb=$ENV{'form.grade_symb'};        if (!$allowed && 
       $courseid=$ENV{'form.grade_courseid'};    exists($ENV{'request.course.sec'}) && 
       $domain=$ENV{'form.grade_domain'};    $ENV{'request.course.sec'} !~ /^\s*$/) {
       $name=$ENV{'form.grade_username'};    $allowed=&Apache::lonnet::allowed('vgr',$tmp_courseid.
     }      '/'.$ENV{'request.course.sec'});
   } else {  
       if (!$passedsymb) {  
           $symb=&Apache::lonnet::symbread();  
       } else {  
           $symb=$passedsymb;  
       }        }
       $courseid=$ENV{'request.course.id'};        if ($allowed) {
       $domain=$ENV{'user.domain'};    ($symb)=&Apache::loncommon::get_env_multiple('form.grade_symb');
       $name=$ENV{'user.name'};    $courseid=$tmp_courseid;
       if ($name eq 'public' && $domain eq 'public') {    ($domain)=&Apache::loncommon::get_env_multiple('form.grade_domain');
   if (!defined($ENV{'form.username'})) {    ($name)=&Apache::loncommon::get_env_multiple('form.grade_username');
       $ENV{'form.username'}.=time.rand(10000000);    return ($symb,$courseid,$domain,$name,$publicuser);
   }        }
   $name.=$ENV{'form.username'};    }
     if (!$passedsymb) {
         $symb=&Apache::lonnet::symbread();
     } else {
         $symb=$passedsymb;
     }
     $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);
       }        }
         $name.=$ENV{'form.username'};
   }    }
   return ($symb,$courseid,$domain,$name,$publicuser);    return ($symb,$courseid,$domain,$name,$publicuser);
 }  }

Removed from v.1.341  
changed lines
  Added in v.1.353


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>