--- loncom/interface/lonmsg.pm 2008/09/13 02:37:26 1.213 +++ loncom/interface/lonmsg.pm 2008/12/23 19:27:33 1.214.2.3 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Routines for messaging # -# $Id: lonmsg.pm,v 1.213 2008/09/13 02:37:26 raeburn Exp $ +# $Id: lonmsg.pm,v 1.214.2.3 2008/12/23 19:27:33 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -83,10 +83,10 @@ sub packagemsg { $citation=&HTML::Entities::encode($citation,'<>&"'); $subject =&HTML::Entities::encode($subject,'<>&"'); #remove machine specification - $baseurl =~ s|^http://[^/]+/|/|; + $baseurl =~ s|^https?\://[^/]+/|/|; $baseurl =&HTML::Entities::encode($baseurl,'<>&"'); #remove machine specification - $attachmenturl =~ s|^http://[^/]+/|/|; + $attachmenturl =~ s|^https\://[^/]+/|/|; $attachmenturl =&HTML::Entities::encode($attachmenturl,'<>&"'); my $course_context = &get_course_context(); my $now=time; @@ -120,6 +120,9 @@ sub packagemsg { ''.$env{'request.role'}.''. ''.$env{'request.filename'}.''. ''.$msgid.''; + if (defined($env{'form.group'})) { + $result .= ''.$env{'form.group'}.''; + } if (ref($recuser) eq 'ARRAY') { for (my $i=0; $i<@{$recuser}; $i++) { if ($type eq 'dcmail') { @@ -313,9 +316,11 @@ sub sendnotification { $text=~s/\<\;/\/gs; - my $url='http://'. - &Apache::lonnet::hostname(&Apache::lonnet::homeserver($touname,$toudom)). - '/adm/email?username='.$touname.'&domain='.$toudom; + my $homeserver = &Apache::lonnet::homeserver($touname,$toudom); + my $protocol = $Apache::lonnet::protocol{$homeserver}; + $protocol = 'http' if ($protocol ne 'https'); + my $url = $protocol.'://'.&Apache::lonnet::hostname($homeserver). + '/adm/email?username='.$touname.'&domain='.$toudom; my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid, $symb,$error) = &Apache::lonmsg::unpackmsgid($msgid); my ($coursetext,$body,$bodybegin,$bodysubj,$bodyend); @@ -688,8 +693,10 @@ sub user_normal_msg_raw { $text,$msgid); } if ($toperm && $userenv{'permanentemail'}) { - &sendnotification($userenv{'permanentemail'},$user,$domain,$subject,0, - $text,$msgid); + if ((!$userenv{'notification'}) || ($userenv{'notification'} ne $userenv{'permanentemail'})) { + &sendnotification($userenv{'permanentemail'},$user,$domain,$subject,0, + $text,$msgid); + } } &Apache::lonnet::log($env{'user.domain'},$env{'user.name'}, $env{'user.home'}, @@ -748,7 +755,7 @@ sub user_normal_msg { } sub process_sent_mail { - my ($msgsubj,$subj_prefix,$numsent,$stamp,$msgname,$msgdom,$msgcount,$context,$pid,$savemsg,$recusers,$recudoms,$baseurl,$attachmenturl,$symb,$error,$senderuname,$senderdom) = @_; + my ($msgsubj,$subj_prefix,$numsent,$stamp,$msgname,$msgdom,$msgcount,$context,$pid,$savemsg,$recusers,$recudoms,$baseurl,$attachmenturl,$symb,$error,$senderuname,$senderdom,$recipid) = @_; my $sentsubj; if ($numsent > 1) { $sentsubj = $subj_prefix.' ('.$numsent.' sent) '.$msgsubj; @@ -763,7 +770,7 @@ sub process_sent_mail { &buildmsgid($stamp,$sentsubj,$msgname,$msgdom,$msgcount,$context,$pid); (undef,my $sentmessage) = &packagemsg($msgsubj,$savemsg,undef,$baseurl,$attachmenturl,$recusers, - $recudoms,$sentmsgid,undef,undef,$symb,$error); + $recudoms,$sentmsgid,undef,undef,$symb,$error,$recipid); my $status = &store_sent_mail($sentmsgid,$sentmessage,$senderuname, $senderdom); return $status; @@ -931,7 +938,7 @@ sub user_lang { @userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/, $env{'course.'.$fromcid.'.languages'})); } else { - my %langhash = &Apache::lonnet::get('environment',['languages'],$toudom,$touname); + my %langhash = &Apache::loncommon::getlangs($toudom,$touname); if ($langhash{'languages'} ne '') { @userlangs = split(/\s*(\,|\;|\:)\s*/,$langhash{'languages'}); } else { @@ -941,7 +948,7 @@ sub user_lang { } } } - my @languages=&Apache::loncommon::get_genlanguages(@userlangs); + my @languages=&Apache::lonlocal::get_genlanguages(@userlangs); my $user_lh = Apache::localize->get_handle(@languages); return $user_lh; }