f282c79a25
- 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>
66 lines
3.2 KiB
PHP
66 lines
3.2 KiB
PHP
<?php
|
||
/**
|
||
* Schulbuch — gemeinsame Helfer für alle Kapitel (buch-<sim>.php)
|
||
* ---------------------------------------------------------------
|
||
* Verwendung im Kapitel:
|
||
* define('BUCH_SIM', 'tourismustal'); // Ordner für Foto-Slots
|
||
* require __DIR__ . '/_partials/buch_helpers.php';
|
||
*
|
||
* Stellt bereit:
|
||
* $MODE 'schueler' | 'leicht' | 'lehrer' (?leicht=1 / ?lehrer=1)
|
||
* $LEHRER, $LEICHT Bequemlichkeits-Booleans
|
||
* buchBild($slug, $vorschlag, $unterschrift, $klein) Foto-Slot
|
||
* g($slug, $label) Glossar-Tooltip
|
||
* buchNav($links) Kopfzeile mit Modus-Umschalter
|
||
*
|
||
* Fotos: echte Bilder unter assets/img/buch/<BUCH_SIM>/<slug>.jpg ablegen —
|
||
* Platzhalter tauschen sich automatisch aus. Bild-Exporte immer ohne
|
||
* EXIF/GPS (magick -strip).
|
||
*/
|
||
|
||
$MODE = 'schueler';
|
||
if (isset($_GET['lehrer']) && $_GET['lehrer'] === '1') $MODE = 'lehrer';
|
||
if (isset($_GET['leicht']) && $_GET['leicht'] === '1') $MODE = 'leicht';
|
||
$LEHRER = ($MODE === 'lehrer');
|
||
$LEICHT = ($MODE === 'leicht');
|
||
|
||
/** Foto-Slot: echtes Bild, sobald es existiert – sonst Platzhalter mit Vorschlag. */
|
||
function buchBild(string $slug, string $vorschlag, string $unterschrift = '', bool $klein = false): string {
|
||
global $bp;
|
||
$cls = $klein ? 'b-foto b-klein' : 'b-foto';
|
||
foreach (['jpg', 'jpeg', 'webp', 'png'] as $ext) {
|
||
$rel = 'assets/img/buch/' . BUCH_SIM . "/{$slug}.{$ext}";
|
||
if (is_file(__DIR__ . '/../../' . $rel)) {
|
||
$cap = $unterschrift !== '' ? "<figcaption>{$unterschrift}</figcaption>" : '';
|
||
return "<figure class=\"{$cls}\"><img src=\"{$bp}/{$rel}\" alt=\"" . htmlspecialchars($unterschrift ?: $slug) . "\" loading=\"lazy\">{$cap}</figure>";
|
||
}
|
||
}
|
||
return "<div class=\"b-foto-platzhalter\"><span>📷</span><b>Foto gesucht</b><small>" . htmlspecialchars($vorschlag) . "</small><code>assets/img/buch/" . BUCH_SIM . "/{$slug}.jpg</code></div>";
|
||
}
|
||
|
||
/** Glossar-Begriff mit Tooltip */
|
||
function g(string $slug, string $label): string {
|
||
return "<span class=\"ggs-g\" data-glossar=\"{$slug}\">{$label}</span>";
|
||
}
|
||
|
||
/**
|
||
* Kopfzeile: Links + Modus-Umschalter.
|
||
* $links: Array [Label => href-relativ-zu-BASE_PATH], z. B.
|
||
* ['Modulseite' => 'modul-tourismustal', '🎮 Simulation starten' => 'tourismustal', ...]
|
||
*/
|
||
function buchNav(array $links): void {
|
||
global $bp, $MODE;
|
||
echo '<nav class="b-nav"><a href="' . $bp . '/buch">📖 Schulbuch</a>';
|
||
foreach ($links as $label => $href) {
|
||
echo ' · <a href="' . $bp . '/' . $href . '">' . $label . '</a>';
|
||
}
|
||
echo '<span class="spacer"></span>';
|
||
echo '<a class="b-mode ' . ($MODE === 'schueler' ? 'active' : '') . '" href="?">👩🎓 Schüler:innen</a>';
|
||
echo '<a class="b-mode ' . ($MODE === 'leicht' ? 'active' : '') . '" href="?leicht=1">🌱 Leichte Sprache</a>';
|
||
echo '<a class="b-mode ' . ($MODE === 'lehrer' ? 'active' : '') . '" href="?lehrer=1">👩🏫 Lehrperson</a>';
|
||
echo '</nav>';
|
||
if ($MODE === 'leicht') {
|
||
echo '<div class="b-leicht-hinweis">🌱 Dieses Heft ist in <b>Leichter Sprache</b>. Kurze Sätze. Einfache Wörter. Die Bilder und Zahlen sind die gleichen wie im großen Heft.</div>';
|
||
}
|
||
}
|