OEModule\OphCoMessaging\components\MessageCreator::emailAlert PHP Method

emailAlert() public method

Sends an email alert when a message is created
public emailAlert ( array $recipients, $subject, $content ) : mixed
$recipients array
$subject
$content
return mixed
    public function emailAlert(array $recipients, $subject, $content)
    {
        $message = \Yii::app()->mailer->newMessage();
        $from = isset(\Yii::app()->params['from_address']) ? \Yii::app()->params['from_address'] : '[email protected]';
        $message->setFrom(array($from => 'OpenEyes Alerts'));
        $message->setTo($recipients);
        $message->setSubject($subject);
        $message->setBody($content);
        return \Yii::app()->mailer->sendMessage($message);
    }

Usage Example

Example #1
0
 /**
  * @param $episodeId
  * @param $userId
  * @param $examination
  * @param $examinationEvent
  * @throws \CDbException
  */
 protected function createMessage($episodeId, $userId, $examination, $examinationEvent)
 {
     if (isset(\Yii::app()->modules['OphCoMessaging']) && ($examination['patient']['comments'] || $examination['patient']['ready_for_second_eye'] === false)) {
         $episode = \Episode::model()->findByPk($episodeId);
         $recipient = \User::model()->findByPk($episode->firm->consultant_id);
         if ($recipient) {
             $sender = \User::model()->findByPk($userId);
             $type = OphCoMessaging_Message_MessageType::model()->findByAttributes(array('name' => 'General'));
             if ($examination['patient']['ready_for_second_eye'] === false) {
                 $ready = 'No';
             } elseif ($examination['patient']['ready_for_second_eye'] === true) {
                 $ready = 'Yes';
             } else {
                 $ready = 'Not Applicable';
             }
             $messageCreator = new MessageCreator($episode, $sender, $recipient, $type);
             $messageCreator->setMessageTemplate('application.modules.OphCoMessaging.views.templates.optom');
             $messageCreator->setMessageData(array('optom' => $examination['op_tom']['name'] . ' (' . $examination['op_tom']['goc_number'] . ')', 'ready' => $ready, 'comments' => $examination['patient']['comments'], 'patient' => $episode->patient));
             $message = $messageCreator->save('', array('event' => $examinationEvent->id));
             $emailSetting = \SettingInstallation::model()->find('`key` = "optom_comment_alert"');
             if ($emailSetting && $emailSetting->value) {
                 $recipients = explode(',', $emailSetting->value);
                 $messageCreator->emailAlert($recipients, 'New Optom Comment', $message->message_text);
             }
         }
     }
 }