Diff for /loncom/xml/lonxml.pm between versions 1.334 and 1.337

version 1.334, 2004/08/10 18:03:30 version 1.337, 2004/08/23 19:53:13
Line 165  sub xmlbegin { Line 165  sub xmlbegin {
 }  }
   
 sub xmlend {  sub xmlend {
     my ($target,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$parser)=@_;
     my $mode='xml';      my $mode='xml';
     my $status='OPEN';      my $status='OPEN';
     if ($Apache::lonhomework::parsing_a_problem) {      if ($Apache::lonhomework::parsing_a_problem) {
  $mode='problem';   $mode='problem';
  $status=$Apache::inputtags::status[-1];    $status=$Apache::inputtags::status[-1]; 
     }      }
     my $discussion=&Apache::lonfeedback::list_discussion($mode,$status,'',$target,$tagstack,$parstack,$parser,$safeeval);      my $discussion=&Apache::lonfeedback::list_discussion($mode,$status);    
     if ($target eq 'tex') {      if ($target eq 'tex') {
    $discussion.='<tex>\keephidden{ENDOFPROBLEM}\vskip 0.5mm\noindent\makebox[\textwidth/$number_of_columns][b]{\hrulefill}\end{document}</tex>';
  &Apache::lonxml::newparser($parser,\$discussion,'');   &Apache::lonxml::newparser($parser,\$discussion,'');
  return '';   return '';
     } else {      } else {
Line 319  sub xmlparse { Line 320  sub xmlparse {
      my $bodytext=       my $bodytext=
  $ENV{'course.'.$ENV{'request.course.id'}.'.default_xml_style'};   $ENV{'course.'.$ENV{'request.course.id'}.'.default_xml_style'};
      if ($bodytext) {       if ($bodytext) {
        my $location=&Apache::lonnet::filelocation('',$bodytext);   foreach my $file (split(',',$bodytext)) {
        my $styletext=&Apache::lonnet::getfile($location);       my $location=&Apache::lonnet::filelocation('',$file);
        if ($styletext ne '-1') {       my $styletext=&Apache::lonnet::getfile($location);
           %style_for_target = (%style_for_target,       if ($styletext ne '-1') {
                           &Apache::style::styleparser($target,$styletext));   %style_for_target = (%style_for_target,
        }        &Apache::style::styleparser($target,$styletext));
     }       }
    }
        }
  } elsif ($ENV{'construct.style'} && ($ENV{'request.state'} eq 'construct')) {   } elsif ($ENV{'construct.style'} && ($ENV{'request.state'} eq 'construct')) {
      my $location=&Apache::lonnet::filelocation('',$ENV{'construct.style'});       my $location=&Apache::lonnet::filelocation('',$ENV{'construct.style'});
      my $styletext=&Apache::lonnet::getfile($location);       my $styletext=&Apache::lonnet::getfile($location);
Line 1339  sub debug { Line 1342  sub debug {
 }  }
   
 sub error {  sub error {
   $errorcount++;      $errorcount++;
   my $request=$Apache::lonxml::request;      if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) {
   if (!$request) { $request=Apache->request; }   # If printing in construction space, put the error inside <pre></pre>
   if (($Apache::lonxml::debug eq 1) || ($ENV{'request.state'} eq 'construct') ) {   push(@Apache::lonxml::error_messages,
     # If printing in construction space, put the error inside <pre></pre>       $Apache::lonxml::warnings_error_header.
       push(@Apache::lonxml::error_messages,       "<b>ERROR:</b>".join("<br />\n",@_)."<br />\n");
    $Apache::lonxml::warnings_error_header.   $Apache::lonxml::warnings_error_header='';
    "<b>ERROR:</b>".join("<br />\n",@_)."<br />\n");      } else {
       $Apache::lonxml::warnings_error_header='';   my $errormsg;
   } else {   my ($symb)=&Apache::lonnet::symbread();
       push(@Apache::lonxml::error_messages,   if ( !$symb ) {
    "<b>An Error occured while processing this resource. The instructor has been notified.</b> <br />");      #public or browsers
     #notify author      $errormsg=&mt("An error occured while processing this resource. The author has been notified.");
     &Apache::lonmsg::author_res_msg($ENV{'request.filename'},join('<br />',@_));   } 
     #notify course   #notify author
     if ( $ENV{'request.course.id'} ) {   &Apache::lonmsg::author_res_msg($ENV{'request.filename'},join('<br />',@_));
       my (undef,%users)=&Apache::lonfeedback::decide_receiver(undef,0,1,1,1);   #notify course
       my $declutter=&Apache::lonnet::declutter($ENV{'request.filename'});   if ( $symb && $ENV{'request.course.id'} ) {
       foreach (keys %users) {      my (undef,%users)=&Apache::lonfeedback::decide_receiver(undef,0,1,1,1);
  my ($user,$domain) = split(/:/, $_);      my $declutter=&Apache::lonnet::declutter($ENV{'request.filename'});
  &Apache::lonmsg::user_normal_msg($user,$domain,      my @userlist;
         "Error [$declutter]",join('<br />',@_));      foreach (keys %users) {
       }   my ($user,$domain) = split(/:/, $_);
    push(@userlist,"$user\@$domain");
    &Apache::lonmsg::user_normal_msg($user,$domain,
    "Error [$declutter]",join('<br />',@_));
       }
       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.");
       }
    }
    push(@Apache::lonxml::error_messages,"<b>$errormsg</b> <br />");
     }      }
   }  
 }  }
   
 sub warning {  sub warning {

Removed from v.1.334  
changed lines
  Added in v.1.337


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