faq.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. require_once __DIR__ . "/../config.php";
  3. require_once __DIR__ . "/../includes/functions.php";
  4. // Check admin login
  5. if (!isset($_SESSION['admin_logged_in']) || !$_SESSION['admin_logged_in']) {
  6. header("Location: login.php");
  7. exit();
  8. }
  9. $pageTitle = "FAQ bearbeiten";
  10. $message = "";
  11. $messageType = "";
  12. $settings = getSystemSettings();
  13. if ($_SERVER['REQUEST_METHOD'] === "POST" && isset($_POST['save_faq'])) {
  14. // Validate CSRF token
  15. if (!validateCsrfToken($_POST['csrf_token'] ?? "")) {
  16. $message = "Ungültiges Token. Bitte versuchen Sie es erneut.";
  17. $messageType = "error";
  18. } else {
  19. $content = isset($_POST['content']) ? (string) $_POST['content'] : "";
  20. $settings["startpage_intro_text"] = isset($_POST['startpage_intro_text'])
  21. ? (string) $_POST['startpage_intro_text']
  22. : "";
  23. if (saveFaqContent($content) && saveSystemSettings($settings)) {
  24. logAccess("Admin updated FAQ content");
  25. $message = "FAQ-Inhalt und Startseitentext wurden gespeichert.";
  26. $messageType = "success";
  27. } else {
  28. $message = "FAQ-Inhalt und/oder Startseitentext konnten nicht gespeichert werden.";
  29. $messageType = "error";
  30. }
  31. }
  32. }
  33. $faqContent = getFaqContent();
  34. $settings = getSystemSettings();
  35. $startpageIntroText = (string) ($settings["startpage_intro_text"] ?? "");
  36. $bodyClass = "admin-page";
  37. include __DIR__ . "/../includes/header.php";
  38. ?>
  39. <div class="admin-header">
  40. <h2>FAQ bearbeiten</h2>
  41. <div>
  42. <a href="index.php" class="btn btn-secondary">Zurück zum Dashboard</a>
  43. </div>
  44. </div>
  45. <?php if ($message): ?>
  46. <div class="alert alert-<?php echo $messageType; ?>">
  47. <?php echo htmlspecialchars($message); ?>
  48. </div>
  49. <?php endif; ?>
  50. <div class="panel panel-lg">
  51. <p class="mb-2">
  52. Unterstützte Markdown-Syntax: <code>#</code>, <code>##</code>, <code>###</code>, <code>**fett**</code>, <code>*kursiv*</code>, Listen mit <code>-</code> oder <code>1.</code>, Links mit <code>[Text](https://example.com)</code>
  53. </p>
  54. <form method="POST">
  55. <?php echo csrfField(); ?>
  56. <div class="form-group">
  57. <label for="content">FAQ-Inhalt (Markdown)</label>
  58. <textarea id="content" name="content" rows="18"><?php echo htmlspecialchars(
  59. $faqContent,
  60. ); ?></textarea>
  61. </div>
  62. <div class="form-group">
  63. <label for="startpage_intro_text">Startseitentext</label>
  64. <textarea id="startpage_intro_text" name="startpage_intro_text" rows="6"><?php echo htmlspecialchars(
  65. $startpageIntroText,
  66. ); ?></textarea>
  67. </div>
  68. <button type="submit" name="save_faq" class="btn">Speichern</button>
  69. </form>
  70. </div>
  71. <?php include __DIR__ . "/../includes/footer.php"; ?>