resources/views/admin/broadcast.phtml
<?php
declare(strict_types=1);
use Fisharebest\Webtrees\Contracts\UserInterface;
use Fisharebest\Webtrees\Http\RequestHandlers\BroadcastAction;
use Fisharebest\Webtrees\Http\RequestHandlers\ControlPanel;
use Fisharebest\Webtrees\I18N;
use Illuminate\Support\Collection;
/**
* @var UserInterface $from
* @var string $title
* @var string $to
* @var Collection<int,UserInterface> $recipients
*/
?>
<?= view('components/breadcrumbs', ['links' => [route(ControlPanel::class) => I18N::translate('Control panel'), $title]]) ?>
<h1><?= $title ?></h1>
<form method="post" action="<?= e(route(BroadcastAction::class, ['to' => $to])) ?>">
<div class="row mb-3">
<label class="col-sm-3 col-form-label" for="from">
<?= I18N::translateContext('Email sender', 'From') ?>
</label>
<div class="col-sm-9">
<input class="form-control" id="from" type="text" value="<?= e($from->realName()) ?>" disabled>
</div>
</div>
<div class="row mb-3">
<label class="col-sm-3 col-form-label" for="to">
<?= I18N::translateContext('Email recipient', 'To') ?>
</label>
<div class="col-sm-9">
<input class="form-control" id="to" type="text" value="<?= $recipients->map(static fn (UserInterface $user): string => e($user->realName()))->implode(', ') ?>" disabled>
</div>
</div>
<div class="row mb-3">
<label class="col-sm-3 col-form-label" for="subject">
<?= I18N::translate('Subject') ?>
</label>
<div class="col-sm-9">
<input class="form-control" id="subject" type="text" name="subject" required="required">
</div>
</div>
<div class="row mb-3">
<label class="col-sm-3 col-form-label" for="body">
<?= I18N::translate('Message') ?>
</label>
<div class="col-sm-9">
<textarea class="form-control" id="body" name="body" rows="5" dir="auto" required="required"></textarea>
</div>
</div>
<div class="row mb-3">
<div class="col-sm-3 col-form-label"></div>
<div class="col-sm-9">
<button type="submit" class="btn btn-primary">
<?= I18N::translate('Send') ?>
</button>
<a class="btn btn-link" href="<?= e(route(ControlPanel::class)) ?>">
<?= I18N::translate('cancel') ?>
</a>
</div>
</div>
<?= csrf_field() ?>
</form>