settings.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. require_once __DIR__ . "/../config.php";
  3. require_once __DIR__ . "/../includes/functions.php";
  4. if (empty($_SESSION['admin_logged_in'])) {
  5. header("Location: login.php");
  6. exit();
  7. }
  8. $pageTitle = "Einstellungen";
  9. $message = "";
  10. $messageType = "";
  11. if ($_SERVER['REQUEST_METHOD'] === "POST" && isset($_POST['save_settings'])) {
  12. // Validate CSRF token
  13. if (!validateCsrfToken($_POST['csrf_token'] ?? "")) {
  14. $message = "Ungültiges Token. Bitte versuchen Sie es erneut.";
  15. $messageType = "error";
  16. } else {
  17. $settings = [
  18. "order_recipient_email" => $_POST['order_recipient_email'] ?? "",
  19. "attach_order_pdf_to_admin_email" => isset(
  20. $_POST['attach_order_pdf_to_admin_email'],
  21. ),
  22. ];
  23. if (saveSystemSettings($settings)) {
  24. logAccess("Admin updated system settings");
  25. $message = "Einstellungen wurden gespeichert.";
  26. $messageType = "success";
  27. } else {
  28. $message = "Einstellungen konnten nicht gespeichert werden.";
  29. $messageType = "error";
  30. }
  31. }
  32. }
  33. $settings = getSystemSettings();
  34. $bodyClass = "admin-page";
  35. include __DIR__ . "/../includes/header.php";
  36. ?>
  37. <div class="admin-header">
  38. <h2>Einstellungen</h2>
  39. <div>
  40. <a href="index.php" class="btn btn-secondary">Zurück zum Dashboard</a>
  41. </div>
  42. </div>
  43. <?php if ($message !== ""): ?>
  44. <div class="alert alert-<?php echo escape($messageType); ?>">
  45. <?php echo escape($message); ?>
  46. </div>
  47. <?php endif; ?>
  48. <div class="panel panel-lg">
  49. <form method="POST">
  50. <?php echo csrfField(); ?>
  51. <div class="form-group">
  52. <label for="order_recipient_email">Empfängeradresse für interne Bestellungen *</label>
  53. <input type="email" id="order_recipient_email" name="order_recipient_email" required value="<?php echo escape(
  54. $settings["order_recipient_email"],
  55. ); ?>">
  56. </div>
  57. <div class="form-group">
  58. <label class="checkbox-label">
  59. <input type="checkbox" name="attach_order_pdf_to_admin_email" value="1" <?php echo !empty(
  60. $settings["attach_order_pdf_to_admin_email"]
  61. )
  62. ? "checked"
  63. : ""; ?>>
  64. PDF an interne Bestell-E-Mails anhängen
  65. </label>
  66. </div>
  67. <button type="submit" name="save_settings" class="btn">Speichern</button>
  68. </form>
  69. </div>
  70. <?php include __DIR__ . "/../includes/footer.php"; ?>