---
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
