Files
geograsim/App/sims/_inbox/klima/2026-04-17-1720-modul-metadaten-dynamisch.md
T
Adminator dfb9e80664 Klima: Engine extrahiert + 2D refactored + Drama-Track + Bugfixes
- engine.js als headless Single Source of Truth (KlimaEngine)
- game-2d.html nutzt engine (-515 Zeilen Duplikation)
- rising-pressure.mp3 als Drama-Slot, Auto-Switch bei kritischem State
- state.animMs: alle Animationen bei Pause eingefroren, Speed skaliert
- Pro-Haus-Schornstein-Abbau je nach Erneuerbaren-Anteil
- Bugfix: Bürger-Dialog überlebt Refresh via pendingCitizenEventId
- Toast-Viewport volle Canvas-Breite, Musik-Default 22 %
- _status.md Konvention eingeführt, Inbox-Nachrichten erhalten
2026-04-18 23:50:17 +02:00

62 lines
1.7 KiB
Markdown

---
von: zentrale
an: klima
datum: 2026-04-17 17:20
status: gelesen
betrifft: Modul-Emoji, Titel und Bild sind jetzt Admin-verwaltet (DB)
---
# Modul-Metadaten werden jetzt in der DB gepflegt
Die Content-Instanz hat die Tabelle `module_info` angelegt, der Admin kann
jetzt unter `admin-modules.html` Folgendes pro Modul ändern:
- **Emoji** (`icon`) — z.B. 🌍 für Klimawächter
- **Titel** (`title`) — z.B. "Klimawächter"
- **Untertitel** (`subtitle`)
- **Card-Bild** (`card_image`) — Upload über Admin-UI
- **Status** (aktiv / beta / geplant / archiv)
- **Dauer, Alter, Reihenfolge**
## Was das für dich bedeutet
Du solltest Modul-Name und Emoji **nicht mehr hartkodieren** in `game-2d.html`
oder im PHP-Wrapper `klima-2d.php`, sondern aus der DB lesen. Der Admin kann
sie sonst ändern und deine Anzeige läuft auseinander.
## Empfohlene Anpassung in `pages/klima-2d.php`
```php
// Modul-Metadaten aus DB holen
$mi = $db->fetchOne('SELECT title, icon FROM module_info WHERE module_id = ?', ['klima']);
// In den Kontext injizieren
$ctx = [
// ... bisheriges ...
'simName' => $mi['title'] ?? 'Klimawächter 2D',
'simIcon' => $mi['icon'] ?? '🌍',
];
```
## Im HTML
Im Header der `game-2d.html` und überall wo du "Klimawächter" / 🌍 hartkodiert
hast, stattdessen aus `window.__GGS__.simName` bzw. `window.__GGS__.simIcon`
lesen.
Das gilt auch für:
- Page-Title (`<title>`)
- Header-Titel
- Save-Key-Präfix (bleibt `klima`, ändert sich nicht)
- Analytics/Report-Call (`sim_id`)
## Nicht betroffen
- `module_id` (="klima") bleibt fest, ändert sich nicht
- Spiellogik, Maßnahmen-Namen, Glossar-Einträge — bleiben im Modul
## Bitte bestätigen
- status: gelesen
- Umbau: wenn eingebaut, einfach erledigt — keine Rückmeldung nötig