--- loncom/xml/scripttag.pm 2000/11/22 21:13:35 1.25 +++ loncom/xml/scripttag.pm 2001/01/04 19:15:02 1.29 @@ -16,9 +16,7 @@ sub BEGIN { sub start_script { my ($target,$token,$parstack,$parser,$safeeval)=@_; my $args =''; - if ( $#$parstack > -1 ) { - $args=$$parstack[$#$parstack]; - } + if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } my $type = &Apache::run::run("{$args;".'return $type}',$safeeval); my $result=''; #&Apache::lonxml::debug("found type of $type"); @@ -26,23 +24,30 @@ sub start_script { my $bodytext=&Apache::lonxml::get_all_text("/script",$$parser[$#$parser]); if ( $target eq "modified" ) { - } - &Apache::run::run($bodytext,$safeeval); - - if ($target eq "edit" ) { + + } elsif ( $target eq "web" || $target eq "grade" ) { + &Apache::run::run($bodytext,$safeeval); + } elsif ($target eq "edit" ) { + &Apache::run::run($bodytext,$safeeval); $result="
<$token->[1]> output:
$bodytext
Source:
"; $result.=&editfield($token->[1],$bodytext); } } else { - $result = $token->[4]; + if ($target ne "meta") { $result = $token->[4]; } } return $result; } sub end_script { my ($target,$token,$parstack,$parser,$safeeval)=@_; -# return ''; - return $token->[2]; + if ( $target eq "meta" ) { return ''; } + my $args =''; + if ( $#$parstack > -1 ) { $args=$$parstack[$#$parstack]; } + my $type = &Apache::run::run("{$args;".'return $type}',$safeeval); + my $result=''; + #other script blocks need to survive + if ($type ne "loncapa/perl") { return $token->[2]; } + return ''; } sub start_display { @@ -56,7 +61,10 @@ sub start_display { if ( $target eq "modified" ) { } my $result=&Apache::run::run($bodytext,$safeeval); - + if ($target eq 'grade' ) { + # grade should produce no output + $result=''; + } if ($target eq "edit" ) { $result = "
<$token->[1]> output:
$bodytext
Source:
"; @@ -103,6 +111,7 @@ sub start_parserlib { my $location=&Apache::lonnet::filelocation($Apache::lonxml::pwd['-1'], $bodytext); my $styletext=&Apache::lonnet::getfile($location); + #&Apache::lonxml::debug("found :$bodytext: in :$location: with :$styletext:"); if ($styletext == -1) { &Apache::lonxml::error(" Unable to find $location for parserlib"); return ""; @@ -155,6 +164,7 @@ sub start_import { $result.=&editfield($token->[1],$bodytext); $result.="Clickhere to edit

" } + return ''; } sub end_import {