Viewing file: SimpleMessage.php (4.79 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Illuminate\Notifications\Messages;
use Illuminate\Contracts\Support\Htmlable; use Illuminate\Notifications\Action;
class SimpleMessage { /** * The "level" of the notification (info, success, error). * * @var string */ public $level = 'info';
/** * The subject of the notification. * * @var string */ public $subject;
/** * The notification's greeting. * * @var string */ public $greeting;
/** * The notification's salutation. * * @var string */ public $salutation;
/** * The "intro" lines of the notification. * * @var array */ public $introLines = [];
/** * The "outro" lines of the notification. * * @var array */ public $outroLines = [];
/** * The text / label for the action. * * @var string */ public $actionText;
/** * The action URL. * * @var string */ public $actionUrl;
/** * The name of the mailer that should send the notification. * * @var string */ public $mailer;
/** * Indicate that the notification gives information about a successful operation. * * @return $this */ public function success() { $this->level = 'success';
return $this; }
/** * Indicate that the notification gives information about an error. * * @return $this */ public function error() { $this->level = 'error';
return $this; }
/** * Set the "level" of the notification (success, error, etc.). * * @param string $level * @return $this */ public function level($level) { $this->level = $level;
return $this; }
/** * Set the subject of the notification. * * @param string $subject * @return $this */ public function subject($subject) { $this->subject = $subject;
return $this; }
/** * Set the greeting of the notification. * * @param string $greeting * @return $this */ public function greeting($greeting) { $this->greeting = $greeting;
return $this; }
/** * Set the salutation of the notification. * * @param string $salutation * @return $this */ public function salutation($salutation) { $this->salutation = $salutation;
return $this; }
/** * Add a line of text to the notification. * * @param mixed $line * @return $this */ public function line($line) { return $this->with($line); }
/** * Add a line of text to the notification. * * @param mixed $line * @return $this */ public function with($line) { if ($line instanceof Action) { $this->action($line->text, $line->url); } elseif (! $this->actionText) { $this->introLines[] = $this->formatLine($line); } else { $this->outroLines[] = $this->formatLine($line); }
return $this; }
/** * Format the given line of text. * * @param \Illuminate\Contracts\Support\Htmlable|string|array $line * @return \Illuminate\Contracts\Support\Htmlable|string */ protected function formatLine($line) { if ($line instanceof Htmlable) { return $line; }
if (is_array($line)) { return implode(' ', array_map('trim', $line)); }
return trim(implode(' ', array_map('trim', preg_split('/\\r\\n|\\r|\\n/', $line ?? '')))); }
/** * Configure the "call to action" button. * * @param string $text * @param string $url * @return $this */ public function action($text, $url) { $this->actionText = $text; $this->actionUrl = $url;
return $this; }
/** * Set the name of the mailer that should send the notification. * * @param string $mailer * @return $this */ public function mailer($mailer) { $this->mailer = $mailer;
return $this; }
/** * Get an array representation of the message. * * @return array */ public function toArray() { return [ 'level' => $this->level, 'subject' => $this->subject, 'greeting' => $this->greeting, 'salutation' => $this->salutation, 'introLines' => $this->introLines, 'outroLines' => $this->outroLines, 'actionText' => $this->actionText, 'actionUrl' => $this->actionUrl, 'displayableActionUrl' => str_replace(['mailto:', 'tel:'], '', $this->actionUrl ?? ''), ]; } }
|