/**
  * Build the reminder messages
  *
  * @param Tracker_DateReminder $reminder Reminder that will send notifications
  * @param Tracker_Artifact $artifact Artifact for which reminders will be sent
  * @param Array            $messages Messages
  * @param PFUser             $user     Receipient
  *
  * return Array
  */
 protected function buildMessage(Tracker_DateReminder $reminder, Tracker_Artifact $artifact, &$messages, $user)
 {
     $mailManager = new MailManager();
     $recipient = $user->getEmail();
     $lang = $user->getLanguage();
     $format = $mailManager->getMailPreferencesByUser($user);
     //We send multipart mail: html & text body in case of preferences set to html
     $htmlBody = '';
     if ($format == Codendi_Mail_Interface::FORMAT_HTML) {
         $htmlBody .= $this->getBodyHtml($reminder, $artifact, $user, $lang);
     }
     $txtBody = $this->getBodyText($reminder, $artifact, $user, $lang);
     $subject = $this->getSubject($reminder, $artifact, $user);
     $headers = array();
     $hash = md5($htmlBody . $txtBody . serialize($headers) . serialize($subject));
     if (isset($messages[$hash])) {
         $messages[$hash]['recipients'][] = $recipient;
     } else {
         $messages[$hash] = array('headers' => $headers, 'htmlBody' => $htmlBody, 'txtBody' => $txtBody, 'subject' => $subject, 'recipients' => array($recipient));
     }
 }
Beispiel #2
0
 function testGetLanguageShouldUserLanguageFactoryIfNotDefined()
 {
     $langFactory = new MockBaseLanguageFactory();
     $langFactory->expectOnce('getBaseLanguage', array('fr_BE'));
     $user = new PFUser(array('language_id' => 'fr_BE'));
     $user->setLanguageFactory($langFactory);
     $user->getLanguage();
 }