settings.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. "order_confirmation_required" => isset(
  20. $_POST["order_confirmation_required"],
  21. ),
  22. "order_confirmation_expiry_days" =>
  23. (int) ($_POST["order_confirmation_expiry_days"] ?? 7),
  24. "attach_order_pdf_to_admin_email" => isset(
  25. $_POST["attach_order_pdf_to_admin_email"],
  26. ),
  27. ];
  28. if (saveSystemSettings($settings)) {
  29. logAccess("Admin updated system settings");
  30. $message = "Einstellungen wurden gespeichert.";
  31. $messageType = "success";
  32. } else {
  33. $message = "Einstellungen konnten nicht gespeichert werden.";
  34. $messageType = "error";
  35. }
  36. }
  37. }
  38. $settings = getSystemSettings();
  39. $bodyClass = "admin-page";
  40. include __DIR__ . "/../includes/header.php";
  41. ?>
  42. <div class="admin-header">
  43. <h2>Einstellungen</h2>
  44. <div>
  45. <a href="index.php" class="btn btn-secondary">Zurück zum Dashboard</a>
  46. </div>
  47. </div>
  48. <?php if ($message !== ""): ?>
  49. <div class="alert alert-<?php echo escape($messageType); ?>">
  50. <?php echo escape($message); ?>
  51. </div>
  52. <?php endif; ?>
  53. <div class="panel panel-lg">
  54. <form method="POST">
  55. <?php echo csrfField(); ?>
  56. <div class="form-group">
  57. <label for="order_recipient_email">Empfängeradresse für interne Bestellungen *</label>
  58. <input type="email" id="order_recipient_email" name="order_recipient_email" required value="<?php echo escape(
  59. $settings["order_recipient_email"],
  60. ); ?>">
  61. </div>
  62. <div class="form-group">
  63. <label>
  64. <input type="checkbox" name="order_confirmation_required" value="1" <?php echo !empty(
  65. $settings["order_confirmation_required"]
  66. )
  67. ? "checked"
  68. : ""; ?>>
  69. Bestellungen müssen vor interner Weiterleitung per E-Mail bestätigt werden
  70. </label>
  71. </div>
  72. <div class="form-group">
  73. <label for="order_confirmation_expiry_days">Bestätigungsfrist in Tagen *</label>
  74. <input type="number" id="order_confirmation_expiry_days" name="order_confirmation_expiry_days" min="1" required value="<?php echo (int) $settings[
  75. "order_confirmation_expiry_days"
  76. ]; ?>">
  77. </div>
  78. <div class="form-group">
  79. <label>
  80. <input type="checkbox" name="attach_order_pdf_to_admin_email" value="1" <?php echo !empty(
  81. $settings["attach_order_pdf_to_admin_email"]
  82. )
  83. ? "checked"
  84. : ""; ?>>
  85. PDF an interne Bestell-E-Mails anhängen
  86. </label>
  87. </div>
  88. <button type="submit" name="save_settings" class="btn">Speichern</button>
  89. </form>
  90. </div>
  91. <?php include __DIR__ . "/../includes/footer.php"; ?>