--- loncom/xml/lonxml.pm 2001/01/30 21:01:36 1.49 +++ loncom/xml/lonxml.pm 2001/02/14 02:57:02 1.53 @@ -333,7 +333,8 @@ sub parstring { map { unless ($_=~/\W/) { my $val=$token->[2]->{$_}; - if ($val =~ m/^[\%\@]/) { $val="\\".$val; } + $val =~ s/([\%\@\\])/\\$1/g; + #if ($val =~ m/^[\%\@]/) { $val="\\".$val; } $temp .= "my \$$_=\"$val\";" } } @{$token->[3]}; @@ -378,12 +379,19 @@ sub handler { $request->print(''."\n"); - my $file = "/home/httpd/html".$request->uri; + my $file=&Apache::lonnet::filelocation("",$request->uri); my %mystyle; - my $result = ''; - $result = Apache::lonxml::xmlparse($target, &Apache::lonnet::getfile($file),'',%mystyle); + my $result = ''; + my $filecontents=&Apache::lonnet::getfile($file); + if ($filecontents == -1) { + &Apache::lonxml::error(" Unable to find $file"); + $filecontents=''; + } else { + $result = &Apache::lonxml::xmlparse($target,$filecontents,'',%mystyle); + } $request->print($result); + $request->print(''); $request->print(&Apache::lontexconvert::footer()); writeallows($request->uri); @@ -398,7 +406,25 @@ sub debug { } sub error { - print "ERROR:".$_[0]."
\n"; + if ($Apache::lonxml::debug eq 1) { + print "ERROR:".$_[0]."
\n"; + } else { + print "An Error occured while processing this resource. The instructor has been notified.
"; + #notify author + &Apache::lonmsg::author_res_msg($ENV{'request.filename'},$_[0]); + #notify course + if ( $ENV{'request.course.id'} ) { + my $users=$ENV{'course.'.$ENV{'request.course.id'}.'.comment.email'}; + foreach my $user (split /\,/, $users) { + ($user,my $domain) = split /:/, $user; + &Apache::lonmsg::user_crit_msg($user,$domain,"Error in $ENV{'request.filename'}",$_[0]); + } + } + + #FIXME probably shouldn't have me get everything forever. + &Apache::lonmsg::user_crit_msg('albertel','msu',"Error in $ENV{'request.filename'}",$_[0]); + #&Apache::lonmsg::user_crit_msg('albertel','103',"Error in $ENV{'request.filename'}",$_[0]); + } } sub warning { @@ -409,21 +435,3 @@ sub warning { 1; __END__ - - - - - - - - - - - - - - - - - -