Schulbuch komplett: 13 Kapitel, je 3 Versionen (Schüler / Leichte Sprache / Lehrperson)

- Gemeinsame Infrastruktur: assets/css/buch.css + pages/_partials/buch_helpers.php
  (Foto-Slots, Glossar-Tooltips, Nav mit 3-Modi-Umschalter ?leicht=1/?lehrer=1)
- Neu: Leichte-Sprache-Version in jedem Kapitel (inklusiver Unterricht):
  kurze Sätze, eine Aussage pro Zeile, Bindestrich-Komposita, einspaltig, größere Schrift
- 12 neue Kapitel: tourismusregion, kofferdetektiv (Themenfeld Reise/Transport/
  Flugverkehr/Nachhaltigkeit), busfahrt, logistik (Alpentransit), weltkueche, farmer,
  klima (2D+3D), fluss (Alpenrhein/Rhesi), energiemanager (Illwerke), heli, sonnensystem,
  eu-werkstatt — alle mit verifizierten Quellen, echten Sim-Mechanik-Kästen,
  D-A-CH-Lehrplan-Chips und 7 Foto-Slots mit konkreten Vorschlägen
- Pilot tourismustal: geschichte-1948 halb so groß (b-klein), Spielsprache-Fixes
- buch.php: 13 Kapitel, Status automatisch aus Dateiexistenz

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 17:12:19 +02:00
parent e9870843e8
commit f282c79a25
16 changed files with 8820 additions and 125 deletions
+52 -10
View File
@@ -2,18 +2,53 @@
/**
* Schulbuch — Übersicht aller Kapitel
* URL: /buch
* Kapitel entstehen pro Simulation (Pilot: Tourismustal).
* Ein Kapitel pro Simulation. Jedes Kapitel gibt es in drei Versionen:
* Schüler:innen · Leichte Sprache · Lehrperson.
* Status wird automatisch aus der Existenz von pages/buch-<id>.php abgeleitet.
*/
require_once __DIR__ . '/../php/config/app.php';
$bp = BASE_PATH;
$KAPITEL = [
['id' => 'tourismustal', 'icon' => '🏔️', 'titel' => 'Ein Tal wird Tourismusregion',
'sim' => 'Tourismustal', 'status' => 'fertig',
'sim' => 'Tourismustal',
'themen' => 'Standortfaktoren · Angebot &amp; Nachfrage · Saisonalität · Klimawandel · Zielkonflikte'],
['id' => 'tourismusregion', 'icon' => '🗺️', 'titel' => 'Besucherströme lenken',
'sim' => 'Tourismusregion', 'status' => 'geplant',
'themen' => 'Besucherlenkung · Mobilität · Zielgruppen · Standort am Weg'],
'sim' => 'Tourismusregion',
'themen' => 'Besucherlenkung · Standort am Weg · Mobilität · Zielgruppen'],
['id' => 'kofferdetektiv', 'icon' => '🧳', 'titel' => 'Dem Reisen auf der Spur',
'sim' => 'Kofferdetektiv',
'themen' => 'Reise &amp; Tourismus weltweit · Transport &amp; Flugverkehr · Nachhaltig reisen'],
['id' => 'busfahrt', 'icon' => '🚌', 'titel' => 'Mit dem Bus durch Europa',
'sim' => 'Busfahrt',
'themen' => 'Topografie Europas · Hauptstädte · Entfernungen · Verkehr'],
['id' => 'logistik', 'icon' => '🚚', 'titel' => 'Waren auf Reisen',
'sim' => 'Logistik Europa',
'themen' => 'Güterverkehr · LKW, Zug, Schiff · Häfen · Lieferketten'],
['id' => 'weltkueche', 'icon' => '🍲', 'titel' => 'Was die Welt isst',
'sim' => 'Weltküche',
'themen' => 'Welthandel · Klimazonen · Ernährung · regionale vs. globale Lebensmittel'],
['id' => 'farmer', 'icon' => '🌾', 'titel' => 'Landwirtschaft weltweit',
'sim' => 'Landwirtschaft',
'themen' => 'Klimazonen · Anbaugrenzen · Nutztiere · Klimawandel im Anbau'],
['id' => 'klima', 'icon' => '🌍', 'titel' => 'Klimawandel an der Küste',
'sim' => 'Klimawächter (2D &amp; 3D)',
'themen' => 'Klimawandel · CO₂ &amp; Energie · Küstenschutz · Ökonomie vs. Ökologie'],
['id' => 'fluss', 'icon' => '🌊', 'titel' => 'Der Fluss und das Hochwasser',
'sim' => 'Flussmanagement',
'themen' => 'Hochwasser · Dämme &amp; Retention · Renaturierung · Raumplanung'],
['id' => 'energiemanager', 'icon' => '⚡', 'titel' => 'Strom rund um die Uhr',
'sim' => 'Energiemanager',
'themen' => 'Energiebilanz · Pumpspeicher · Wetter &amp; Erneuerbare · Grundlast'],
['id' => 'heli', 'icon' => '🚁', 'titel' => 'Mit Karte und Koordinaten',
'sim' => 'Heli-Navigation',
'themen' => 'Gradnetz · Kartenkompetenz · Alpen · Bergrettung'],
['id' => 'sonnensystem', 'icon' => '🪐', 'titel' => 'Sonne, Erde, Mond',
'sim' => 'Sonnensystem',
'themen' => 'Jahreszeiten · Tag &amp; Nacht · Finsternisse · Größenordnungen'],
['id' => 'eu-werkstatt', 'icon' => '🇪🇺', 'titel' => 'Wie ein EU-Gesetz entsteht',
'sim' => 'EU-Werkstatt',
'themen' => 'Demokratie · Institutionen · Bürgerinitiative · Lobbyismus'],
];
?>
<!DOCTYPE html>
@@ -29,7 +64,9 @@ $KAPITEL = [
body { background: #edeae0; margin: 0; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; color: #2f3e46; }
.b-wrap { max-width: 880px; margin: 0 auto; padding: 26px 14px 80px; }
h1 { font-size: 30px; margin: 0 0 4px; }
.sub { color: #6b6659; margin: 0 0 22px; line-height: 1.55; }
.sub { color: #6b6659; margin: 0 0 14px; line-height: 1.55; }
.versionen { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 22px; }
.versionen span { background: #fdfbf4; border: 1.5px solid #c9c2ae; border-radius: 999px; font-size: 12.5px; font-weight: 700; padding: 4px 12px; }
.kap { display: flex; gap: 16px; align-items: flex-start; background: #fdfbf4; border-radius: 14px;
box-shadow: 0 4px 18px rgba(47,62,70,.10); padding: 20px 22px; margin-bottom: 14px;
text-decoration: none; color: inherit; }
@@ -51,11 +88,16 @@ $KAPITEL = [
<p class="sub">Jede Simulation bekommt ein Kapitel: die Sachinhalte lehrplankonform
aufbereitet, mit echten Daten, Glossar-Begriffen und Aufgaben — zum Präsentieren
vor, zwischen oder nach dem Arbeiten mit der Simulation. Jedes Kapitel gibt es
in einer Schüler:innen-Version und einer Lehrpersonen-Version mit didaktischen
Hinweisen (Umschalter oben rechts im Kapitel).</p>
in drei Versionen (Umschalter oben rechts im Kapitel):</p>
<div class="versionen">
<span>👩‍🎓 Schüler:innen</span>
<span>🌱 Leichte Sprache — für den inklusiven Unterricht</span>
<span>👩‍🏫 Lehrperson — mit didaktischen Hinweisen</span>
</div>
<?php foreach ($KAPITEL as $k): ?>
<?php if ($k['status'] === 'fertig'): ?>
<?php $fertig = is_file(__DIR__ . '/buch-' . $k['id'] . '.php'); ?>
<?php if ($fertig): ?>
<a class="kap" href="<?= $bp ?>/buch-<?= $k['id'] ?>">
<?php else: ?>
<div class="kap" style="opacity:.6">
@@ -65,8 +107,8 @@ $KAPITEL = [
<b><?= $k['titel'] ?></b>
<small>Zur Simulation „<?= $k['sim'] ?>" · <?= $k['themen'] ?></small>
</span>
<span class="pill <?= $k['status'] ?>"><?= $k['status'] === 'fertig' ? 'Kapitel lesen' : 'in Arbeit' ?></span>
<?php echo $k['status'] === 'fertig' ? '</a>' : '</div>'; ?>
<span class="pill <?= $fertig ? 'fertig' : 'geplant' ?>"><?= $fertig ? 'Kapitel lesen' : 'in Arbeit' ?></span>
<?php echo $fertig ? '</a>' : '</div>'; ?>
<?php endforeach; ?>
</div>
</body>