--- loncom/interface/lonfeedback.pm 2010/06/19 19:06:42 1.282.2.1 +++ loncom/interface/lonfeedback.pm 2009/12/22 06:14:35 1.283 @@ -1,7 +1,7 @@ # The LearningOnline Network # Feedback # -# $Id: lonfeedback.pm,v 1.282.2.1 2010/06/19 19:06:42 raeburn Exp $ +# $Id: lonfeedback.pm,v 1.283 2009/12/22 06:14:35 faziophi Exp $ # # Copyright Michigan State University Board of Trustees # @@ -41,6 +41,7 @@ use Apache::lonnavmaps; use Apache::lonenc(); use Apache::lonrss(); use HTML::LCParser(); +#use HTML::Tidy::libXML; use Apache::lonspeller(); use Apache::longroup; use Cwd; @@ -48,24 +49,15 @@ use LONCAPA; sub discussion_open { my ($status,$symb)=@_; -# Advanced roles can always discuss if ($env{'request.role.adv'}) { return 1; } -# Get discussion closing date - my $close=&Apache::lonnet::EXT('resource.0.discussend',$symb); -# If it is defined and in the future, the instructor wants this discussion to be open - if (defined($close) && $close ne '' && $close > time) { - return 1; - } -# It was not explicitly open, check if the problem is available. -# If the problem is not available, close the discussion if (defined($status) && - !($status eq 'CAN_ANSWER' || $status eq 'CANNOT_ANSWER' - || $status eq 'OPEN')) { - return 0; + !($status eq 'CAN_ANSWER' || $status eq 'CANNOT_ANSWER' + || $status eq 'OPEN')) { + return 0; } -# The problem is available, but check if the instructor explictly closed discussion + my $close=&Apache::lonnet::EXT('resource.0.discussend',$symb); if (defined($close) && $close ne '' && $close < time) { - return 0; + return 0; } return 1; } @@ -2687,11 +2679,12 @@ sub clear_out_html { ($override)) { # allows


      • #

        - # + # %html=(B=>1, I=>1, P=>1, A=>1, LI=>1, OL=>1, UL=>1, EM=>1, BR=>1, TT=>1, STRONG=>1, BLOCKQUOTE=>1, DIV=>1, IMG=>1, M=>1, ALGEBRA=>1, SUB=>1, SUP=>1, SPAN=>1, - H1=>1, H2=>1, H3=>1, H4=>1, H5=>1); + H1=>1, H2=>1, H3=>1, H4=>1, H5=>1, H6=>1, + TABLE=>1, TR=>1, TD=>1, TH=>1, TBODY=>1); } # Do the substitution of everything that is not explicitly allowed $message =~ s/\<(\/?\s*(\w+)[^\>\<]*)/ @@ -2967,9 +2960,21 @@ sub contains_block_html { ( [\s]*[\/]>| >.*<\/\1[\s]*> - )/x ); + )/xs ); +} + +sub tidy_html { + my ($message)=@_; +# my $tidy = HTML::Tidy::libXML->new(); +# my $xhtml = $tidy->clean($message, 'utf-8', 1); +# $xhtml =~ m/(.*)<\/body>/is; +# my $clean = $1; +# # remove any empty block-level tags +# $clean =~ s/<(table|p|div|tbody|blockquote|m|pre|algebra|center|ol|ul|span|h1|h2|h3|h4|h5|h6)\s*\/>//i; +# $message=$clean; + return $message; } - + sub newline_to_br { my ($message)=@_; my $newmessage; @@ -4154,6 +4159,8 @@ None =item newline_to_br() +=item tidy_html() + =item generate_preview_button() =item modify_attachments()