From c8ed8fab3b90b670ee8c2ffdee126d33ba175a86 Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Fri, 21 Aug 2026 02:20:46 +0200 Subject: [PATCH] Clean up --- Internal/de/PROJECT_CONTEXT.md | 6 +- Internal/de/PROJECT_STRUCTURE.md | 2 +- Internal/de/README.md | 5 +- Internal/en/PROJECT_CONTEXT.md | 6 +- Internal/en/PROJECT_STRUCTURE.md | 2 +- Internal/en/README.md | 5 +- README.md | 5 +- partials/landing/account/community-admin.php | 6 +- partials/landing/account/dashboard.php | 85 ++++++++++++++++---- partials/structure/nav.php | 52 ++---------- public/assets/css/app.css | 3 + src/App/AccountPages.php | 33 ++++++-- 12 files changed, 130 insertions(+), 80 deletions(-) diff --git a/Internal/de/PROJECT_CONTEXT.md b/Internal/de/PROJECT_CONTEXT.md index 8f19d79..a24baf4 100644 --- a/Internal/de/PROJECT_CONTEXT.md +++ b/Internal/de/PROJECT_CONTEXT.md @@ -16,8 +16,10 @@ Papa-Kind-Treff ist eine PHP-basierte Plattform für Väter. Kernbereiche sind l - Seiten-Admins erhalten eine eigene System-Sektion für globale Betriebs- und Diensteschalter. ## Konto / Mitgliederbereich -- Profil-Menü aktuell: `Profil`, `Kinder`, `Events`, `Orte & Veranstaltungen`, `Community`, `Einstellungen`, `Abmelden` -- Für `SiteOwner` kommt zusätzlich der Bereich `Profil-Levels` dazu. +- Das Profilmenü oben rechts enthält nur `Profil`, für berechtigte Nutzer zusätzlich `Admin-Einstellungen`, sowie `Abmelden`. +- Der Profilbereich enthält persönliche Angaben, Kinder, eigene Events, eigene Orte und Veranstaltungen, Cookie-/Kontoeinstellungen sowie Community-Informationen. +- Der Admin-Bereich ist getrennt vom Profilbereich und enthält abhängig von der Berechtigung Profil-Levels, Kategorien, System-Einstellungen sowie Community-Moderation und Listing-Freigaben. +- Bestehende Direktlinks zu `Kategorien`, `Profil-Levels` und `System` werden automatisch in den Admin-Bereich eingeordnet. - Kinder können angelegt, bearbeitet und gelöscht werden. - Wenn ein Geburtsdatum gesetzt ist, wird das Alter automatisch berechnet und später bei Bedarf aktualisiert. - Die Konto-E-Mail wird app-seitig verschlüsselt gespeichert und über einen separaten HMAC-Lookup-Hash adressiert. diff --git a/Internal/de/PROJECT_STRUCTURE.md b/Internal/de/PROJECT_STRUCTURE.md index 32f9d23..4632e95 100644 --- a/Internal/de/PROJECT_STRUCTURE.md +++ b/Internal/de/PROJECT_STRUCTURE.md @@ -16,7 +16,7 @@ Stand: 2026-08-10 ## Aktuelle Strukturhinweise - Avatar-Verwaltung: `src/App/Avatar/AvatarManager.php` - aktive Styles: `src/App/Avatar/Lorelei.php`, `src/App/Avatar/Croodles.php` -- Profil-/Kinder-/Event-/Ausflugsziel-Logik im Mitgliederbereich: `partials/landing/account/dashboard.php` +- Profil- und Admin-Bereiche mit getrennten Seitennavigationen: `partials/landing/account/dashboard.php`, Zugriffskontext in `src/App/AccountPages.php`, Einstieg über `partials/structure/nav.php` - Event-Quellen aus Datenbank plus Speicherung der Event-Location-Herkunft: `partials/landing/account/dashboard.php`, `src/App/AccountPages.php`, `Internal/db/schema.sql` - Consent- und rechtliche Texte: `public/page/datenschutz.php` - System-Einstellungen: `src/App/SystemSettings.php` diff --git a/Internal/de/README.md b/Internal/de/README.md index b38441d..ea2324a 100644 --- a/Internal/de/README.md +++ b/Internal/de/README.md @@ -16,8 +16,9 @@ Papa-Kind-Treff ist eine PHP-basierte Plattform für Väter mit Fokus auf lokale - Community-Admin-Bereich für Bewerbungen, Meldungen, Rollen und Migration - standortbasierte Sortierung für die neuesten Events - Mitgliederbereich mit linker Bereichsnavigation -- Profil-Menü mit `Profil`, `Kinder`, `Events`, `Orte & Veranstaltungen`, `Community`, `Einstellungen` -- Für `SiteOwner` gibt es zusätzlich den Punkt `Profil-Levels` +- Profilmenü oben rechts mit `Profil` sowie für Berechtigte `Admin-Einstellungen` +- Profilbereich für persönliche Angaben, Kinder, eigene Events, eigene Orte und Veranstaltungen, Einstellungen und Community-Informationen +- Separater Admin-Bereich für Profil-Levels, Kategorien, System-Einstellungen sowie Moderation und Freigaben von Orten und Veranstaltungen - Konto-E-Mails sowie sensible Profilfelder werden app-seitig verschlüsselt gespeichert - Kinder können angelegt, bearbeitet und gelöscht werden - Profiladresse mit verschlüsselter Straße/Hausnummer, Adresssuche, Browser-Übernahme und Validierung diff --git a/Internal/en/PROJECT_CONTEXT.md b/Internal/en/PROJECT_CONTEXT.md index 8730a50..a6ebde0 100644 --- a/Internal/en/PROJECT_CONTEXT.md +++ b/Internal/en/PROJECT_CONTEXT.md @@ -16,8 +16,10 @@ Papa-Kind-Treff is a PHP-based platform for fathers. Core areas are local events - Site admins get a dedicated system section for global operating and service flags. ## Account / Member Area -- Profile menu currently contains `Profile`, `Children`, `Events`, `Places & Events`, `Community`, `Settings`, `Logout`. -- `SiteOwner` additionally gets the area `Profile Levels`. +- The top-right profile menu only contains `Profile`, `Admin Settings` for authorized users, and `Logout`. +- The profile area contains personal information, children, own events, own places and event-style entries, cookie/account settings, and community information. +- The admin area is separated from the profile area and contains, depending on permissions, profile levels, categories, system settings, community moderation, and listing approvals. +- Existing direct links to `Categories`, `Profile Levels`, and `System` are automatically assigned to the admin area. - Children can be created, edited, and deleted. - If a birth date is set, age is calculated automatically and updated later when needed. - Account email is encrypted application-side and addressed through a separate HMAC lookup hash. diff --git a/Internal/en/PROJECT_STRUCTURE.md b/Internal/en/PROJECT_STRUCTURE.md index ebabef5..3a27455 100644 --- a/Internal/en/PROJECT_STRUCTURE.md +++ b/Internal/en/PROJECT_STRUCTURE.md @@ -16,7 +16,7 @@ Updated: 2026-08-10 ## Current Structure Notes - avatar management: `src/App/Avatar/AvatarManager.php` - active avatar styles: `src/App/Avatar/Lorelei.php`, `src/App/Avatar/Croodles.php` -- profile/children/event/outing logic inside member area: `partials/landing/account/dashboard.php` +- separated profile and admin navigation inside the member area: `partials/landing/account/dashboard.php`, access context in `src/App/AccountPages.php`, entry through `partials/structure/nav.php` - database-backed event location sources plus persisted event location origin: `partials/landing/account/dashboard.php`, `src/App/AccountPages.php`, `Internal/db/schema.sql` - consent and legal texts: `public/page/datenschutz.php` - system settings: `src/App/SystemSettings.php` diff --git a/Internal/en/README.md b/Internal/en/README.md index 2463cb2..2ae2385 100644 --- a/Internal/en/README.md +++ b/Internal/en/README.md @@ -16,8 +16,9 @@ Papa-Kind-Treff is a PHP-based platform for fathers focused on local events, app - community admin area for applications, reports, roles, and migrations - location-based ordering for the newest events - member area with left-side section navigation -- profile menu with `Profile`, `Children`, `Events`, `Places & Events`, `Community`, `Settings` -- `SiteOwner` additionally gets the member-area item `Profile Levels` +- top-right profile menu with `Profile` and, for authorized users, `Admin Settings` +- profile area for personal information, children, own events, own places and event-style entries, settings, and community information +- separate admin area for profile levels, categories, system settings, and moderation and approvals for places and event-style entries - account emails and sensitive profile fields are stored encrypted application-side - children can be created, edited, and deleted - profile address supports encrypted street/house number, address search, browser import, and validation diff --git a/README.md b/README.md index 008e9a4..8f3bd36 100644 --- a/README.md +++ b/README.md @@ -36,8 +36,9 @@ Papa-Kind-Treff ist eine PHP-basierte Plattform für Väter mit Fokus auf: - Primärbegriff im Produkt: `Events` - `Termine` und `Treffen` ergänzend in SEO- und Erklärungstexten - Hauptnavigation aktuell: `Home`, `Event Suche`, `Community` -- Profil-Menü aktuell: `Profil`, `Kinder`, `Events`, `Orte & Veranstaltungen`, `Community`, `Einstellungen`, `Abmelden` -- Für `SiteOwner` gibt es zusätzlich den Mitgliederbereichspunkt `Profil-Levels` +- Das Profilmenü oben rechts trennt klar zwischen `Profil` und dem nur für Berechtigte sichtbaren Punkt `Admin-Einstellungen`. +- Der Profilbereich bündelt persönliche Angaben, Kinder, eigene Events, eigene Orte und Veranstaltungen, Cookie-/Kontoeinstellungen sowie Community-Informationen. +- Der Admin-Bereich bündelt getrennt Profil-Levels, Kategorien, System-Einstellungen sowie die Moderation und Freigabe von Orten und Veranstaltungen. - In `Profil-Levels` kann der `SiteOwner` Community-Level pflegen, Benutzer suchen und Community-Punkte manuell mit Begründung erhöhen - In `Profil-Levels` werden zusätzlich Nutzer angezeigt, die in den letzten 30 Tagen mindestens den Rang `Säule der Väter-Community` erreicht haben - Im Bereich `Community-Admin` läuft die Rollenvergabe jetzt über eine Benutzersuche statt über rohe Benutzer-IDs; `Site-Admins` bleiben dabei auf die vorhandene Rollenlogik begrenzt diff --git a/partials/landing/account/community-admin.php b/partials/landing/account/community-admin.php index d325957..6c6d313 100644 --- a/partials/landing/account/community-admin.php +++ b/partials/landing/account/community-admin.php @@ -77,7 +77,7 @@ $migrationStatus = ($migration && $canManageApplications) ? $migration->status()
Home / - Mitgliederbereich + Admin-Einstellungen / Community-Admin
@@ -88,7 +88,7 @@ $migrationStatus = ($migration && $canManageApplications) ? $migration->status()

Moderation, Bewerbungen und Rollen an einem Ort.

- Zurück zum Mitgliederbereich + Zurück zu den Admin-Einstellungen
@@ -101,7 +101,7 @@ $migrationStatus = ($migration && $canManageApplications) ? $migration->status()
-
+

Offene Orts- und Veranstaltungsanfragen

diff --git a/partials/landing/account/dashboard.php b/partials/landing/account/dashboard.php index 903ca0c..02d3209 100755 --- a/partials/landing/account/dashboard.php +++ b/partials/landing/account/dashboard.php @@ -135,23 +135,26 @@ if ($priceRows === []) { $editingChild = isset($editChild) && $editChild !== null; $childAction = $editingChild ? 'child_update' : 'child_add'; $childModalTitle = $editingChild ? 'Kind bearbeiten' : 'Kind hinzufügen'; -$sectionLinks = [ - 'profile' => 'Profil', - 'children' => 'Kinder', - 'events' => 'Events', - 'places' => 'Orte & Veranstaltungen', - 'community' => 'Community', - 'settings' => 'Einstellungen', -]; -if (!empty($canManageProfileLevels)) { - $sectionLinks['profile-levels'] = 'Profil-Levels'; -} +$isAdminArea = ($area ?? 'profile') === 'admin'; +$sectionLinks = $isAdminArea + ? ['admin-home' => 'Übersicht'] + : [ + 'profile' => 'Profil', + 'children' => 'Kinder', + 'events' => 'Events', + 'places' => 'Orte & Veranstaltungen', + 'community' => 'Community', + 'settings' => 'Einstellungen', + ]; $showEventTypeChoice = !$editing && (($section ?? 'events') === 'places') && $requestedCreateListingKind === null; $modalSectionTarget = ($editingListing || ($section ?? '') === 'places') ? 'places' : 'events'; -if (!empty($canManageCategories)) { +if ($isAdminArea && !empty($canManageCategories)) { $sectionLinks['categories'] = 'Kategorien'; } -if (!empty($canManageSystemSettings)) { +if ($isAdminArea && !empty($canManageProfileLevels)) { + $sectionLinks['profile-levels'] = 'Profil-Levels'; +} +if ($isAdminArea && !empty($canManageSystemSettings)) { $sectionLinks['system'] = 'System'; } ?> @@ -159,7 +162,7 @@ if (!empty($canManageSystemSettings)) {

Hallo, !

-

Verwalte dein Profil, Kinder, Events und Teilnahmen.

+

@@ -181,15 +184,67 @@ if (!empty($canManageSystemSettings)) {