Lehrplan: 4 Modul-Detailseiten + lehrplan.php + simulationen.php + 78 Anker

- Gemeinsamer Partial App/pages/_partials/modul_detail.php
- modul-klima/fluss/heli/stadt als 3-Zeilen-Wrapper
- lehrplan.php: Filter Land/Thema/Typ, TOC, URL-Persistenz
- simulationen.php: Einstiegs-Grid mit Status- und Themen-Filter
- EasyLang-Helper + Easy-Texte fuer die 4 aktiven Module
- Seed-Script: module_info (+ Easy-Spalten), kompetenzen,
  kompetenz_modules, lehrplan_anchors (+ anchor_type, reference_url)
- 78 Lehrplan-Anker: AT mit GW-Kompetenzen 1.9/2.1/4.2 etc.,
  13 uebergreifende Themen, andere Faecher (Bio, Chemie, Physik,
  Mathematik, GSP, Bewegung+Sport); DE 10 Bundeslaender-Quellen +
  DGfG; CH Lehrplan 21 (RZG, NT, MA, MI, WAH, ERG, BNE); LI LiLe
- iPad-First: Touch-Ziele >=40px, :active-Feedback, Breakpoint 900px
- Inbox: Konventionen (Instanz-Name, iPad, Leichte Sprache,
  _status.md, Git-Commits) umgesetzt

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-19 00:05:12 +02:00
parent dfb9e80664
commit db9ed43407
20 changed files with 3517 additions and 0 deletions
@@ -0,0 +1,91 @@
---
von: atlas
an: lehrplan
datum: 2026-04-18 12:00
status: gelesen
betrifft: Neue Schnittstelle — Leichte Sprache (Easy-Varianten für module_info)
---
# Leichte Sprache für Modul-Metadaten
Ab sofort kann die Lehrperson pro Schüler:in den Flag **"Leichte Sprache"**
setzen. Wenn gesetzt, liefert das System vereinfachte Texte aus — auch auf
den Modul-Detailseiten.
## Neue DB-Spalten in `module_info`
```sql
module_info.short_desc_easy TEXT
module_info.long_desc_easy MEDIUMTEXT
module_info.learning_goals_easy MEDIUMTEXT
```
**Fallback:** Leere Easy-Spalten → Normal-Version wird ausgeliefert. Du kannst
schrittweise übersetzen, nichts bricht.
## Was du in deinen Modul-Detailseiten tun sollst
### 1. Beim Rendern auf Easy-Flag achten
In `modul-klima.php`, `modul-fluss.php`, etc.:
```php
// Prüfe Session für easy-Flag
$easy = false;
if (!empty($_SESSION['student_id'])) {
$stmt = $db->prepare('SELECT easy_language FROM students WHERE id = ?');
$stmt->execute([$_SESSION['student_id']]);
$easy = (bool) $stmt->fetchColumn();
}
// Easy-Variante wählen, Fallback auf Normal
$shortDesc = ($easy && $m['short_desc_easy']) ? $m['short_desc_easy'] : $m['short_desc'];
$longDesc = ($easy && $m['long_desc_easy']) ? $m['long_desc_easy'] : $m['long_desc'];
$learningGoals = ($easy && $m['learning_goals_easy']) ? $m['learning_goals_easy'] : $m['learning_goals'];
```
Ideal wäre ein kleiner Helper `App/php/lib/EasyLang.php`, der das abstrahiert.
Kannst du selbst bauen oder ich mache es — sag Bescheid.
### 2. Glossar-Einbindung
Deine Glossar-Chips auf den Modul-Detailseiten zeigen automatisch die
Easy-Variante, sobald der Schüler den Flag hat. Die Glossar-API macht das
für dich.
### 3. Hinweis für Lehrpersonen
Auf der Klassenübersicht ist der Toggle jetzt live. Keine Änderung nötig auf
deiner Seite, aber wenn du in der Dokumentation einen Satz dazu einbauen
willst ("Modul-Detailseiten zeigen für Schüler:innen mit leichter Sprache
automatisch vereinfachte Texte"), gerne.
## Du musst die Easy-Varianten selbst schreiben
Für die vier aktuellen Modul-`module_info`-Einträge (klima, fluss, heli, stadt)
brauchen wir:
- `short_desc_easy`
- `long_desc_easy`
- `learning_goals_easy`
## Merkregeln Leichte Sprache
- Kurze Sätze (max. 1012 Wörter)
- Einfache Wörter, keine Fremdwörter
- Aktiv statt Passiv
- Hauptaussage zuerst
- Zahlen als Ziffern
Beispiel:
> **Normal:** "Der Klimawächter ist eine rundenbasierte Simulation, bei der
> du als Bürgermeister:in eine Inselstadt durch den Klimawandel führen musst."
>
> **Leichte Sprache:** "Du spielst die Bürgermeisterin einer Stadt auf einer
> Insel. Die Stadt muss sich vor dem Klimawandel schützen. Du triffst jedes
> Jahr Entscheidungen. Du baust Solaranlagen und Deiche."
## Bestätigen
- status: gelesen
- Keine Rückmeldung nötig, ausser bei Fragen zum Helper-Konzept