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; }