![]()
+ my %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);
+
+ $message =~ s/\<(\/?\s*(\w+)[^\>\<]*)/
+ {($html{uc($2)}&(length($1)<1000))?"\<$1":"\<$1"}/ge;
+ $message =~ s/(\\s*(\w+)[^\<\>]*)\>/
+ {($html{uc($2)}&(length($1)<1000))?"$1\>":"$1\>"}/ge;
+ } else {
+ $message=~s/\<\/*m\s*\>//g;
+ $message=~s/\\<\;/g;
+ $message=~s/\>/\>\;/g;
+ }
return $message;
}
@@ -422,7 +436,7 @@ sub handler {
# --------------------------- Get query string for limited number of parameters
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
- ['hide','unhide','postdata','preview']);
+ ['hide','unhide','deldisc','postdata','preview']);
if (($ENV{'form.hide'}) || ($ENV{'form.unhide'})) {
# ----------------------------------------------------------------- Hide/unhide
@@ -454,6 +468,33 @@ sub handler {
&redirect_back($r,&Apache::lonnet::clutter($url),
'Changed discussion status
','0','0');
+ } elsif ($ENV{'form.deldisc'}) {
+# --------------------------------------------------------------- Hide for good
+ $r->content_type('text/html');
+ $r->send_http_header;
+
+ my $entry=$ENV{'form.deldisc'};
+
+ my ($symb,$idx)=split(/\:\:\:/,$entry);
+ my ($map,$ind,$url)=split(/\_\_\_/,$symb);
+
+ my %contrib=&Apache::lonnet::restore($symb,$ENV{'request.course.id'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+
+
+ my $currentdeleted=$contrib{'deleted'};
+
+ $currentdeleted.='.'.$idx.'.';
+
+ my %newhash=('deleted' => $currentdeleted);
+
+ &Apache::lonnet::store(\%newhash,$symb,$ENV{'request.course.id'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.domain'},
+ $ENV{'course.'.$ENV{'request.course.id'}.'.num'});
+
+ &redirect_back($r,&Apache::lonnet::clutter($url),
+ 'Changed discussion status
','0','0');
} elsif ($ENV{'form.preview'}) {
# -------------------------------------------------------- User wants a preview
&show_preview($r);
@@ -510,7 +551,7 @@ sub handler {
my $usersaw=&resource_output($feedurl);
# Filter HTML out of message (could be nasty)
- my $message=&clear_out_html;
+ my $message=&clear_out_html($ENV{'form.comment'});
# Assemble email
my ($email,$citations)=&assemble_email($feedurl,$message,$prevattempts,