CONFIG_REFERENCE.md 5.0 KB

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)

Bearbeitung im Admin

config.php kann direkt im Admin unter Einstellungen > Lokale Konfiguration bearbeitet werden — dieser Abschnitt ist nur sichtbar, wenn mit dem Benutzerkonto admin angemeldet ist (siehe data/admins.json). Vor dem Speichern wird die PHP-Syntax im laufenden Prozess geprüft (token_get_all() mit TOKEN_PARSE, da PHP_BINARY unter mod_php/php-fpm nicht auf die PHP-CLI zeigt); die vorherige Version wird automatisch nach data/backups/config/ gesichert.

Die Syntaxprüfung erkennt nur Parse-Fehler. Eine syntaktisch gültige Konfiguration, in der benötigte Konstanten (z. B. DATA_DIR) fehlen, legt die Anwendung inklusive dieser Bearbeitungsmaske lahm — dann muss config.php per Dateizugriff aus data/backups/config/ wiederhergestellt werden.

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
  • nametag_product_name — Produktname, über den admin/nametags.php Namensschild-Positionen erkennt (Standard: Namensschild). Muss exakt dem Produktnamen im Katalog entsprechen; siehe ADMIN_BUSINESS_LOGIC.md

Der Startseiten-Introtext wird unter Einstellungen > FAQ gepflegt (startpage_intro_text in derselben Datei). Beim Speichern des Abschnitts Allgemein 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).
  • Logs werden ab LOG_MAX_BYTES rotiert, es bleiben LOG_KEEP_FILES rotierte Dateien erhalten, und rotierte Logs älter als LOG_MAX_AGE_SECONDS werden entfernt.

Update und Backup

Update- und Backup-Konstanten stehen nicht in config.php, sondern in manage-client/config.php. Details: Update und Backup.

Hinweis

Die Konstanten definieren die Startwerte. Änderbare Betriebsparameter wie interne Empfängeradresse können zusätzlich im Adminbereich unter Einstellungen angepasst werden.