config.sample.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. // Configuration file for the webshop
  3. // Site settings
  4. define('SITE_NAME', 'Feuerwehr Freising Test Shop');
  5. define('SITE_URL', '/shop'); // Leave empty for relative URLs
  6. // Disclaimer (placeholder text shown on start page)
  7. define('DISCLAIMER_LINES', [
  8. 'Dieser Shop ist ein internes System für Mitglieder der Freiwilligen Feuerwehr Freising.',
  9. 'Diese Produkte können nicht von externen Personen bestellt werden.',
  10. ]);
  11. // Admin settings
  12. // Default password: admin123
  13. // Change these hashes after first login!
  14. //
  15. // To generate a new password hash in bash (using Python bcrypt):
  16. // python3 -c "import bcrypt; print(bcrypt.hashpw(b'your_new_password', bcrypt.gensalt(rounds=10, prefix=b'2y')).decode())"
  17. //
  18. // Alternative using htpasswd (if Apache tools are installed):
  19. // htpasswd -bnBC 10 "" your_new_password | sed 's/^://' | sed 's/\$2y\$/\$2y\$/'
  20. //
  21. // To add a new admin user:
  22. // 1) Create a new hash for the password (see commands above).
  23. // 2) Add a new entry to ADMIN_USERS: 'username' => 'hash'
  24. //
  25. // Note:
  26. // Runtime login source of truth is data/admins.json.
  27. // ADMIN_USERS is kept only as optional legacy reference.
  28. //
  29. // Example:
  30. // 'max' => '$2y$10$your_hash_here'
  31. //
  32. define('ADMIN_USERS', [
  33. 'admin' => '$2y$10$gArNDW.HhPmDcwYJ/xWRiOPkNop3695UIYzkV.G8WHQRUtLJVPLhy',
  34. 'manager' => '$2y$10$gArNDW.HhPmDcwYJ/xWRiOPkNop3695UIYzkV.G8WHQRUtLJVPLhy'
  35. ]);
  36. // Reservation settings
  37. define('RESERVATION_EXPIRY_DAYS', 60);
  38. define('ORDER_PREFIX', 'FWFS'); // Prefix for order number pattern: PREFIX-YEAR-SEQ
  39. // Browser-linked order history settings (no login required)
  40. define('ORDER_HISTORY_COOKIE_NAME', 'fw_shop_order_history');
  41. define('ORDER_HISTORY_COOKIE_TTL_DAYS', 365);
  42. define('ORDER_HISTORY_MAX_IDS', 10);
  43. define('ORDER_HISTORY_COOKIE_SECRET', 'change-this-order-history-secret'); // Change this to a long random secret
  44. // Email settings
  45. define('ADMIN_EMAIL', 'inbox@medowar.de'); // Fallback recipient if no admin account emails are configured
  46. define('FROM_EMAIL', 'shop@med0.de'); // Change to your sender email
  47. define('FROM_NAME', SITE_NAME);
  48. // Data file paths
  49. define('DATA_DIR', __DIR__ . '/data/');
  50. define('PRODUCTS_FILE', DATA_DIR . 'products.json');
  51. define('RESERVATIONS_FILE', DATA_DIR . 'reservations.json');
  52. define('ADMINS_FILE', DATA_DIR . 'admins.json');
  53. define('FAQ_FILE', DATA_DIR . 'faq.json');
  54. // Session settings
  55. if (session_status() === PHP_SESSION_NONE) {
  56. session_start();
  57. }