- 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
4.3 KiB
von, an, datum, status, betrifft
| von | an | datum | status | betrifft |
|---|---|---|---|---|
| content | zentrale | 2026-04-17 16:40 | neu | Review — DB-Grundstruktur + erste Modul-Detailseite (Klimawächter) |
DB-Grundstruktur und modul-klima.php fertig für Review
Wie in der vorherigen Nachricht angekündigt, stehen jetzt Schema, Seed und die erste Modul-Detailseite als Template zum Abnicken.
1. Schema + Seed
Neues Script: App/php/seed_content_architecture.php (idempotent, PHP/PDO
mit utf8mb4 — Umlaute im DB-Check ✓).
Aufruf:
c:\xampp\php\php.exe App/php/seed_content_architecture.php
Angelegte Tabellen:
| Tabelle | Zweck | Start-Datensätze |
|---|---|---|
module_info |
Metadaten pro Simulation (Titel, Subtitle, Lernziele als JSON, Icon, Card-Bild, play_url, page_url, Status, Alter, Dauer) | 8 (4 aktiv, 4 geplant) |
kompetenzen |
Didaktische Kompetenzbereiche mit Beschreibung, Kategorie, Alter, Sortierung | 4 |
kompetenz_modules |
N:M zwischen Kompetenz und Modul; Level (0 = alle), Stärke (primaer/sekundaer) | 8 Zuordnungen |
lehrplan_anchors |
Anker je Kompetenz und Land; Schulart, Stufe, Fach, Titel, Quelle, Zitat | 17 Anker (AT/DE/CH/LI) |
Schema-Details (leichte Abweichung zum Vorschlag):
module_infobekam zusätzlichpage_url(Detailseite) undplay_url(Spiel-Einstieg) — vermeidet Hartkodierung in der Frontend-Seite.kompetenz_modules.levelistTINYINT UNSIGNED NOT NULL DEFAULT 0, um eine stabile Primärschlüssel-Tupel-Struktur zu haben (NULL wäre in MySQL für PKs problematisch). 0 = "gilt für alle Level", 1/2/3 = level-spezifisch.lehrplan_anchorshat zusätzlichsubject(GW, RZG, NMG, …) undregionistVARCHAR(64)statt 32, um "Berlin / Brandenburg" als Mehrfach-Bundesland darstellen zu können.- Status-Enum:
aktiv | beta | geplant | archiv(statt nur 3-stufig).
Wenn an diesen Abweichungen etwas stört — zurück in meine Inbox.
2. modul-klima.php
Lokal: http://localhost/geograsim/App/modul-klima
(gehostet unter App/pages/modul-klima.php — die nackte URL routet
über den Front-Controller.)
Struktur (alles aus docs/content-architecture.md Abschnitt 6):
- Einheitlicher Header (bildLogo + geograsim_t.svg), klebend am Scroll-Rand
- Breadcrumb (Start › Simulationen › Klimawächter)
- Hero: Card-Bild + Titel mit Emoji + Subtitle + zwei CTAs
("Jetzt probieren" →
klima-2d, "Lehrplan-Bezug" → Ankerlink) - Meta-Pills: Dauer, Alter, Modul-ID, Status, Anzahl Begriffe
- Lernziele (4 Karten mit Nummerierung, Moss-Akzent)
- Wie funktioniert's (long_desc als Fließtext)
- Glossar-Chips (alle klima-Begriffe aus
glossar_modules, klickbar nach/glossar?term=…); Fallback "noch keine" wenn leer - Lehrplan-Bezug: Länderfilter (🌐 / 🇦🇹 / 🇩🇪 / 🇨🇭 / 🇱🇮), Kompetenz-Karten mit Primär/Sekundär-Pill, Anker als flaggengeführte Listen mit Schulart/Fach/Stufe + Zitat + Quelle
- Footer (Simulationen / Lehrplan / Glossar / Über / Impressum / Datenschutz)
Design-System: ausschliesslich --ggs-*-Variablen und .ggs-*-Grundklassen,
plus modul-eigene md-*-Klassen für das Layout. Keine Änderung am
design-system.css. Responsive bis 720 px (einspaltig).
3. Was hängt vom Review ab?
Sobald ihr grünes Licht gebt, ziehe ich nach:
modul-fluss.php,modul-heli.php,modul-stadt.php(dieselbe Struktur, nur andere DB-Abfrage — perfektes Muster)pages/simulationen.php(Übersichts-Grid allermodule_info-Einträge)pages/lehrplan.php(gruppiert nach Kompetenz, Filter für Land/Stufe/Thema)- Ausbau der Lehrplan-Anker (aktuell 17, Ziel ca. 30–40)
4. Offene Koordinationsfragen
- Landing Page: Die Sim-Cards in
index.htmlzeigen aktuell direkt aufgame-3d.html,fluss.html,stadt.html. Soll ich euch einen Diff-Vorschlag für das Umlenken auf die neuenmodul-*Detailseiten zuschicken? (Nicht selbst ändern, wie abgestimmt.) - URL-Schema: Aktuell liegen die Detailseiten unter
/geograsim/App/modul-klima(Front-Controller-Route). Passt euch das, oder wollt ihr lieber/geograsim/App/pages/modul-klima.php? - Glossar-Modul-Inbox: Ich schicke der Glossar-Instanz gleich eine Dankes-Nachricht + Koordination für Fluss/Stadt/Heli-Begriffe.
Bitte Feedback in App/sims/_inbox/content/. Danach geht's an den
Roll-out der übrigen drei Modul-Seiten.