--- loncom/interface/lonmsg.pm 2007/05/09 21:04:51 1.207 +++ loncom/interface/lonmsg.pm 2007/05/09 23:53:15 1.208 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.207 2007/05/09 21:04:51 raeburn Exp $ +# $Id: lonmsg.pm,v 1.208 2007/05/09 23:53:15 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -299,9 +299,10 @@ sub sendnotification { my ($to,$touname,$toudom,$subj,$crit,$text,$msgid)=@_; my $sender=$env{'environment.firstname'}.' '.$env{'environment.lastname'}; unless ($sender=~/\w/) { - $sender=$env{'user.name'}.'@'.$env{'user.domain'}; + $sender=$env{'user.name'}.':'.$env{'user.domain'}; } my $critical=($crit?' critical':''); + $text=~s/\<\;/\/gs; my $url='http://'. @@ -309,7 +310,7 @@ sub sendnotification { '/adm/email?username='.$touname.'&domain='.$toudom; my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid, $symb,$error) = &Apache::lonmsg::unpackmsgid($msgid); - my ($coursetext,$body,$bodystart,$bodyend); + my ($coursetext,$body,$bodybegin,$bodysubj,$bodyend); if ($fromcid ne '') { $coursetext = "\n".&mt('Course').': '; if ($env{'course.'.$fromcid.'.description'} ne '') { @@ -323,8 +324,9 @@ sub sendnotification { $coursetext .= "\n\n"; } my @recipients = split(/,/,$to); - $bodystart = $coursetext. - &mt('You received a'.$critical.' message from [_1] in LON-CAPA.',$sender).' '.&mt('The subject is + $bodybegin = $coursetext. + &mt('You received a'.$critical.' message from [_1] in LON-CAPA.',$sender).' '; + $bodysubj = &mt('The subject is [_1] @@ -341,19 +343,40 @@ sub sendnotification { to access the full message.',$url); my %userenv = &Apache::lonnet::get('environment',['notifywithhtml'],$toudom,$touname); my $subject = &mt("'New' $critical message from ").$sender; + + my ($blocked,$blocktext); + if (!$crit) { + my %setters; + my ($startblock,$endblock) = + &Apache::loncommon::blockcheck(\%setters,'com',$touname,$toudom); + if ($startblock && $endblock) { + $blocked = 1; + my $showstart = localtime($startblock); + my $showend = localtime($endblock); + $blocktext = &mt('LON-CAPA messages sent to you between [_1] and [_2] will be inaccessible until the end of this time period, because you are a student in a course with an active communications block.',$showstart,$showend); + } + } if ($userenv{'notifywithhtml'} ne '') { my @htmlexcerpt = split(/,/,$userenv{'notifywithhtml'}); foreach my $addr (@recipients) { - my $sendtext = $text; - if (!grep/^\Q$addr\E/,@htmlexcerpt) { - $sendtext =~ s/\<\/*[^\>]+\>//gs; + if ($blocked) { + $body = $bodybegin."\n".$blocktext."\n".$bodyend; + } else { + my $sendtext = $text; + if (!grep/^\Q$addr\E/,@htmlexcerpt) { + $sendtext =~ s/\<\/*[^\>]+\>//gs; + } + $body = $bodybegin.$bodysubj.$sendtext.$bodyend; } - $body = $bodystart.$sendtext.$bodyend; &sendemail($addr,$subject,$body); } } else { - $text =~ s/\<\/*[^\>]+\>//gs; - $body = $bodystart.$text.$bodyend; + if ($blocked) { + $body = $bodybegin."\n".$blocktext."\n".$bodyend; + } else { + $text =~ s/\<\/*[^\>]+\>//gs; + $body = $bodybegin.$bodysubj.$text.$bodyend; + } &sendemail($to,$subject,$body); } }