Quelltext des aktuellen Standes
<?php
/**
* Auswahl der eigenen E-Mail-Benachrichtigungen.
*
* Wird von der eigenen Seite und vom Dialog in der Kopfleiste eingebunden;
* beide zeigen dasselbe Formular.
*
* @var array<string,string> $events Ereignis-Schlüssel => Beschriftung.
* @var array<string,bool> $gewaehlt Bereits gewählte Ereignisse.
* @var bool $mail_bereit Ist ein Postausgang eingerichtet?
* @var string $rueckweg Wohin nach dem Speichern.
*/
$events = $events ?? [];
$gewaehlt = $gewaehlt ?? [];
$mail_bereit = $mail_bereit ?? true;
$rueckweg = $rueckweg ?? '/profile/notifications';
?>
<?php if (!$mail_bereit): ?>
<div class="alert alert-warning">
<?= $this->te('Für Tickets ist noch kein Postausgang eingerichtet. Die Auswahl lässt sich speichern, versendet aber erst etwas, sobald die Administration den Mailversand hinterlegt hat.') ?>
</div>
<?php endif; ?>
<form method="POST" action="/profile/notifications">
<input type="hidden" name="_csrf" value="<?= $this->csrf() ?>">
<input type="hidden" name="return" value="<?= $this->e($rueckweg) ?>">
<div class="form-group">
<label><?= $this->te('E-Mail zusätzlich erhalten') ?></label>
<?php foreach ($events as $key => $label): ?>
<label style="display:flex;gap:.5rem;align-items:flex-start;font-weight:normal;cursor:pointer;margin:0 0 .5rem;">
<input type="checkbox" name="mail_<?= $this->e($key) ?>" value="1"
<?= !empty($gewaehlt[$key]) ? 'checked' : '' ?>>
<span><?= $this->e($label) ?></span>
</label>
<?php endforeach; ?>
</div>
<p class="text-muted" style="font-size:.8rem;line-height:1.6;margin:.75rem 0 0;">
<?= $this->te('Ob diese Ereignisse überhaupt ausgelöst werden, legt die Administration für alle gemeinsam fest. Hier entscheiden Sie nur, ob Sie sie zusätzlich per E-Mail bekommen – ohne Haken bleibt es bei Glocke und Web-Push.') ?>
</p>
<div class="modal-footer" style="padding-left:0;padding-right:0;">
<button type="button" class="btn btn-default" data-modal-close><?= $this->te('Abbrechen') ?></button>
<button type="submit" class="btn btn-primary"><?= $this->te('Speichern') ?></button>
</div>
</form>