Diff for /loncom/xml/scripttag.pm between versions 1.107 and 1.119

version 1.107, 2004/02/10 18:58:26 version 1.119, 2004/10/08 13:43:31
Line 25 Line 25
 #  #
 # http://www.lon-capa.org/  # http://www.lon-capa.org/
 #  #
 # 2/21 Guy  
 # 8/20 Gerd Kortemeyer  
   
 package Apache::scripttag;  package Apache::scripttag;
   
Line 118  sub start_script { Line 116  sub start_script {
     ($ENV{'form.answer_output_mode'} ne 'tex') &&      ($ENV{'form.answer_output_mode'} ne 'tex') &&
     ($Apache::lonhomework::viewgrades == 'F')) {      ($Apache::lonhomework::viewgrades == 'F')) {
     $Apache::lonxml::evaluate--;      $Apache::lonxml::evaluate--;
     $result.="<script type=\"text/javascript\"> function LONCAPA_scriptvars_$Apache::lonxml::curdepth() {newWindow=open('','new_W','width=500,height=500,scrollbars=1,resizable=yes');newWindow.document.open('text/html','replace');newWindow.document.writeln('<html><head><title>Script Vars</title></head><body bgcolor=\"#FFFFFF\"><pre>";      my (undef,undef,$udom,$uname)=&Apache::lonxml::whichuser();
       my $windowopen=&Apache::lonhtmlcommon::javascript_docopen();
       $result.="<script type=\"text/javascript\"> function LONCAPA_scriptvars_".$uname."_".$udom."_"."$Apache::lonxml::curdepth() {newWindow=open('','new_W','width=500,height=500,scrollbars=1,resizable=yes');newWindow.$windowopen;newWindow.document.writeln('<html><head><title>Script Vars</title></head><body bgcolor=\"#FFFFFF\"><pre>";
     my $listing=&Apache::run::dump($target,$safeeval);      my $listing=&Apache::run::dump($target,$safeeval);
     $listing=~s/\'/\\\'/g;      $listing=~s/\'/\\\'/g;
     $listing=~s/\n/\\n/g;      $listing=~s/\n/\\n/g;
     $listing=~s/\r/\\r/g;      $listing=~s/\r/\\r/g;
     $result.=$listing;      $result.=$listing;
     $result.= "</pre></body></html>');newWindow.document.close();}</script><a href=\"javascript:LONCAPA_scriptvars_$Apache::lonxml::curdepth();void(0);\">Script Vars</a><br />";      $result.= "</pre></body></html>');newWindow.document.close();}</script><a href=\"javascript:LONCAPA_scriptvars_".$uname."_".$udom."_$Apache::lonxml::curdepth();void(0);\">Script Vars</a><br />";
  }   }
     } elsif ($target eq "edit" ) {      } elsif ($target eq "edit" ) {
       #&Apache::run::run($bodytext,$safeeval);        #&Apache::run::run($bodytext,$safeeval);
Line 136  sub start_script { Line 136  sub start_script {
  my $bodytext=&Apache::lonxml::get_all_text_unbalanced("/script",$parser);   my $bodytext=&Apache::lonxml::get_all_text_unbalanced("/script",$parser);
     }      }
   } else {    } else {
     if ($target ne "meta") {        my $bodytext=&Apache::lonxml::get_all_text_unbalanced("/script",$parser);
       $result = $token->[4];        if ($target ne "meta" && $target ne 'tex') {
       my $bodytext=&Apache::lonxml::get_all_text_unblanaced("/script",$parser);    $result = $token->[4];
       $result.=$bodytext;    $result.=$bodytext;
     }        }
   }    }
   return $result;    return $result;
 }  }
Line 151  sub end_script { Line 151  sub end_script {
   my $type = &Apache::lonxml::get_param('type',$parstack,$safeeval);    my $type = &Apache::lonxml::get_param('type',$parstack,$safeeval);
   my $result='';    my $result='';
   #other script blocks need to survive    #other script blocks need to survive
   if ($type ne "loncapa/perl") {    if ($type ne "loncapa/perl" && $target ne 'tex') {
     return $token->[2];      return $token->[2];
   } elsif ($target eq 'edit' ) {    } elsif ($target eq 'edit' ) {
     return &Apache::edit::end_table();      return &Apache::edit::end_table();
Line 163  sub end_script { Line 163  sub end_script {
   
 sub start_display {  sub start_display {
   my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;    my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     @Apache::scripttag::parser_env = @_;
   my $result;    my $result;
   
   if ( $target eq "modified" ) {    if ( $target eq "modified" ) {
Line 178  sub start_display { Line 178  sub start_display {
       $result=&Apache::run::run($bodytext,$safeeval);        $result=&Apache::run::run($bodytext,$safeeval);
       if ($target eq 'grade' || $target eq 'answer' ||        if ($target eq 'grade' || $target eq 'answer' ||
   $target eq 'analyze') {    $target eq 'analyze') {
   $result=''; # grade should produce no output    # grade/answer/analyxe should produce no output but if we
     # are redirecting, the redirecter should know what to do
     # with the output
     if (!$Apache::lonxml::redirection) { $result=''; }
       }        }
       $Apache::lonxml::post_evaluate=0;        $Apache::lonxml::post_evaluate=0;
   } elsif ($target eq "edit" ) {    } elsif ($target eq "edit" ) {
     my $bodytext=&Apache::lonxml::get_all_text_unblanced("/display",$parser);      my $bodytext=&Apache::lonxml::get_all_text_unbalanced("/display",$parser);
     #$result =       #$result = 
     #  "<br /> &lt;$token->[1]&gt; output: <br />$bodytext<br />Source:<br />";      #  "<br /> &lt;$token->[1]&gt; output: <br />$bodytext<br />Source:<br />";
     #$result.=&Apache::edit::editfield($token->[1],$bodytext,'',40,1);      #$result.=&Apache::edit::editfield($token->[1],$bodytext,'',40,1);
Line 481  sub end_comment { Line 484  sub end_comment {
   
 sub xmlparse {  sub xmlparse {
   my ($string) = @_;    my ($string) = @_;
 #  &Apache::lonxml::debug("Got $string");    &Apache::lonxml::debug("xmlparse recursion starting with $string");
     # Apache::run::evaluate does an 'eval' on the name of the subroutine
     # if it detects something that looks like a subroutine, this ends up calling
     # things without any arguments and since perl is nice enough to pass
     # along the default arguments when you don't explicitly say no arguments
     # if you call &xmlparse, it gets &xmlparse passed as it argument.
     # Same thing soccurs with &chemparse.
     if ($string eq '&xmlparse') { return '&xmlparse'; }
     if ($string eq '&chemparse') { return '&chemparse'; }
   my ($target,$token,$tagstack,$parstack,$oldparser,$safeeval,$style)=    my ($target,$token,$tagstack,$parstack,$oldparser,$safeeval,$style)=
     @Apache::scripttag::parser_env;      @Apache::scripttag::parser_env;
   my @parser;    my @parser;
Line 489  sub xmlparse { Line 500  sub xmlparse {
   my $result=&Apache::lonxml::inner_xmlparse($target,$tagstack,    my $result=&Apache::lonxml::inner_xmlparse($target,$tagstack,
      $parstack,\@parser,       $parstack,\@parser,
      $safeeval,$style);       $safeeval,$style);
     &Apache::lonxml::debug("xmlparse recursion ending with $result");
   return $result;    return $result;
 }  }
   

Removed from v.1.107  
changed lines
  Added in v.1.119


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>