# Config Reference (`config.php`) `config.php` wird nicht versioniert. Vorlage: `config.sample.php` (auf dem Server nach `config.php` kopieren und anpassen). ## Relevante Konstanten | Konstante | Zweck | |---|---| | `SITE_NAME` | Primärer Markenname in Oberfläche und Mails | | `SITE_SERVICE_NAME` | Servicename für Fließtexte, Betreffzeilen und textliche Verweise | | `SITE_SERVICE_HEADER` | Service-Bezeichnung für Header, Seitentitel und sichtbare Überschriften | | `SITE_DEPARTMENT_NAME` | Fachbereichskennzeichnung für Footer und Kommunikation | | `SITE_ADDRESS_LINE` | Postanschrift des verantwortlichen Amts im Footer | | `SITE_IMPRINT_URL` | Ziel-URL für den Impressumslink | | `SITE_PRIVACY_URL` | Ziel-URL für den Datenschutzlink | | `SITE_FULL_NAME` | Kombinierter Anzeigename aus Marke und Service-Header | | `SITE_URL` | Basispfad oder Basis-URL für Links und Assets | | `SITE_CANONICAL_ORIGIN` | Optional: `https://hostname` (ohne Pfad) für absolute E-Mail-Links, falls `HTTP_HOST` unzuverlässig ist | | `ADMIN_LOGIN_RATE_LIMIT_MAX` | Optional: max. fehlgeschlagene Admin-Logins pro IP und Zeitfenster (Standard: 10) | | `ADMIN_LOGIN_RATE_LIMIT_WINDOW` | Optional: Zeitfenster in Sekunden für Admin-Login-Limit (Standard: 900) | | `CHECKOUT_RATE_LIMIT_MAX` | Optional: max. Checkout-Versuche pro IP und Fenster (Zähler erst nach erfolgreich gespeicherter Bestellung; Standard: 30) | | `CHECKOUT_RATE_LIMIT_WINDOW` | Optional: Zeitfenster in Sekunden für Checkout-Limit (Standard: 3600) | | `DISCLAIMER_LINES` | Hinweistext auf der Startseite | | `ORDER_PREFIX` | Präfix für Bestellnummern | | `ORDER_RECIPIENT_EMAIL` | Standard-Empfänger für interne Bestellmails | | `ATTACH_ORDER_PDF_TO_ADMIN_EMAIL` | Standard, ob interne Bestellmails ein PDF erhalten | | `ADMIN_EMAIL` | Fallback für Admin-Profile ohne gültige Mailadresse | | `FROM_EMAIL` | Absenderadresse ausgehender Mails | | `FROM_NAME` | Anzeigename ausgehender Mails | | `DATA_DIR` | Verzeichnis für JSON-Daten und Unterordner (`data/`) | | `UPLOADS_DIR` | Verzeichnis für Produktbilder (`data/uploads/`) | | `UPLOADS_URL` | Öffentliche URL-Basis für Uploads (`SITE_URL` + `/data/uploads`) | | `PRODUCTS_FILE` | JSON-Datei für Produkte | | `ORDERS_FILE` | JSON-Datei für Bestellungen | | `ORGANIZATIONS_FILE` | JSON-Datei für Organisationen | | `SETTINGS_FILE` | JSON-Datei für im Admin veränderbare Systemeinstellungen | | `ADMINS_FILE` | JSON-Datei für Adminkonten | | `CATEGORIES_FILE` | JSON-Datei für Kategorien | | `FAQ_FILE` | JSON-Datei für FAQ-Inhalte | | `MANUAL_BACKORDERS_FILE` | JSON-Datei für manuelle Nachbestell-Einträge (ohne Bestellbezug) | ## Runtime (`data/settings.json`) Im Admin unter **Einstellungen** überschreibbar (schreibt `data/settings.json`): - `order_recipient_email` — Empfänger interner Bestellmails (hat Vorrang vor `ORDER_RECIPIENT_EMAIL`) - `attach_order_pdf_to_admin_email` — PDF-Anhang an interne Bestellmails Der Startseiten-Introtext wird unter **FAQ** gepflegt (`startpage_intro_text` in derselben Datei). Beim Speichern der Einstellungen bleibt der Introtext erhalten. ## Rate limits und Logging - Rate-Limit-Zähler liegen unter `data/ratelimit/` (wird bei Bedarf angelegt). - Wenn das Verzeichnis nicht beschreibbar ist, gelten Limits als **nicht aktiv** (Anfragen werden zugelassen — Verfügbarkeit auf Shared Hosting). - Zugriffs- und Fehlerprotokolle: `data/logs/` (siehe `logAccess` / `logError` in `includes/functions.php`). ## Hinweis Die Konstanten definieren die Startwerte. Änderbare Betriebsparameter wie interne Empfängeradresse können zusätzlich im Adminbereich unter `Einstellungen` angepasst werden.