requireAdmin(); I18n::init(); $db = Database::getInstance(); $appTitle = $db->getSetting('app_title', 'UniFi Voucher System'); $error = ''; $success = ''; // Profil hinzufügen if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['add_template'])) { if (!$auth->validateCsrfToken($_POST['csrf_token'] ?? '')) { $error = __('error_csrf'); } else { try { $name = trim($_POST['name'] ?? ''); $maxUses = (int)($_POST['max_uses'] ?? 1); $expireMin = (int)($_POST['expire_minutes'] ?? 480); $description = trim($_POST['description'] ?? ''); if (empty($name)) throw new Exception(__('error_name_req')); if ($maxUses < 1) $maxUses = 1; if ($expireMin < 1) $expireMin = 60; $db->execute( "INSERT INTO voucher_templates (name, max_uses, expire_minutes, description, created_by) VALUES (?, ?, ?, ?, ?)", [$name, $maxUses, $expireMin, $description, $_SESSION['user_id']] ); $success = __('templates_added'); } catch (Exception $e) { $error = $e->getMessage(); } } } // Profil bearbeiten if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['edit_template'])) { if (!$auth->validateCsrfToken($_POST['csrf_token'] ?? '')) { $error = __('error_csrf'); } else { try { $id = (int)$_POST['template_id']; $name = trim($_POST['name'] ?? ''); $maxUses = (int)($_POST['max_uses'] ?? 1); $expireMin = (int)($_POST['expire_minutes'] ?? 480); $description = trim($_POST['description'] ?? ''); $isActive = isset($_POST['is_active']) ? 1 : 0; if (empty($name)) throw new Exception(__('error_name_req')); $db->execute( "UPDATE voucher_templates SET name=?, max_uses=?, expire_minutes=?, description=?, is_active=? WHERE id=?", [$name, $maxUses, $expireMin, $description, $isActive, $id] ); $success = __('templates_updated'); } catch (Exception $e) { $error = $e->getMessage(); } } } // Profil löschen if (isset($_GET['delete']) && isset($_GET['token'])) { if ($auth->validateCsrfToken($_GET['token'])) { $db->execute("DELETE FROM voucher_templates WHERE id = ?", [(int)$_GET['delete']]); $success = __('templates_deleted'); } else { $error = __('error_csrf'); } } $templates = $db->fetchAll("SELECT t.*, u.name as creator FROM voucher_templates t LEFT JOIN users u ON t.created_by = u.id ORDER BY t.is_active DESC, t.name"); $currentPage = 'templates'; $adminBase = ''; ?>
= __('templates_subtitle') ?>
= __('templates_none') ?>
= __('templates_add_hint') ?>