--- loncom/publisher/loncleanup.pm 2005/05/29 01:46:16 1.4
+++ loncom/publisher/loncleanup.pm 2009/09/09 17:58:37 1.11
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to cleanup XML files
#
-# $Id: loncleanup.pm,v 1.4 2005/05/29 01:46:16 www Exp $
+# $Id: loncleanup.pm,v 1.11 2009/09/09 17:58:37 bisitz Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -36,8 +36,12 @@ use File::Copy;
use Apache::Constants qw(:common :http :methods);
use Apache::loncacc;
use Apache::loncommon();
+use Apache::lonhtmlcommon();
use Apache::lonlocal;
use Apache::lonnet;
+use lib '/home/httpd/lib/perl/';
+use LONCAPA;
+
sub latextrans {
my $symbolfont=shift;
@@ -218,8 +222,9 @@ sub htmlclean {
}
# Generate empty tags, remove wrong end tags
unless ($blockemptytags) {
- $raw=~s/\<(br|hr|img|meta|allow|basefont)([^\>\/]*?)\>/\<$1$2 \/\>/gis;
- $raw=~s/\<\/(br|hr|img|meta|allow|basefont)\>//gis;
+ $raw=~s/\<(br|hr|img|meta|embed|allow|basefont)([^\>]*?)\>/\<$1$2 \/\>/gis;
+ $raw=~s/\<\/(br|hr|img|meta|embed|allow|basefont)\>//gis;
+ $raw=~s/\/ \/\>/\/\>/gs;
unless ($full) {
$raw=~s/\<[\/]*(body|head|html)\>//gis;
}
@@ -244,20 +249,34 @@ sub htmlclean {
sub phaseone {
my ($r,$fn,$uname,$udom)=@_;
- $r->print(&mt('Select actions to attempt:').
- '
'.
- &mt('Linefeeds, formfeeds, and carriage returns').
- '
'.
- &mt('Empty tags').
- '
'.
- &mt('Lower casing').
- '
'.
- &mt('Symbol font').
- ''.
- '
' + .'' + .'
' + ); } sub phasetwo { + # Check original file my ($r,$fn,$uname,$udom)=@_; open(IN,'/home/'.$uname.'/public_html/'.$fn); my $text=''; @@ -270,9 +289,20 @@ sub phasetwo { ('grade_target'=>'web', 'return_only_error_and_warning_counts' => 1)); my ($errorcount,$warningcount)=split(':',$result); - $r->print(&mt('Original file').': '. - $errorcount.' '.&mt('error(s)').', '. - $warningcount.' '.&mt('warning(s)')); + + # Display results for original file + $r->print( + &Apache::lonhtmlcommon::start_pick_box() + .&Apache::lonhtmlcommon::row_title(&mt('Original file')) + .&Apache::lonhtmlcommon::confirm_success( + &mt('[quant,_1,error]',$errorcount), $errorcount) + .'' + .'' + .'' + .' ' + .'
' + ); } sub phasethree { @@ -310,10 +361,18 @@ sub phasethree { my $newfn=$main.'_Auto_Cleaned_Up.'.$ext; my $new='/home/'.$uname.'/public_html'.$newfn; if ($env{'form.accept'}) { - $r->print(&mt('Accepting changes')); + $r->print( + '' + .&mt('Accepting changes') + .'
' + ); move($new,$old); } else { - $r->print(&mt('Rejeting changes')); + $r->print( + '' + .&mt('Rejecting changes') + .'
' + ); unlink($new); } } @@ -331,7 +390,7 @@ sub handler { if ($env{'form.filename'}) { $fn=$env{'form.filename'}; - $fn=~s/^http\:\/\/[^\/]+//; + $fn=~s/^https?\:\/\/[^\/]+//; } else { $r->log_reason($env{'user.name'}.' at '.$env{'user.domain'}. ' unspecified filename for cleanup', $r->filename); @@ -358,14 +417,20 @@ sub handler { return HTTP_NOT_ACCEPTABLE; } - $fn=~s/\/\~(\w+)//; + $fn=~s{/~($LONCAPA::username_re)}{}; &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; - $r->print('