コード例 #1
0
 /**
  * Method used to send an email notification when an issue is
  * assigned to an user.
  *
  * @param   array $users The list of users
  * @param   integer $issue_id The issue ID
  */
 public static function notifyNewAssignment($users, $issue_id)
 {
     $prj_id = Issue::getProjectID($issue_id);
     $emails = array();
     foreach ($users as $usr_id) {
         if ($usr_id == Auth::getUserID()) {
             continue;
         }
         $prefs = Prefs::get($usr_id);
         if (!empty($prefs) && isset($prefs['receive_assigned_email'][$prj_id]) && $prefs['receive_assigned_email'][$prj_id] && $usr_id != Auth::getUserID()) {
             $emails[] = User::getFromHeader($usr_id);
         }
     }
     if (!$emails) {
         return;
     }
     // get issue details
     $issue = Issue::getDetails($issue_id);
     // open text template
     $tpl = new Template_Helper();
     $tpl->setTemplate('notifications/assigned.tpl.text');
     $tpl->assign(array('app_title' => Misc::getToolCaption(), 'issue' => $issue, 'current_user' => User::getFullName(Auth::getUserID())));
     foreach ($emails as $email) {
         $text_message = $tpl->getTemplateContents();
         Language::set(User::getLang(User::getUserIDByEmail(Mail_Helper::getEmailAddress($email))));
         $subject = "[#{$issue_id}] New Assignment: " . $issue['iss_summary'];
         $from = self::getFixedFromHeader($issue_id, '', 'issue');
         // send email (use PEAR's classes)
         $mail = new Mail_Helper();
         $mail->setTextBody($text_message);
         $mail->setHeaders(Mail_Helper::getBaseThreadingHeaders($issue_id));
         $mail->send($from, $email, $subject, true, $issue_id, 'assignment');
     }
     Language::restore();
 }