--- loncom/xml/lonxml.pm 2003/05/28 21:05:33 1.258
+++ loncom/xml/lonxml.pm 2003/06/16 21:32:43 1.264
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# XML Parser Module
#
-# $Id: lonxml.pm,v 1.258 2003/05/28 21:05:33 albertel Exp $
+# $Id: lonxml.pm,v 1.264 2003/06/16 21:32:43 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -151,6 +151,10 @@ $Apache::lonxml::counter_changed=0;
#internal check on whether to look at style defs
$Apache::lonxml::usestyle=1;
+#locations used to store the parameter string for style substitutions
+$Apache::lonxml::style_values='';
+$Apache::lonxml::style_end_values='';
+
sub xmlbegin {
my $output='';
if ($ENV{'browser.mathml'}) {
@@ -382,7 +386,7 @@ sub fontsettings() {
if (($ENV{'browser.os'} eq 'mac') && (!$ENV{'browser.mathml'})) {
$headerstring.=
'';
- } elsif (!$ENV{'browser.mathml'}) {
+ } elsif (!$ENV{'browser.mathml'} && $ENV{'browser.unicode'}) {
$headerstring.=
'';
}
@@ -497,7 +501,7 @@ sub inner_xmlparse {
my $dontpop=0;
while ( $#$pars > -1 ) {
while ($token = $$pars['-1']->get_token) {
- if (($token->[0] eq 'T') || ($token->[0] eq 'C') || ($token->[0] eq 'D') ) {
+ if (($token->[0] eq 'T') || ($token->[0] eq 'C') ) {
if ($metamode<1) {
my $text=$token->[1];
if ($token->[0] eq 'C' && $target eq 'tex') {
@@ -506,8 +510,13 @@ sub inner_xmlparse {
}
$result.=$text;
}
+ } elsif (($token->[0] eq 'D')) {
+ if ($metamode<1 && $target eq 'web') {
+ my $text=$token->[1];
+ $result.=$text;
+ }
} elsif ($token->[0] eq 'PI') {
- if ($metamode<1) {
+ if ($metamode<1 && $target eq 'web') {
$result=$token->[2];
}
} elsif ($token->[0] eq 'S') {
@@ -523,6 +532,7 @@ sub inner_xmlparse {
'';
&Apache::lonxml::newparser($pars,\$string);
$Apache::lonxml::style_values=$$parstack[-1];
+ $Apache::lonxml::style_end_values=$$parstack[-1];
} else {
$result = &callsub("start_$token->[1]", $target, $token, $stack,
$parstack, $pars, $safeeval, $style_for_target);
@@ -534,7 +544,8 @@ sub inner_xmlparse {
my $string=$$style_for_target{'/'.$token->[1]}.
'';
&Apache::lonxml::newparser($pars,\$string);
- $Apache::lonxml::style_values=$$parstack[-1];
+ $Apache::lonxml::style_values=$Apache::lonxml::style_end_values;
+ $Apache::lonxml::style_end_values='';
$dontpop=1;
} else {
#clear out any tags that didn't end
@@ -1238,6 +1249,10 @@ ENDNOTFOUND
if ($ENV{'form.attemptclean'}) {
$filecontents=&htmlclean($filecontents,1);
}
+#
+# we are in construction space, see if edit mode forced
+ &Apache::loncommon::get_unprocessed_cgi
+ ($ENV{'QUERY_STRING'},['editmode']);
}
if (!$ENV{'form.editmode'} || $ENV{'form.viewmode'}) {
$result = &Apache::lonxml::xmlparse($request,$target,$filecontents,
@@ -1314,8 +1329,11 @@ sub error {
sub warning {
$warningcount++;
- if ($ENV{'request.state'} eq 'construct' || $Apache::lonxml::debug) {
- print "WARNING:".join('
',@_)."
\n";
+
+ if ($ENV{'form.grade_target'} ne 'tex') {
+ if ($ENV{'request.state'} eq 'construct' || $Apache::lonxml::debug) {
+ print "WARNING:".join('
',@_)."
\n";
+ }
}
}
@@ -1424,6 +1442,7 @@ sub description {
# calls to lonnet functions for this setup.
# - looks for form.grade_ parameters
sub whichuser {
+ my ($passedsymb)=@_;
my ($symb,$courseid,$domain,$name,$publicuser);
if (defined($ENV{'form.grade_symb'})) {
my $tmp_courseid=$ENV{'form.grade_courseid'};
@@ -1435,7 +1454,11 @@ sub whichuser {
$name=$ENV{'form.grade_username'};
}
} else {
- $symb=&Apache::lonnet::symbread();
+ if (!$passedsymb) {
+ $symb=&Apache::lonnet::symbread();
+ } else {
+ $symb=$passedsymb;
+ }
$courseid=$ENV{'request.course.id'};
$domain=$ENV{'user.domain'};
$name=$ENV{'user.name'};