# Space UI Demo v2 (PHP + CSS + JS) ## Übersicht Diese Demo zeigt eine HUD-artige Navigation mit statischem Hauptmenü, kontextabhängiger Subnav, Sticky-Ressourcenleiste, Toasts und einem generischen Content-Bereich. Das HTML wird vom zentralen Entry-Point `public/index.php` zusammengesetzt, die einzelnen Bausteine liegen als Partial-Templates in `src/partials`. ## Verzeichnisstruktur - `web/desktop/public/`: Dokumentenwurzel für den Desktop-Entry-Point und seine Assets (`assets/`). - `web/desktop/src/partials/`: Die PHP-Partial-Templates für Menüs, Ressourcen und Content im Desktop-Build. - `web/mobile/public/`: Mobile-Entry-Point; derzeit eine Kopie des Desktop-Systems, die für responsive Änderungen angepasst werden kann. - `web/mobile/src/partials/`: Mobile-Partial-Templates (momentan identisch zum Desktop-Set). ## Layout-Highlights - **Sidebar**: Hauptmenü (`main-nav.php`) plus Planetenwechsler (`planet-switcher.php`) in der linken Spalte. - **Topbar & Notification-Dropdown**: Anzeige, Actions & Test-Toast-Button; bleibt innerhalb von `web/desktop/public/index.php`. - **Subnav**: Mittig platzierte Tabs (Kontextmenü) basierend auf dem `$subnav`-Array in `web/desktop/public/index.php`. - **Alert Banner**: `alert-banner.php` sitzt direkt unterhalb der Topbar, wenn `$errorMessage` gesetzt ist. - **Ressourcenleiste**: Sticky-Komponente unterhalb der Subnav (`web/desktop/src/partials/ressourcen.php`). - **Content**: Demo-Inhalte aus `web/desktop/src/partials/site.php`, die Sections und Subpages simulieren. - **Footer**: Menü-Links und optionaler Admin-Chip, gesteuert über `$isAdmin` und `footer-links.php`. ## Lokale Entwicklung 1. `cd /path/to/Space-Theme`. 2. `php -S localhost:8000 -t web/desktop/public` (setzt die Dokumentenwurzel auf den Desktop-Build). 3. Öffne `http://localhost:8000/index.php` und wechsle z. B. über `?s=build&p=demolish` die Sections oder wechsle mit `-t web/mobile/public` zur mobilen Variante. ## Worktree-Sandbox (Docker) Die Sandbox ist eine getrennte Working-Copy via `git worktree`. Docker laeuft nur dort, damit Logs/Uploads/DB-Volumes das Hauptverzeichnis nicht verschmutzen. ### Init (einmalig) - `bash scripts/worktree-init.sh` - Optionaler Pfad: `bash scripts/worktree-init.sh ../mein-sandbox-pfad` ### Start (Up) - `bash scripts/worktree-up.sh` - Optionaler Pfad: `bash scripts/worktree-up.sh ../mein-sandbox-pfad` ### Sync (nur Code, ohne Commit) - `bash scripts/worktree-sync.sh` - Wendet auf Wunsch uncommitted Aenderungen aus dem Haupt-Worktree per Patch an. ### Stop (Down) - `bash scripts/worktree-down.sh` ### Entfernen (Destroy) - `bash scripts/worktree-destroy.sh` Hinweise: - Standardpfad ist `../galaxyforge-sandbox` (relativ zum Repo-Root). - Lege eine `.env` nur in der Sandbox an. Sie wird nicht committet. - Verwende `.env.example` als Vorlage und aendere die Platzhalter vor Prod. ### Testumgebung starten (inkl. DB, Migrations, Seed) - `bash scripts/test-env-up.sh` - Erstellt die Sandbox bei Bedarf, startet Docker, legt eine lokale `.env` in der Sandbox an und startet den PHP-Server. - Stoppen: `CTRL+C` im Terminal, danach optional `bash scripts/worktree-down.sh`. ## Hinweise - Die PHP-Session (`session_start()`) im Entry-Point dient Flash-Toasts und Alert-Messages. - Die Partial-Templates erwarten die Variablen `$section`, `$sub`, `$planet` und greifen über `$partialsPath` aus `web/desktop/public/index.php` aufeinander zu. - Performance-/Alert-Profile werden über `sessionStorage` bzw. `localStorage` gesteuert – die Buttons in `web/desktop/public/assets/ui.js` sorgen für die Visualisierung.