117 lines
4.9 KiB
Plaintext
117 lines
4.9 KiB
Plaintext
Papa-Kind-Treff – Projektstruktur und Pflegehinweise
|
||
Stand: 2026-07-22
|
||
|
||
1. Zweck
|
||
- Plattform für Väter mit Fokus auf lokale Treffen, Community/Forum, Mitgliederbereich und spätere Liveschaltung.
|
||
- Sprache und Tonalität im Frontend: freundlich, direkt, nutzerzentriert.
|
||
|
||
2. Zentrale Einstiegspunkte
|
||
- `public/index.php`
|
||
Front-Controller, Routing auf `public/page/*`, Staging-Basic-Auth, Layout-Steuerung.
|
||
- `partials/structure/layout_start.php`
|
||
Globale Assets, Body-Datasets, Consent-UI, Navigation, globale Modale.
|
||
- `partials/structure/layout_end.php`
|
||
Footer und Footer-Assets.
|
||
|
||
3. Wichtige Verzeichnisse
|
||
- `public/page/`
|
||
Route-Dateien.
|
||
Wichtige Seiten:
|
||
- `index.php` Startseite
|
||
- `search.php` Suche
|
||
- `community.php` Community-Übersicht
|
||
- `community_thread.php` Thread-Ansicht
|
||
- `dashboard.php` Mitgliederbereich
|
||
- `community-admin.php` Moderation/Admin
|
||
- `impressum.php`, `datenschutz.php`, `ueber-uns.php`
|
||
- `api/location-preference.php` API zum Speichern der Standortpräferenz
|
||
- `partials/landing/main/`
|
||
Startseiten-Blöcke.
|
||
- `partials/landing/community/`
|
||
Community-Templates inkl. Sidebar-Navigation.
|
||
- `partials/landing/account/`
|
||
Dashboard, Community-Admin, Login/Register.
|
||
- `partials/structure/`
|
||
Layout, Navigation, Footer, Matomo-Konfiguration.
|
||
- `src/App/`
|
||
Geschäftslogik und Services.
|
||
|
||
4. Relevante App-Klassen
|
||
- `src/App/AccountPages.php`
|
||
Dashboard-/Profil-Logik, Event-Anlage, Community-Bewerbung, Migration.
|
||
- `src/App/Community.php`
|
||
Boards, Threads, Posts, Forenstruktur, Punkte.
|
||
- `src/App/CommunityAccess.php`
|
||
Rollen, Bewerbungen, Meldungen, Moderation, Restrictions.
|
||
- `src/App/CommunityMigration.php`
|
||
DB-Erweiterungen für Community-Funktionen.
|
||
- `src/App/ProfileSettings.php`
|
||
Persistente Profileinstellungen für Standortfreigabe.
|
||
- `src/App/Search.php`
|
||
Eventsuche inkl. Distanzfilter.
|
||
|
||
5. Frontend-Assets
|
||
- `public/assets/js/app.js`
|
||
Globale UI-Logik, Slider, Geolocation, Consent-Manager, Matomo-Opt-in.
|
||
- `public/assets/css/app.css`
|
||
Globales UI-Styling inkl. Community, Footer, Consent.
|
||
- `public/assets/css/styles.css`
|
||
Basis-Styles.
|
||
|
||
6. Aktueller Funktionsstand
|
||
- Startseite mit Hero, Suche, neueste Treffen, Community-Vorschau, Mitgliederbereich.
|
||
- Hauptnavigation aktuell reduziert auf `Home`, `Suche`, `Community`.
|
||
- Für eingeloggte Nutzer gibt es rechts ein Profil-Dropdown mit Direktlinks zu `Profil`, `Kinder`, `Termine`, `Community`, `Einstellungen`, `Abmelden`.
|
||
- Kein eigener Top-Level-Punkt `Termine`; Event-Fokus liegt derzeit auf Startseite und Suche.
|
||
- Community mit Kategorien, Boards, Thread-Liste, Thread-Ansicht, Rollen-/Moderationslogik.
|
||
- Mitgliederbereich als Bereichslayout mit linker Navigation und separaten Seiten für Profil, Kinder, Termine, Community und Einstellungen.
|
||
- Community-Admin-Bereich für Bewerbungen, Meldungen, Rollen und Migration.
|
||
- Impressum, Datenschutz-&-Cookies-Seite und Über-uns vorhanden.
|
||
- Standortsortierung auf der Startseite für Treffen in der Nähe.
|
||
- Standortpräferenz im Einstellungsbereich:
|
||
- `disabled`
|
||
- `prompt`
|
||
- `enabled`
|
||
- Im Einstellungsbereich stehen zusätzlich Browser-Hinweise zur Standortfreigabe sowie der Einstieg in die Consent-Verwaltung.
|
||
- Consent-Manager:
|
||
- notwendige Cookies immer aktiv
|
||
- `analytics` für Matomo
|
||
- `external_services` für Standort/Karten/Leaflet/Nominatim
|
||
|
||
7. Rollenmodell Community
|
||
- normaler Nutzer
|
||
- schreiben, antworten, bewerten, melden
|
||
- `forum_admin`
|
||
- Themen/Beiträge bearbeiten und löschen
|
||
- Meldungen prüfen
|
||
- Community-Schreibsperren setzen
|
||
- `site_admin`
|
||
- alles wie `forum_admin`
|
||
- Bewerbungen prüfen
|
||
- Community-Migration
|
||
- `owner`
|
||
- alles wie `site_admin`
|
||
- Rollen vergeben/entziehen
|
||
|
||
8. Externe Dienste und rechtlich relevante Punkte
|
||
- Matomo (`matomo.my-statistics.info`) nur nach Consent `analytics`.
|
||
- Leaflet via `unpkg.com` nur nach Consent `external_services`.
|
||
- OpenStreetMap Nominatim für Geocoding/Reverse-Geocoding nur nach Consent `external_services` bei Browserfunktionen.
|
||
- Browser-Geolocation und lokale Standortspeicherung nur nach Consent `external_services` und zusätzlicher Standortpräferenz.
|
||
- Jede neue Einbindung von Cookies, LocalStorage, SessionStorage, Tracking, externen Skripten, APIs oder Drittanbietern muss:
|
||
- technisch im Consent-Manager berücksichtigt werden
|
||
- in `README.md` dokumentiert werden
|
||
- in dieser Datei vermerkt werden
|
||
- in den rechtlich notwendigen Hinweisen/Datenschutztexten ergänzt werden
|
||
|
||
9. Pflicht bei zukünftigen Änderungen
|
||
- Bei jeder funktionalen Änderung immer mitprüfen und bei Bedarf aktualisieren:
|
||
- `README.md`
|
||
- `.projectstructure.txt`
|
||
- `PROJECT_CONTEXT.md`
|
||
- Bei neuen Cookies, Tracking-Mechanismen oder Drittanbietern zusätzlich:
|
||
- Consent-Logik anpassen
|
||
- rechtliche Texte/Hinweise ergänzen
|
||
- Opt-in/Opt-out technisch verifizieren
|
||
- Änderungen an Navigation, Nutzerführung oder Rollenanzeige ebenfalls in dieser Datei, `README.md` und `PROJECT_CONTEXT.md` mitführen.
|