= esc($k['description']) ?>
prepare('SELECT * FROM module_info WHERE module_id = ?'); $module->execute([$MODULE_ID]); $module = $module->fetch(); if (!$module) { http_response_code(404); echo 'Modul nicht gefunden.'; exit; } // Easy-Varianten per Helper (Fallback: Normalform) $shortDesc = EasyLang::pick($module['short_desc'] ?? null, $module['short_desc_easy'] ?? null); $longDesc = EasyLang::pick($module['long_desc'] ?? null, $module['long_desc_easy'] ?? null); $goalsRaw = EasyLang::pick($module['learning_goals'] ?? null, $module['learning_goals_easy'] ?? null); // Lernziele — JSON-Array mit Strings $learningGoals = []; if ($goalsRaw) { $decoded = json_decode($goalsRaw, true); if (is_array($decoded)) $learningGoals = $decoded; } // Glossar-Begriffe zum Modul $stmt = $db->prepare(' SELECT g.key_slug, g.title, g.short, g.category FROM glossar g INNER JOIN glossar_modules m ON m.glossar_id = g.id WHERE m.module_id = ? ORDER BY g.title '); $stmt->execute([$MODULE_ID]); $glossarTerms = $stmt->fetchAll(); // Kompetenzen + Lehrplan-Anker $stmt = $db->prepare(' SELECT k.id, k.key_slug, k.title, k.description, k.category, km.strength, km.level FROM kompetenzen k INNER JOIN kompetenz_modules km ON km.kompetenz_id = k.id WHERE km.module_id = ? ORDER BY km.strength, k.sort_order, k.title '); $stmt->execute([$MODULE_ID]); $kompetenzen = $stmt->fetchAll(); $ankerStmt = $db->prepare(" SELECT anchor_type, country, region, school_type, grade, subject, title, reference, reference_url, quote FROM lehrplan_anchors WHERE kompetenz_id = ? ORDER BY FIELD(anchor_type, 'fach', 'uebergreifendes_thema', 'anderes_fach'), country, sort_order "); foreach ($kompetenzen as &$k) { $ankerStmt->execute([$k['id']]); $rows = $ankerStmt->fetchAll(); $k['anchors_fach'] = array_values(array_filter($rows, fn($r) => $r['anchor_type'] === 'fach')); $k['anchors_uebergreifend'] = array_values(array_filter($rows, fn($r) => $r['anchor_type'] === 'uebergreifendes_thema')); $k['anchors_andere_faecher'] = array_values(array_filter($rows, fn($r) => $r['anchor_type'] === 'anderes_fach')); } unset($k); $bp = BASE_PATH; $api = BASE_URL . '/php/api/glossar.php'; $pageTitle = htmlspecialchars($module['title']) . ' — Lehrplan geograsim.at'; $easyActive = EasyLang::isActive(); if (!function_exists('esc')) { function esc(?string $s): string { return htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8'); } } $countryMeta = [ 'AT' => ['flag' => '🇦🇹', 'label' => 'Österreich'], 'DE' => ['flag' => '🇩🇪', 'label' => 'Deutschland'], 'CH' => ['flag' => '🇨🇭', 'label' => 'Schweiz'], 'LI' => ['flag' => '🇱🇮', 'label' => 'Liechtenstein'], ]; ?>
= esc($shortDesc ?? $module['subtitle']) ?>
3D benötigt WebGL und etwas Rechenleistung. Läuft flüssig auf iPads ab Generation 8 und auf Laptops ab 2019. Auf älteren Geräten empfehlen wir die 2D-Variante — didaktisch identisch, gleiches Level-System.
= nl2br(esc($longDesc)) ?>
Noch keine Begriffe zugeordnet — das Glossar wächst laufend weiter.
→ Alle = count($glossarTerms) ?> Begriffe im Glossar ansehenDieses Modul bedient die folgenden didaktischen Kompetenzbereiche. Für jeden Bereich haben wir typische Verankerungen in den Lehrplänen für Österreich, Deutschland, Schweiz und Liechtenstein recherchiert — sie helfen, das Modul an den eigenen Lehrplan anzudocken.
Noch keine Kompetenzen zugeordnet.
= esc($k['description']) ?>
Die Anker sind beispielhaft ausgewählt — bitte mit dem konkreten Jahres- oder Semesterplan abgleichen. Vollständige Lehrplan-Übersicht: Lehrplan-Seite.