--- loncom/xml/lonxml.pm 2003/10/01 21:13:50 1.282
+++ loncom/xml/lonxml.pm 2003/11/11 16:48:11 1.292
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# XML Parser Module
#
-# $Id: lonxml.pm,v 1.282 2003/10/01 21:13:50 albertel Exp $
+# $Id: lonxml.pm,v 1.292 2003/11/11 16:48:11 sakharuk Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -96,6 +96,7 @@ use Apache::style();
use Apache::run();
use Apache::londefdef();
use Apache::scripttag();
+use Apache::languagetags();
use Apache::edit();
use Apache::inputtags();
use Apache::outputtags();
@@ -280,13 +281,13 @@ sub printtokenheader {
my %idhash=&Apache::lonnet::idrget($tudom,($tuname));
return
''.
- 'Checked out for '.$plainname.
- '
User: '.$tuname.' at '.$tudom.
- '
ID: '.$idhash{$tuname}.
- '
CourseID: '.$tcrsid.
- '
Course: '.$ENV{'course.'.$tcrsid.'.description'}.
- '
DocID: '.$token.
- '
Time: '.localtime().'
';
+ &mt('Checked out for').' '.$plainname.
+ '
'.&mt('User').': '.$tuname.' at '.$tudom.
+ '
'.&mt('ID').': '.$idhash{$tuname}.
+ '
'.&mt('CourseID').': '.$tcrsid.
+ '
'.&mt('Course').': '.$ENV{'course.'.$tcrsid.'.description'}.
+ '
'.&mt('DocID').': '.$token.
+ '
'.&mt('Time').': '.&Apache::lonlocal::locallocaltime().'
';
} else {
return $token;
}
@@ -319,6 +320,7 @@ sub xmlparse {
&Apache::inputtags::initialize_inputtags();
&Apache::outputtags::initialize_outputtags();
&Apache::edit::initialize_edit();
+ &Apache::londefdef::initialize_londefdef();
#
# do we have a course style file?
@@ -335,6 +337,13 @@ sub xmlparse {
&Apache::style::styleparser($target,$styletext));
}
}
+ } 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,
+ &Apache::style::styleparser($target,$styletext));
+ }
}
#&printalltags();
my @pars = ();
@@ -393,7 +402,7 @@ sub latex_special_symbols {
$string =~ s/_/ /g;
} else {
$string=~s/\\ /\\char92 /g;
- $string=~s/\^/\\char94 /g;
+ $string=~s/\^/\\\^ /g;
$string=~s/\~/\\char126 /g;
$string=~s/(&[^A-Za-z\#])/\\$1/g;
$string=~s/([^&])\#/$1\\#/g;
@@ -657,6 +666,7 @@ sub init_safespace {
$safeeval->permit("entereval");
$safeeval->permit(":base_math");
$safeeval->permit("sort");
+ $safeeval->permit("time");
$safeeval->deny(":base_io");
$safehole->wrap(\&Apache::scripttag::xmlparse,$safeeval,'&xmlparse');
$safehole->wrap(\&Apache::outputtags::multipart,$safeeval,'&multipart');
@@ -867,17 +877,13 @@ sub store_counter {
sub get_all_text {
my($tag,$pars,$style)= @_;
- &Apache::lonxml::debug("Got a ".ref($pars));
my $gotfullstack=1;
if (ref($pars) ne 'ARRAY') {
$gotfullstack=0;
$pars=[$pars];
}
- &Apache::lonxml::debug("Got a ".ref($style));
if (ref($style) ne 'HASH') {
$style={};
- } else {
- &Apache::lonhomework::showhash(%$style);
}
my $depth=0;
my $token;
@@ -901,7 +907,7 @@ sub get_all_text {
} elsif ($token->[0] eq 'E') {
if ( $token->[1] =~ /^$tag$/i) { $depth--; }
#skip sending back the last end tag
- if ($depth == 0 && exists($$style{'/'.$token->[1]})) {
+ if ($depth == 0 && exists($$style{'/'.$token->[1]}) && $Apache::lonxml::usestyle) {
my $string=
''.
$$style{'/'.$token->[1]}.
@@ -1061,6 +1067,7 @@ ENDSCRIPT
sub storefile {
my ($file,$contents)=@_;
+ &Apache::lonnet::correct_line_ends(\$contents);
if (my $fh=Apache::File->new('>'.$file)) {
print $fh $contents;
$fh->close();
@@ -1200,7 +1207,8 @@ sub handler {
unless ($ENV{'request.state'} eq 'published') {
if (($ENV{'form.savethisfile'}) || ($ENV{'form.attemptclean'})) {
if (&storefile($file,$ENV{'form.filecont'})) {
- $request->print("Updated: ". strftime("%d %b %H:%M:%S",localtime())." ");
+ $request->print("".&mt('Updated').": ".
+&Apache::lonlocal::locallocaltime(time)." ");
}
}
}
@@ -1208,13 +1216,15 @@ sub handler {
my $result = '';
my $filecontents=&Apache::lonnet::getfile($file);
if ($filecontents eq -1) {
+ my $bodytag=&Apache::loncommon::bodytag('File Error');
+ my $fnf=&mt('File not found');
$result=(<
-File not found
+$fnf
-
-File not found: $file
+$bodytag
+$fnf: $file