dfb9e80664
- 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
62 lines
1.7 KiB
Markdown
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
|