version 1.280, 2003/09/21 21:40:06
|
version 1.283, 2003/10/02 05:45:38
|
Line 160 $Apache::lonxml::usestyle=1;
|
Line 160 $Apache::lonxml::usestyle=1;
|
$Apache::lonxml::style_values=''; |
$Apache::lonxml::style_values=''; |
$Apache::lonxml::style_end_values=''; |
$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 { |
sub xmlbegin { |
my $output=''; |
my $output=''; |
if ($ENV{'browser.mathml'}) { |
if ($ENV{'browser.mathml'}) { |
Line 353 sub xmlparse {
|
Line 359 sub xmlparse {
|
if ($ENV{'request.uri'}) { |
if ($ENV{'request.uri'}) { |
&writeallows($ENV{'request.uri'}); |
&writeallows($ENV{'request.uri'}); |
} |
} |
|
&do_registered_ssi(); |
if ($Apache::lonxml::counter_changed) { &store_counter() } |
if ($Apache::lonxml::counter_changed) { &store_counter() } |
return $finaloutput; |
return $finaloutput; |
} |
} |
Line 473 sub inner_xmlparse {
|
Line 480 sub inner_xmlparse {
|
&Apache::lonxml::error("Unknown token event :$token->[0]:$token->[1]:"); |
&Apache::lonxml::error("Unknown token event :$token->[0]:$token->[1]:"); |
} |
} |
#evaluate variable refs in result |
#evaluate variable refs in result |
if ($result ne "") { |
if ($Apache::lonxml::post_evaluate &&$result ne "") { |
my $extras; |
my $extras; |
if (!$Apache::lonxml::usestyle) { |
if (!$Apache::lonxml::usestyle) { |
$extras=$Apache::lonxml::style_values; |
$extras=$Apache::lonxml::style_values; |
Line 484 sub inner_xmlparse {
|
Line 491 sub inner_xmlparse {
|
$result= &Apache::run::evaluate($result,$safeeval,$extras); |
$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') ) { |
if (($token->[0] eq 'T') || ($token->[0] eq 'C') || ($token->[0] eq 'D') ) { |
#Style file definitions should be correct |
#Style file definitions should be correct |
if ($target eq 'tex' && ($Apache::lonxml::usestyle)) { |
if ($target eq 'tex' && ($Apache::lonxml::usestyle)) { |
Line 603 sub setup_globals {
|
Line 612 sub setup_globals {
|
&init_counter(); |
&init_counter(); |
@Apache::lonxml::pwd=(); |
@Apache::lonxml::pwd=(); |
@Apache::lonxml::extlinks=(); |
@Apache::lonxml::extlinks=(); |
|
@Apache::lonxml::ssi_info=(); |
|
$Apache::lonxml::post_evaluate=1; |
if ($target eq 'meta') { |
if ($target eq 'meta') { |
$Apache::lonxml::redirection = 0; |
$Apache::lonxml::redirection = 0; |
$Apache::lonxml::metamode = 1; |
$Apache::lonxml::metamode = 1; |
Line 856 sub store_counter {
|
Line 867 sub store_counter {
|
|
|
sub get_all_text { |
sub get_all_text { |
my($tag,$pars,$style)= @_; |
my($tag,$pars,$style)= @_; |
&Apache::lonxml::debug("Got a ".ref($pars)); |
|
my $gotfullstack=1; |
my $gotfullstack=1; |
if (ref($pars) ne 'ARRAY') { |
if (ref($pars) ne 'ARRAY') { |
$gotfullstack=0; |
$gotfullstack=0; |
$pars=[$pars]; |
$pars=[$pars]; |
} |
} |
&Apache::lonxml::debug("Got a ".ref($style)); |
|
if (ref($style) ne 'HASH') { |
if (ref($style) ne 'HASH') { |
$style={}; |
$style={}; |
} else { |
|
&Apache::lonhomework::showhash(%$style); |
|
} |
} |
my $depth=0; |
my $depth=0; |
my $token; |
my $token; |
Line 890 sub get_all_text {
|
Line 897 sub get_all_text {
|
} elsif ($token->[0] eq 'E') { |
} elsif ($token->[0] eq 'E') { |
if ( $token->[1] =~ /^$tag$/i) { $depth--; } |
if ( $token->[1] =~ /^$tag$/i) { $depth--; } |
#skip sending back the last end tag |
#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= |
my $string= |
'<LONCAPA_INTERNAL_TURN_STYLE_OFF end="yes" />'. |
'<LONCAPA_INTERNAL_TURN_STYLE_OFF end="yes" />'. |
$$style{'/'.$token->[1]}. |
$$style{'/'.$token->[1]}. |
Line 998 sub writeallows {
|
Line 1005 sub writeallows {
|
&Apache::lonnet::appenv(%httpref); |
&Apache::lonnet::appenv(%httpref); |
} |
} |
|
|
|
sub register_ssi { |
|
my ($url,%form)=@_; |
|
push (@Apache::lonxml::ssi_info,{'url'=>$url,'form'=>\%form}); |
|
return ''; |
|
} |
|
|
|
sub do_registered_ssi { |
|
foreach my $info (@Apache::lonxml::ssi_info) { |
|
my %form=%{ $info->{'form'}}; |
|
my $url=$info->{'url'}; |
|
&Apache::lonnet::ssi($url,%form); |
|
} |
|
} |
# |
# |
# Afterburner handles anchors, highlights and links |
# Afterburner handles anchors, highlights and links |
# |
# |