示例#1
0
 public function getAlertOptions($event)
 {
     $message = parent::getAlertOptions($event);
     $type = $event->sender->isWhat();
     switch ($event->sender->getScenario()) {
         case 'create':
             switch ($event->sender->parent_type) {
                 case 'chat':
                     if (!empty($event->sender->reply_to)) {
                         $text = " %who% to @" . $event->sender->getReplyTo()->one()->author()->username . ": " . $event->sender->message;
                     } else {
                         $text = $event->sender->message;
                     }
                     $message = array_merge($message, ['subject' => "%who% posted a %priority% chat message", 'message' => ['email' => $text, 'mobile' => "(%priority%)" . $text]]);
                     break;
                 default:
                     $message = array_merge($message, ['subject' => "%who% replied to %subjectDt% %priority% %remoteFor%, with id: %id%, on %when%", 'message' => ['email' => "%who% replied to %subjectDt% %priority% %remoteFor%, with id: %id%, was %action% to by %who%. %who% said:\n\t" . $event->sender->message, 'mobile' => "%who% %action% to %subjectDt% %remoteFor% with id %id%: " . $event->sender->message]]);
                     break;
             }
             break;
     }
     if (!empty($message) && $event->sender->getId()) {
         $event->data['criteria'] = array_merge($message['criteria'], ['remote_type' => $type, 'remote_for' => $event->sender->parent_type, 'remote_id' => $event->sender->parent_id, 'action' => $event->sender->reply_to != null ? 'reply' : 'create', 'priority' => $event->sender->priority]);
         if ($event->sender->reply_to != null) {
             $event->data['reportedAction'] = 'replied';
         } else {
             $event->data['reportedAction'] = 'create';
         }
         $message['owner_id'] = $event->sender->hasAttribute('author_id') ? $event->sender->author_id : null;
     }
     return $message;
 }