--- loncom/xml/lonxml.pm 2003/09/27 04:08:56 1.281
+++ loncom/xml/lonxml.pm 2003/10/29 18:29:24 1.289
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# XML Parser Module
#
-# $Id: lonxml.pm,v 1.281 2003/09/27 04:08:56 albertel Exp $
+# $Id: lonxml.pm,v 1.289 2003/10/29 18:29:24 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();
@@ -163,6 +164,9 @@ $Apache::lonxml::style_end_values='';
#array of ssi calls that need to occur after we are done parsing
@Apache::lonxml::ssi_info=();
+#should we do the postag variable interpolation
+$Apache::lonxml::post_evaluate=1;
+
sub xmlbegin {
my $output='';
if ($ENV{'browser.mathml'}) {
@@ -277,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;
}
@@ -316,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?
@@ -390,7 +395,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;
@@ -477,7 +482,7 @@ sub inner_xmlparse {
&Apache::lonxml::error("Unknown token event :$token->[0]:$token->[1]:");
}
#evaluate variable refs in result
- if ($result ne "") {
+ if ($Apache::lonxml::post_evaluate &&$result ne "") {
my $extras;
if (!$Apache::lonxml::usestyle) {
$extras=$Apache::lonxml::style_values;
@@ -488,6 +493,8 @@ sub inner_xmlparse {
$result= &Apache::run::evaluate($result,$safeeval,$extras);
}
}
+ $Apache::lonxml::post_evaluate=1;
+
if (($token->[0] eq 'T') || ($token->[0] eq 'C') || ($token->[0] eq 'D') ) {
#Style file definitions should be correct
if ($target eq 'tex' && ($Apache::lonxml::usestyle)) {
@@ -608,6 +615,7 @@ sub setup_globals {
@Apache::lonxml::pwd=();
@Apache::lonxml::extlinks=();
@Apache::lonxml::ssi_info=();
+ $Apache::lonxml::post_evaluate=1;
if ($target eq 'meta') {
$Apache::lonxml::redirection = 0;
$Apache::lonxml::metamode = 1;
@@ -651,6 +659,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');
@@ -861,17 +870,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;
@@ -895,7 +900,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]}.
@@ -1194,7 +1199,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)." ");
}
}
}
@@ -1202,13 +1208,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