Esempio n. 1
0
 /**
  *
  * @param UserProfileModel $user
  * @param ProjectSettingsModel $project
  * @param string $subject
  * @param string $smsTemplate
  * @param string $emailTemplate
  * @param string $htmlEmailTemplate
  * @param DeliveryInterface $delivery
  */
 public static function communicateToUser($user, $project, $subject, $smsTemplate, $emailTemplate, $htmlEmailTemplate = '', DeliveryInterface $delivery = null)
 {
     // Prepare the email message if required
     if ($user->communicate_via == UserModel::COMMUNICATE_VIA_EMAIL || $user->communicate_via == UserModel::COMMUNICATE_VIA_BOTH) {
         $from = array($project->emailSettings->fromAddress => $project->emailSettings->fromName);
         $to = array($user->email => $user->name);
         $vars = array('user' => $user, 'project' => $project);
         $template = CommunicateHelper::templateFromString($emailTemplate);
         $content = $template->render($vars);
         $htmlContent = '';
         if ($htmlEmailTemplate) {
             $template = CommunicateHelper::templateFromString($emailTemplate);
             $htmlContent = $template->render($vars);
         }
         CommunicateHelper::deliverEmail($from, $to, $subject, $content, $htmlContent, $delivery);
     }
     // Prepare the sms message if required
     if ($project->smsSettings->hasValidCredentials()) {
         if ($user->communicate_via == UserModel::COMMUNICATE_VIA_SMS || $user->communicate_via == UserModel::COMMUNICATE_VIA_BOTH) {
             $databaseName = $project->databaseName();
             $sms = new SmsModel($databaseName);
             $sms->providerInfo = $project->smsSettings->accountId . '|' . $project->smsSettings->authToken;
             $sms->to = $user->mobile_phone;
             $sms->from = $project->smsSettings->fromNumber;
             $vars = array('user' => $user, 'project' => $project);
             $template = CommunicateHelper::templateFromString($smsTemplate);
             $sms->message = $template->render($vars);
             CommunicateHelper::deliverSMS($sms, $delivery);
         }
     }
 }