Diff for /loncom/interface/lonmsg.pm between versions 1.212 and 1.214.2.1

version 1.212, 2008/06/06 05:24:28 version 1.214.2.1, 2008/12/13 23:37:56
Line 120  sub packagemsg { Line 120  sub packagemsg {
    '<role>'.$env{'request.role'}.'</role>'.     '<role>'.$env{'request.role'}.'</role>'.
    '<resource>'.$env{'request.filename'}.'</resource>'.     '<resource>'.$env{'request.filename'}.'</resource>'.
            '<msgid>'.$msgid.'</msgid>';             '<msgid>'.$msgid.'</msgid>';
       if (defined($env{'form.group'})) {
           $result .= '<group>'.$env{'form.group'}.'</group>';
       }
     if (ref($recuser) eq 'ARRAY') {      if (ref($recuser) eq 'ARRAY') {
         for (my $i=0; $i<@{$recuser}; $i++) {          for (my $i=0; $i<@{$recuser}; $i++) {
             if ($type eq 'dcmail') {              if ($type eq 'dcmail') {
Line 279  sub unpackmsgid { Line 282  sub unpackmsgid {
   
   
 sub sendemail {  sub sendemail {
     my ($to,$subject,$body)=@_;      my ($to,$subject,$body,$to_uname,$to_udom,$user_lh)=@_;
     my %senderemails=&Apache::loncommon::getemails();      my %senderemails=&Apache::loncommon::getemails();
     my $senderaddress='';      my $senderaddress='';
     foreach my $type ('notification','permanentemail','critnotification') {      foreach my $type ('notification','permanentemail','critnotification') {
Line 288  sub sendemail { Line 291  sub sendemail {
  }   }
     }      }
     $body=      $body=
     "*** ".&mt('This is an automatic message generated by the LON-CAPA system.')."\n".      "*** ".&mt_user($user_lh,'This is an automatic message generated by the LON-CAPA system.')."\n".
     "*** ".($senderaddress?&mt('You can reply to this message'):&mt('Please do not reply to this address.')."\n*** ".      "*** ".($senderaddress?&mt_user($user_lh,'You can reply to this message'):&mt_user($user_lh,'Please do not reply to this address.')."\n*** ".
     &mt('A reply will not be received by the recipient!'))."\n\n".$body;      &mt_user($user_lh,'A reply will not be received by the recipient!'))."\n\n".$body;
     my $msg = new Mail::Send;      my $msg = new Mail::Send;
     $msg->to($to);      $msg->to($to);
     $msg->subject('[LON-CAPA] '.$subject);      $msg->subject('[LON-CAPA] '.$subject);
Line 319  sub sendnotification { Line 322  sub sendnotification {
     my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid,      my ($sendtime,$shortsubj,$fromname,$fromdomain,$status,$fromcid,
         $symb,$error) = &Apache::lonmsg::unpackmsgid($msgid);          $symb,$error) = &Apache::lonmsg::unpackmsgid($msgid);
     my ($coursetext,$body,$bodybegin,$bodysubj,$bodyend);      my ($coursetext,$body,$bodybegin,$bodysubj,$bodyend);
       my $user_lh = &user_lang($touname,$toudom,$fromcid);
     if ($fromcid ne '') {      if ($fromcid ne '') {
         $coursetext = "\n".&mt('Course').': ';          $coursetext = "\n".&mt_user($user_lh,'Course').': ';
         if ($env{'course.'.$fromcid.'.description'} ne '') {          if ($env{'course.'.$fromcid.'.description'} ne '') {
             $coursetext .= $env{'course.'.$fromcid.'.description'};              $coursetext .= $env{'course.'.$fromcid.'.description'};
         } else {          } else {
Line 333  sub sendnotification { Line 337  sub sendnotification {
     }      }
     my @recipients = split(/,/,$to);      my @recipients = split(/,/,$to);
     $bodybegin = $coursetext.       $bodybegin = $coursetext. 
                &mt('You received a'.$critical.' message from [_1] in LON-CAPA.',$sender).' ';                 &mt_user($user_lh,
     $bodysubj = &mt('The subject is                            'You received a'.$critical.' message from [_1] in LON-CAPA.',$sender).' ';
       $bodysubj = &mt_user($user_lh,'The subject is 
   
  [_1]   [_1]
   
 ',$subj)."\n".  ',$subj)."\n".
 '=== '.&mt('Excerpt')." ============================================================  '=== '.&mt_user($user_lh,'Excerpt')." ============================================================
 ";  ";
     $bodyend = "      $bodyend = "
 ========================================================================  ========================================================================
   
 ".&mt('Use   ".&mt_user($user_lh,'Use 
   
  [_1]   [_1]
   
 to access the full message.',$url);  to access the full message.',$url);
     my %userenv = &Apache::lonnet::get('environment',['notifywithhtml'],$toudom,$touname);      my %userenv = &Apache::lonnet::get('environment',['notifywithhtml'],$toudom,$touname);
     my $subject = &mt("'New' $critical message from ").$sender;      my $subject = &mt_user($user_lh,"'New' $critical message from ").$sender;
     
     my ($blocked,$blocktext);      my ($blocked,$blocktext);
     if (!$crit) {      if (!$crit) {
Line 361  to access the full message.',$url); Line 366  to access the full message.',$url);
             $blocked = 1;              $blocked = 1;
             my $showstart = &Apache::lonlocal::locallocaltime($startblock);              my $showstart = &Apache::lonlocal::locallocaltime($startblock);
             my $showend = &Apache::lonlocal::locallocaltime($endblock);              my $showend = &Apache::lonlocal::locallocaltime($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);              $blocktext = &mt_user($user_lh,'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 '') {      if ($userenv{'notifywithhtml'} ne '') {
Line 376  to access the full message.',$url); Line 381  to access the full message.',$url);
                 }                  }
                 $body = $bodybegin.$bodysubj.$sendtext.$bodyend;                  $body = $bodybegin.$bodysubj.$sendtext.$bodyend;
             }              }
             &sendemail($addr,$subject,$body);              &sendemail($addr,$subject,$body,$touname,$toudom,$user_lh);
         }          }
     } else {      } else {
         if ($blocked) {          if ($blocked) {
Line 385  to access the full message.',$url); Line 390  to access the full message.',$url);
             $text =~ s/\<\/*[^\>]+\>//gs;              $text =~ s/\<\/*[^\>]+\>//gs;
             $body = $bodybegin.$bodysubj.$text.$bodyend;              $body = $bodybegin.$bodysubj.$text.$bodyend;
         }          }
         &sendemail($to,$subject,$body);          &sendemail($to,$subject,$body,$touname,$toudom,$user_lh);
     }      }
 }  }
 # ============================================================= Check for email  # ============================================================= Check for email
Line 686  sub user_normal_msg_raw { Line 691  sub user_normal_msg_raw {
      $text,$msgid);       $text,$msgid);
        }         }
        if ($toperm && $userenv{'permanentemail'}) {         if ($toperm && $userenv{'permanentemail'}) {
    &sendnotification($userenv{'permanentemail'},$user,$domain,$subject,0,             if ((!$userenv{'notification'}) || ($userenv{'notification'} ne $userenv{'permanentemail'})) {
      $text,$msgid);         &sendnotification($userenv{'permanentemail'},$user,$domain,$subject,0,
              $text,$msgid);
              }
        }         }
        &Apache::lonnet::log($env{'user.domain'},$env{'user.name'},         &Apache::lonnet::log($env{'user.domain'},$env{'user.name'},
     $env{'user.home'},      $env{'user.home'},
Line 746  sub user_normal_msg { Line 753  sub user_normal_msg {
 }  }
   
 sub process_sent_mail {  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;      my $sentsubj;
     if ($numsent > 1) {      if ($numsent > 1) {
         $sentsubj = $subj_prefix.' ('.$numsent.' sent) '.$msgsubj;          $sentsubj = $subj_prefix.' ('.$numsent.' sent) '.$msgsubj;
Line 761  sub process_sent_mail { Line 768  sub process_sent_mail {
         &buildmsgid($stamp,$sentsubj,$msgname,$msgdom,$msgcount,$context,$pid);          &buildmsgid($stamp,$sentsubj,$msgname,$msgdom,$msgcount,$context,$pid);
     (undef,my $sentmessage) =      (undef,my $sentmessage) =
         &packagemsg($msgsubj,$savemsg,undef,$baseurl,$attachmenturl,$recusers,          &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,      my $status = &store_sent_mail($sentmsgid,$sentmessage,$senderuname,
                                   $senderdom);                                    $senderdom);
     return $status;      return $status;
Line 922  sub decide_receiver { Line 929  sub decide_receiver {
     return ($typestyle,%to);      return ($typestyle,%to);
 }  }
   
   sub user_lang {
       my ($touname,$toudom,$fromcid) = @_;
       my @userlangs;
       if (($fromcid ne '') && ($env{'course.'.$fromcid.'.languages'} ne '')) {
           @userlangs=(@userlangs,split(/\s*(\,|\;|\:)\s*/,
                       $env{'course.'.$fromcid.'.languages'}));
       } else {
           my %langhash = &Apache::lonnet::get('environment',['languages'],$toudom,$touname);
           if ($langhash{'languages'} ne '') {
               @userlangs = split(/\s*(\,|\;|\:)\s*/,$langhash{'languages'});  
           } else {
               my %domdefs = &Apache::lonnet::get_domain_defaults($toudom);
               if ($domdefs{'lang_def'} ne '') {
                   @userlangs = ($domdefs{'lang_def'});
               }
           }
       }
       my @languages=&Apache::lonlocal::get_genlanguages(@userlangs);
       my $user_lh = Apache::localize->get_handle(@languages);
       return $user_lh;
   }
   
 =pod  =pod
   
 =back  =back

Removed from v.1.212  
changed lines
  Added in v.1.214.2.1


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>