Diff for /loncom/xml/lonxml.pm between versions 1.150 and 1.152

version 1.150, 2002/01/18 17:04:46 version 1.152, 2002/02/21 04:11:25
Line 538  sub inner_xmlparse { Line 538  sub inner_xmlparse {
     &Apache::lonxml::warning('Using tag </'.$token->[1].'> as end tag to <'.$$stack[-1].'>');      &Apache::lonxml::warning('Using tag </'.$token->[1].'> as end tag to <'.$$stack[-1].'>');
     last;      last;
   } else {    } else {
     &Apache::lonxml::warning('Found tag </'.$$stack[-1].'> when looking for </'.$token->[1].'> in file');      &Apache::lonxml::warning('Found tag </'.$token->[1].'> when looking for </'.$$stack[-1].'> in file');
     &end_tag($stack,$parstack,$token);      &end_tag($stack,$parstack,$token);
   }    }
  }   }
Line 626  sub recurse { Line 626  sub recurse {
     &Apache::lonxml::warning('Using tag </'.$tokenpat->[1].'> as end tag to <'.$innerstack[-1].'>');      &Apache::lonxml::warning('Using tag </'.$tokenpat->[1].'> as end tag to <'.$innerstack[-1].'>');
     last;      last;
   } else {    } else {
     &Apache::lonxml::warning('Found tag </'.$innerstack[-1].'> when looking for </'.$tokenpat->[1].'> in file');      &Apache::lonxml::warning('Found tag </'.$tokenpat->[1].'> when looking for </'.$innerstack[-1].'> in file');
     &end_tag(\@innerstack,\@innerparstack,$tokenpat);      &end_tag(\@innerstack,\@innerparstack,$tokenpat);
   }    }
  }   }
Line 689  sub callsub { Line 689  sub callsub {
     }      }
     if (!$deleted) {      if (!$deleted) {
       if ($space) {        if ($space) {
  #&Apache::lonxml::debug("Calling sub $sub in $space $metamode<br />\n");   #&Apache::lonxml::debug("Calling sub $sub in $space $metamode");
  $sub1="$space\:\:$sub";   $sub1="$space\:\:$sub";
  ($currentstring,$nodefault) = &$sub1($target,$token,$tagstack,   ($currentstring,$nodefault) = &$sub1($target,$token,$tagstack,
      $parstack,$parser,$safeeval,       $parstack,$parser,$safeeval,
      $style);       $style);
       } else {        } else {
  #&Apache::lonxml::debug("NOT Calling sub $sub in $space $metamode<br />\n");   #&Apache::lonxml::debug("NOT Calling sub $sub in $space $metamode");
  if ($metamode <1) {   if ($metamode <1) {
   if (defined($token->[4]) && ($metamode < 1)) {    if (defined($token->[4]) && ($metamode < 1)) {
     $currentstring = $token->[4];      $currentstring = $token->[4];
Line 897  sub get_all_text { Line 897  sub get_all_text {
      } elsif ($token->[0] eq 'PI') {       } elsif ($token->[0] eq 'PI') {
        $result.=$token->[2];         $result.=$token->[2];
      } elsif ($token->[0] eq 'S') {       } elsif ($token->[0] eq 'S') {
        if ($token->[1] eq $tag) { $depth++; }         if ($token->[1] =~ /^$tag$/i) { $depth++; }
        $result.=$token->[4];         $result.=$token->[4];
      } elsif ($token->[0] eq 'E')  {       } elsif ($token->[0] eq 'E')  {
        if ( $token->[1] eq $tag) { $depth--; }         if ( $token->[1] =~ /^$tag$/i) { $depth--; }
        #skip sending back the last end tag         #skip sending back the last end tag
        if ($depth > -1) { $result.=$token->[2]; } else {         if ($depth > -1) { $result.=$token->[2]; } else {
  $pars->unget_token($token);   $pars->unget_token($token);
Line 915  sub get_all_text { Line 915  sub get_all_text {
      } elsif ($token->[0] eq 'PI') {       } elsif ($token->[0] eq 'PI') {
        $result.=$token->[2];         $result.=$token->[2];
      } elsif ($token->[0] eq 'S') {       } elsif ($token->[0] eq 'S') {
        if ( $token->[1] eq $tag) {          if ( $token->[1] =~ /^$tag$/i) {
  $pars->unget_token($token); last;   $pars->unget_token($token); last;
        } else {         } else {
  $result.=$token->[4];   $result.=$token->[4];
Line 1028  sub storefile { Line 1028  sub storefile {
     }      }
 }  }
   
 sub inserteditinfo {  sub createnewhtml {
       my ($result,$filecontents)=@_;    my $filecontents=(<<SIMPLECONTENT);
       unless ($filecontents) {  
   $filecontents=(<<SIMPLECONTENT);  
 <html>  <html>
 <head>  <head>
 <title>  <title>
Line 1045  sub inserteditinfo { Line 1043  sub inserteditinfo {
 </body>  </body>
 </html>  </html>
 SIMPLECONTENT  SIMPLECONTENT
       }    return $filecontents;
   }
   
   
   sub inserteditinfo {
         my ($result,$filecontents)=@_;
       $filecontents =~ s:</textarea>:&lt;/textarea&gt;:ig;        $filecontents =~ s:</textarea>:&lt;/textarea&gt;:ig;
 #      my $editheader='<a href="#editsection">Edit below</a><hr />';  #      my $editheader='<a href="#editsection">Edit below</a><hr />';
       my $editfooter=(<<ENDFOOTER);        my $editfooter=(<<ENDFOOTER);
Line 1067  ENDFOOTER Line 1069  ENDFOOTER
       return $result;        return $result;
 }  }
   
   sub get_target {
     my $viewgrades=&Apache::lonnet::allowed('vgr',$ENV{'request.course.id'});
     if ( $ENV{'request.state'} eq 'published') {
       if ( defined($ENV{'form.grade_target'})
    && ($viewgrades == 'F' )) {
         return ($ENV{'form.grade_target'});
       } else {
         return 'web';
       }
     } elsif ($ENV{'request.state'} eq 'construct') {
       if ( defined($ENV{'form.grade_target'})) {
         return ($ENV{'form.grade_target'});
       } else {
         return 'web';
       }
     } else {
       return 'web';
     }
   }
   
 sub handler {  sub handler {
   my $request=shift;    my $request=shift;
   
   my $target='web';    my $target=&get_target();
   
   $Apache::lonxml::debug=0;    $Apache::lonxml::debug=0;
   
Line 1109  sub handler { Line 1131  sub handler {
 </html>  </html>
 ENDNOTFOUND  ENDNOTFOUND
     $filecontents='';      $filecontents='';
       if ($ENV{'request.state'} ne 'published') {
         $filecontents=&createnewhtml();
         $ENV{'form.showmode'}='Edit'; #force edit mode
       }
   } else {    } else {
     unless ($ENV{'request.state'} eq 'published') {      unless ($ENV{'request.state'} eq 'published') {
       if ($ENV{'form.attemptclean'}) {        if ($ENV{'form.attemptclean'}) {

Removed from v.1.150  
changed lines
  Added in v.1.152


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