Versionsverlauf

Aktuelle Version: 2.0.0 · Was wann und wie umgesetzt wurde (Changelog).

# Changelog – FANBUS.KOELN Mitfahrportal

Alle wichtigen Änderungen an dieser Anwendung werden hier dokumentiert.

Format basiert auf Keep a Changelog. Versionsschema: Semantic Versioning (MAJOR.MINOR.PATCH).

---

## [2.0.0] – 2026-02-12

**Version 2.0 – Neustart.** Die Plattform ist mit eigenen Formalia und Rechtstexten in sich abgeschlossen und kann als eigenständiges Mitfahrportal („runderneuert“) betrieben werden.

### Geändert

- **Eigenständige Rechteseiten:** Impressum, Datenschutz und Nutzungsbedingungen (Vertrag/AGB) liegen vollständig im Portal – keine Abhängigkeit mehr von externen Seiten (z. B. Odoo). Eigene Texte von FANBUS.KOELN in `public/impressum.php`, `public/datenschutz.php` und `public/vertrag.php`.
- **Einheitlicher Auftritt:** Footer, E-Mails und Buchungsseite verlinken durchgängig auf die Portal-Seiten (Impressum, Datenschutz, Vertrag). Konfiguration über `config.php` (`LEGAL_*_URL`, `PUBLIC_WEB_PATH`).
- **Versionssprung auf 2.0.0:** Markiert den Schritt zu einem in sich runden, professionell ausgestatteten Mitfahrportal.

**Relevante Dateien:** `VERSION`, `config.php`, `templates/public/footer.php`, `public/impressum.php`, `public/datenschutz.php`, `public/vertrag.php`, `IMPRESSUM-DATENSCHUTZ-WICHTIG.md`

---

## [1.9.4] – 2026-02-12

### Hinzugefügt

- **Anhänge bei Initiativ-Mail:** Beim „E-Mail schreiben“ können Dateien angehängt werden (z. B. Stadionkarte, Hotelbestätigung). Konfigurierbar in `config.php`: `EMAIL_ATTACHMENT_MAX_SIZE`, `EMAIL_ATTACHMENT_MAX_FILES`, `EMAIL_ATTACHMENT_EXTENSIONS`. Validierung von Typ, Größe und Anzahl.

**Geänderte Dateien:** `config.php`, `core/Mailer.php`, `public/compose-email.php`

---

## [1.9.3] – 2026-02-12

### Hinzugefügt

- **Initiativ-Mail:** E-Mails im Portal verfassen und versenden (FANBUS-Layout). `public/compose-email.php`; Links „E-Mail schreiben“ auf Ming Fahrte, Ming Bookunge, Sub-Admin-Buchungen sowie **Admin:** Nutzer, Fahrten-Übersicht, Buchungen, Fahrten, Ranking.
- **E-Mail-Optionen:** „E-Mail schreiben“ (Portal), mailto-Link (Standard-Client), **„Kopieren“** (z. B. für Mailbird). Kopieren-Button in main.js; Sub-Admin lädt main.js.

**Geänderte/neue Dateien:** `core/Mailer.php`, `public/compose-email.php`, `public/my-rides.php`, `public/bookings.php`, `sub-admin/bookings.php`, `templates/sub-admin/footer.php`, `assets/js/main.js`, `admin/users.php`, `admin/fahrten-uebersicht.php`, `admin/bookings.php`, `admin/rides.php`, `admin/ranking.php`

---

## [1.9.2] – 2026-02-12

### Hinzugefügt

- **Support & Wartung (einheitliche Ebene):** Neue Admin-Seite „Support & Wartung“ (`/admin/support.php`) mit: Link zu Backup (Datensicherung), Hinweisen zu Rückstellung/Löschen, und **Cursor-Agent-Vorgabe** (zuerst gesamte Doku lesen, dann Lösungsvorschlag mit Nutzer abstimmen). Sidebar-Eintrag „Support & Wartung“ ergänzt.
- **AGENTS.md:** Projekt-Datei mit Beschreibung der Support-Funktionen und der verbindlichen Agent-Regel (Doku zuerst, dann abstimmen).
- **Cursor-Regel:** `.cursor/rules/projekt-doku-zuerst.mdc` (alwaysApply) – jeder Cursor-Agent in diesem Projekt erhält die Vorgabe, zuerst README, CHANGELOG, DOKUMENTATION-IST-ZUSTAND-ANALYSE, LAYOUT-REFERENZ etc. zu lesen und erst nach Absprache Änderungen umzusetzen.

**Geänderte/neue Dateien:** `admin/support.php`, `templates/admin/header.php`, `AGENTS.md`, `.cursor/rules/projekt-doku-zuerst.mdc`

---

## [1.9.1] – 2026-02-12

### Behoben

- **PHP 8 Deprecated-Warnungen (Erinnerungs-Mail):** Parameterreihenfolge in `Mailer::sendRideReminder` und `Mailer::sendRideReminderPreview` angepasst: Pflichtparameter `$db` steht jetzt direkt nach `$rideId`, optionale Parameter (`$customMessage`, `$includeRideDetails`) am Ende. Behebt die Meldung „Optional parameter declared before required parameter“ auf der Seite „Erinnerungs-E-Mail senden“.

**Geänderte Dateien:** `core/Mailer.php`, `public/ride-reminder.php`

---

## [1.9.0] – 2026-02-12

### Geändert

- **E-Mails einheitliches Layout:** Alle System-E-Mails nutzen jetzt das gleiche FANBUS-Layout (roter Header, weiße Karte, Footer „Dein FANBUS.KOELN Team“, © FANBUS.KOELN). Betroffen: „Neue Buchung für deine Fahrt!“ (an Fahrer), „Buchung – Zahlung erforderlich“ / „Buchung bestätigt!“ (an Mitfahrer), „Buchung erweitert – Stadionkarte hinzöjeföhjt“ (an Fahrer), „Buchung storniert – keine Zahlung eingegangen“ (an Mitfahrer), „Dein Bonuscode für eine Freifahrt!“ (Treuebonus). Versand erfolgt weiterhin über PHPMailer (SMTP), BCC an info@fanbus.koeln unverändert.
- **E-Mail-Footer: Impressum, Datenschutz, AGB/Vertrag:** In allen an Nutzer (Kunden) gerichteten E-Mails steht im Footer eine Zeile mit verlinkten Begriffen: **Impressum** · **Datenschutz** · **AGB / Vertrag**. Links führen auf öffentlich erreichbare Seiten (kein Login). URLs werden in `config.php` über `LEGAL_IMPRESSUM_URL`, `LEGAL_DATENSCHUTZ_URL` und `LEGAL_AGB_URL` gesteuert (Standard: Portal-Seiten für Impressum/Datenschutz, Odoo für Vertrag).

**Geänderte Dateien (Release 1.9.0):** `config.php`, `CHANGELOG.md`, `core/Mailer.php`, `public/rides-book.php`, `public/booking-extend.php`, `public/booking-cancel.php`, `admin/bonus-codes.php`

---

## [1.8.0] – 2026-02-11

### Hinzugefügt

- **Datensicherung im Admin:** Neue Seite „Datensicherung“ mit Button zum Export der kompletten Datenbank als .sql-Datei. Optional Vollbackup als .zip (Datenbank + Upload-Ordner), falls ZipArchive verfügbar ist. Link in der Admin-Sidebar.

---

## [1.7.0] – 2026-02-11

### Hinzugefügt

- **Breadcrumbs:** Pfad-Anzeige (Heem → Dashboard → …) auf allen relevanten Seiten; einheitliche Seitentitel (h1) im Public-Bereich.
- **Sidebar auf Mobile:** Menü-Button nur unter 992px; Sidebar per Toggle einblendbar, Backdrop und Schließen-Button.
- **Dashboard:** Drei Blöcke „Offene Buchunge“, „Nächste Fahrt“, „Letzte Aktivität“ mit direkten Links.
- **Benachrichtigungen:** Glocken-Icon mit Badge in der Navbar, wenn offene Buchungen/Zahlungen (Fahrer oder Passagier); Link zum Dashboard #offen.
- **Fehlerseiten:** 404 und 500 mit Kölsch-Texten und Links zu Heem/Dashboard; .htaccess ErrorDocument eingetragen.
- **Suche Startseite:** Filter „Spell / Gegner sökke“ über der Spielkalender-Liste (clientseitig).

### Geändert

- **Public-Layout:** Seitenmenü wie Admin/Sub-Admin (feste Sidebar links, Inhalt rechts), Menü nach Rolle; Sidebar scrollt mit (nicht fix).
- **Navbar:** Nur ein Menü-Button; Hamburger auf Desktop (ausgeloggt) ausgeblendet; eingeloggt kein Hamburger in der Leiste.
- **Sub-Admin Buchungen:** `status` und `payment_status` abgesichert; Status-Spalte mit max. Breite, keine PHP-Warnung mehr in der Tabelle.
- **Kontaktdaten:** Bereich mit Klasse `contact-data` für stabile Sichtbarkeit; CSS-Anpassungen in admin.css.

---

## [1.6.0] – 2026-02-11

### Hinzugefügt

- **Zahlung & Belegpflicht:** Bestätigungsseite mit erwartetem Betrag vor „Zahlung bestätigen“. Zahlungsbestätigungs-E-Mail an Teilnehmer (FANBUS-Layout). „Zahlung bestätigen“ auch ohne Vorauskasse (Bar/Fahrtende) für Belegpflicht. Fahrt-Bericht mit Spalten nur bei Nutzung (Sitz, Stadionkarte, Übernachtung); Beträge auch wenn gespeicherter Gesamtbetrag fehlt.
- **E-Mail:** Alle System-Mails in BCC an info@fanbus.koeln.
- **Kölsch:** „Wat de berappe moss“, „Vun [Name] ze krije“, „Zahlung bestätije“ usw. in Buchungen und Fahrten.

### Geändert

- Buchungen speichern Gesamtbetrag; ältere Buchungen per Migration nachziehbar.

---

## [1.5.0] – 2026-02-10

### Hinzugefügt

- **Premium-Partner:** Eigener Bereich für aktive Anbieter (Buchungsübersicht, Bonus-Codes, Compliance). Banner auf der Startseite, Admin vergibt Status.
- **iCal-Export:** Buchungen als Kalenderdatei (.ics) exportierbar.
- **Erinnerungs-E-Mails:** Fahrer können Mitfahrer per E-Mail erinnern (mit aktuellen Fahrtdetails, optional eigener Nachricht, Test-Vorschau).

### Geändert

- Login-Weiterleitung für Premium-Partner, Link zu ihrem Bereich in „Meine Fahrten“.

---

## [1.4.0] – 2026-02-09

### Hinzugefügt

- **Bonus-System:** 5 Fahrten = 1 Freifahrt (Treuebonus), Bonuscode-Eingabe beim Buchen, Admin verwaltet Treue- und Kampagnen-Codes.
- **Ranking:** Aktivste Mitfahrer (Admin + öffentliche Vorschau), Top 3 Badges.
- **PayPal:** Automatischer Zahlungslink in Mails und im Dashboard bei ausstehender Zahlung.

### Geändert

- Startseite und Footer: Bonus- und Ranking-Links.

---

## [1.3.0] – 2026-02-09

### Hinzugefügt

- **Compliance im Admin:** Seite „Compliance / Recht“ mit Rechtsdokument (Druck/Teilen).
- **Fahrt-Bericht:** Bezeichnung „Compliance-Report“, angepasste Formulierungen im Nullsummen-Zertifikat.

---

## [1.2.0] – 2025-01-27

### Hinzugefügt

- **Buchung erweitern:** Teilnehmer können Stadionkarten zu bestehenden Buchungen nachbuchen, wenn der Fahrer die Fahrt mit Karten anbietet. Nur hinzufügen, Kontingente werden beachtet.

---

## [1.1.0] – 2026-02-04

### Hinzugefügt

- **Fahrtbilder:** Bis zu 2 Bilder pro Fahrt (z. B. Stadionkarte, Hotel), Thumbnails und Modal.
- **App-Icons & PWA:** Eigene Icons und Manifest für Browser und „Zum Home-Bildschirm“.

---

## [1.0.0] – 2026-01-27

### Erste stabile Hauptversion (PHP-Portal)

- **Stadionkarten:** Optionale Karten mit Kontingenten und Preisen, Buchung mit Aufteilung.
- **Übernachtung:** Optionale Übernachtung pro Fahrt, Kostenaufteilung.
- **Vorauskasse:** Optional mit Frist, Status „Wartet auf Zahlung“ / „Zahlung eingegangen“, Bestätigen/Stornieren durch Fahrer.
- **Teilnehmernamen:** Alle Mitfahrer namentlich pro Buchung.
- **Kölsch:** UI in Kölscher Mundart.

---

Format: Keep a Changelog · Versionsschema: Semantic Versioning (MAJOR.MINOR.PATCH).