Funktion Ticket per Mail reservieren

This commit is contained in:
2026-01-11 16:05:04 +00:00
parent d78198a9de
commit 9d4efebba5
3 changed files with 131 additions and 8 deletions
+34 -1
View File
@@ -39,6 +39,11 @@ if ($loggedIn) {
$price = sanitize_text($_POST['price'] ?? '');
$doors_open = sanitize_text($_POST['doors_open'] ?? '');
$tickets_info = sanitize_text($_POST['tickets_info'] ?? '');
$reserve_by_mail = isset($_POST['reserve_by_mail']) && $_POST['reserve_by_mail'] === '1';
$reserve_email = trim((string)($_POST['reserve_email'] ?? ''));
if ($reserve_email !== '' && !filter_var($reserve_email, FILTER_VALIDATE_EMAIL)) {
$reserve_email = '';
}
$catering = sanitize_text($_POST['catering'] ?? '');
$tags = sanitize_text($_POST['tags'] ?? '');
$description = trim($_POST['description'] ?? '');
@@ -71,6 +76,8 @@ if ($loggedIn) {
'price' => $price,
'doors_open' => $doors_open,
'tickets_info' => $tickets_info,
'reserve_by_mail' => $reserve_by_mail,
'reserve_email' => $reserve_email,
'catering' => $catering,
'tags' => $tags,
'description' => $description,
@@ -237,6 +244,18 @@ if ($loggedIn) {
<input type="text" class="form-control" name="tickets_info" value="<?= h($editEvent['tickets_info'] ?? '') ?>">
</div>
<div class="form-check form-switch mb-2">
<input class="form-check-input" type="checkbox" id="reserve_by_mail" name="reserve_by_mail" value="1" <?= !empty($editEvent['reserve_by_mail']) ? 'checked' : '' ?>>
<label class="form-check-label" for="reserve_by_mail">Tickets per EMail reservieren</label>
</div>
<div class="mb-3" id="reserve_email_wrap">
<label class="form-label">ReservierungsEMail (optional)</label>
<input type="email" class="form-control" name="reserve_email" value="<?= h($editEvent['reserve_email'] ?? '') ?>" placeholder="z.B. tickets@…">
<div class="form-text">Wenn leer, wird versucht, eine EMail-Adresse aus „Ticket/VVKInfo“ zu erkennen. Sonst bleibt der Empfänger leer.</div>
</div>
<div class="mb-3">
<label class="form-label">Verpflegung/Service</label>
<input type="text" class="form-control" name="catering" value="<?= h($editEvent['catering'] ?? '') ?>">
@@ -301,6 +320,9 @@ if ($loggedIn) {
<td>
<div class="fw-semibold"><?= h($e['title']) ?></div>
<div class="text-muted small"><?= h($e['speaker']) ?></div>
<?php if (!empty($e['reserve_by_mail'])): ?>
<span class="badge text-bg-info">MailReservierung</span>
<?php endif; ?>
</td>
<td><?= h($e['venue_name']) ?></td>
<td class="text-end">
@@ -320,7 +342,7 @@ if ($loggedIn) {
<div class="cta-band p-4 d-md-flex justify-content-between align-items-center rounded-4">
<div class="mb-3 mb-md-0">
<p class="section-kicker mb-1">Tipp</p>
<div class="h6 mb-0">Wenn „Ticket/VVK-Info“ eine URL enthält, zeigt die Programmseite automatisch den Button <em>„Tickets sichern“</em>.</div>
<div class="h6 mb-0">Wenn „Ticket/VVK-Info“ eine URL enthält, zeigt die Programmseite automatisch den Button <em>„Tickets sichern“</em>. Wenn „Tickets per EMail reservieren“ aktiv ist, erscheint zusätzlich ein Button, der eine Mailvorlage im Mailprogramm öffnet.</div>
</div>
<a class="btn btn-accent" href="programm.php" target="_blank" rel="noopener">Programm ansehen</a>
</div>
@@ -340,5 +362,16 @@ if ($loggedIn) {
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<script>
// Admin UI: ReservierungsEMail Feld nur anzeigen, wenn „Tickets per EMail reservieren“ aktiv ist
(function () {
const toggle = document.getElementById('reserve_by_mail');
const wrap = document.getElementById('reserve_email_wrap');
if (!toggle || !wrap) return;
const apply = () => { wrap.style.display = toggle.checked ? '' : 'none'; };
toggle.addEventListener('change', apply);
apply();
})();
</script>
</body>
</html>