Diff for /loncom/xml/lonxml.pm between versions 1.106 and 1.107

version 1.106, 2001/08/07 16:54:14 version 1.107, 2001/08/07 22:57:50
Line 284  sub xmlparse { Line 284  sub xmlparse {
 }  }
   
 sub htmlclean {  sub htmlclean {
     my $raw=shift;      my ($raw,$full)=@_;
   
     my $tree = HTML::TreeBuilder->new;      my $tree = HTML::TreeBuilder->new;
     $tree->ignore_unknown(0);      $tree->ignore_unknown(0);
           
     $tree->parse($raw);      $tree->parse($raw);
     my %emptyhash=();  
   
     my $output= $tree->as_HTML(undef,' ',\%emptyhash), "\n";      my $output= $tree->as_HTML(undef,' ');
             
     $output=~s/\<(br|hr|img)([^\>\/]*)\>/\<$1$2 \/\>/gis;      $output=~s/\<(br|hr|img)([^\>\/]*)\>/\<$1$2 \/\>/gis;
     $output=~s/\<\/(br|hr|img)\>//gis;      $output=~s/\<\/(br|hr|img)\>//gis;
     $output=~s/\<[\/]*(body|head|html)\>//gis;      unless ($full) {
          $output=~s/\<[\/]*(body|head|html)\>//gis;
       }
   
     $tree = $tree->delete;      $tree = $tree->delete;
   
Line 831  SIMPLECONTENT Line 832  SIMPLECONTENT
 <form method="post">  <form method="post">
 <textarea cols="80" rows="40" name="filecont">$filecontents</textarea>  <textarea cols="80" rows="40" name="filecont">$filecontents</textarea>
 <br />  <br />
 <input type="submit" name="savethisfile" value="Save this file" />  <input type="submit" name="attemptclean" 
          value="Save and then attempt to clean HTML" />
   <input type="submit" name="savethisfile" value="Save this" />
 </form>  </form>
 ENDFOOTER  ENDFOOTER
       $result=~s/(\<body[^\>]*\>)/$1$editheader/is;        $result=~s/(\<body[^\>]*\>)/$1$editheader/is;
Line 862  sub handler { Line 865  sub handler {
 # Edit action? Save file.  # Edit action? Save file.
 #  #
   unless ($ENV{'request.state'} eq 'published') {    unless ($ENV{'request.state'} eq 'published') {
       if ($ENV{'form.savethisfile'}) {        if (($ENV{'form.savethisfile'}) || ($ENV{'form.attemptclean'})) {
   &storefile($file,$ENV{'form.filecont'});    &storefile($file,$ENV{'form.filecont'});
       }        }
   }    }
Line 882  sub handler { Line 885  sub handler {
 ENDNOTFOUND  ENDNOTFOUND
     $filecontents='';      $filecontents='';
   } else {    } else {
         unless ($ENV{'request.state'} eq 'published') {
            if ($ENV{'form.attemptclean'}) {
       $filecontents=&htmlclean($filecontents,1);
            }
         }
     $result = &Apache::lonxml::xmlparse($target,$filecontents,'',%mystyle);      $result = &Apache::lonxml::xmlparse($target,$filecontents,'',%mystyle);
   }    }
   

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


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