From d37857f12a49a1fa31b1eada27eb3564b08af2f3 Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 24 Apr 2026 09:26:03 +0200 Subject: [PATCH] Lehrplan: ?module=X-Filter in lehrplan.php (Modul-Fokus-Banner) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - lehrplan.php liest jetzt den Query-Parameter ?module= und filtert die Kompetenz-Cards auf die dem Modul zugeordneten Eintraege (via kompetenz_modules) - Modul-Fokus-Banner ueber dem Hero: Icon, Titel, "Zurueck zur Simulation"-Link, "Alle Module anzeigen"-Link - Hero-Titel + Meta-Description + -Tag spiegeln den Fokus - Ungueltige Modul-Slugs fallen stillschweigend auf Full-View zurueck - Alle bestehenden Filter (country, theme) wirken weiterhin gleichzeitig Use-Case: Atlas' Template-Button 📚 Lehrplan in den Sim-Wrappern zeigt aktuell auf /modul-<id>#lehrplan-bezug. Diese Seite dient als Alternative/Fallback, falls jemand direkt auf lehrplan.php?module=X landet. Verifiziert: - lehrplan?module=logistik 6 Kompetenzen (von 10) - lehrplan?module=klima 1 Kompetenz - lehrplan?module=fluss 2 Kompetenzen (Naturgefahren + Stadt) - lehrplan?module=unknown 10 Kompetenzen (Full-View Fallback) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --- App/pages/lehrplan.php | 95 +++++++++++++++++++++++++++++++++++------- 1 file changed, 80 insertions(+), 15 deletions(-) diff --git a/App/pages/lehrplan.php b/App/pages/lehrplan.php index 301b3c8..5752dfb 100644 --- a/App/pages/lehrplan.php +++ b/App/pages/lehrplan.php @@ -33,12 +33,34 @@ if (isset($_GET['country'])) { $qTheme = preg_replace('/[^a-z0-9_-]/', '', strtolower($_GET['theme'] ?? '')); $qModule = preg_replace('/[^a-z0-9_-]/', '', strtolower($_GET['module'] ?? '')); -// Alle Kompetenzen mit Zuordnungen + Ankern laden -$kompetenzen = $db->query(' - SELECT id, key_slug, title, description, category, age_min, age_max, sort_order - FROM kompetenzen - ORDER BY sort_order, title -')->fetchAll(); +// Wenn `?module=X` gesetzt: Metadaten des Moduls laden (fuer Banner + Titel) +$moduleFocus = null; +if ($qModule !== '') { + $stmt = $db->prepare('SELECT module_id, title, icon, card_image, status, page_url FROM module_info WHERE module_id = ?'); + $stmt->execute([$qModule]); + $moduleFocus = $stmt->fetch() ?: null; + if (!$moduleFocus) $qModule = ''; // ungueltiger Slug +} + +// Kompetenzen laden — optional gefiltert auf Modul-Zuordnungen +if ($qModule !== '') { + $stmt = $db->prepare(' + SELECT k.id, k.key_slug, k.title, k.description, k.category, k.age_min, k.age_max, k.sort_order + FROM kompetenzen k + INNER JOIN kompetenz_modules km ON km.kompetenz_id = k.id + WHERE km.module_id = ? + GROUP BY k.id + ORDER BY k.sort_order, k.title + '); + $stmt->execute([$qModule]); + $kompetenzen = $stmt->fetchAll(); +} else { + $kompetenzen = $db->query(' + SELECT id, key_slug, title, description, category, age_min, age_max, sort_order + FROM kompetenzen + ORDER BY sort_order, title + ')->fetchAll(); +} // Module je Kompetenz $modStmt = $db->prepare(' @@ -107,8 +129,8 @@ $categoryMeta = [ <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> -<title>Lehrplan-Übersicht — Lehrplan geograsim.at - +<?= $moduleFocus ? 'Lehrplan-Bezug: ' . esc($moduleFocus['title']) : 'Lehrplan-Übersicht' ?> — Lehrplan geograsim.at + @@ -138,6 +160,28 @@ $categoryMeta = [ .lp-btn-sm.lp-btn-primary { background: var(--ggs-fjord); color: var(--ggs-white); border-color: var(--ggs-fjord); } .lp-easy-pill { background: var(--ggs-moss-light); color: var(--ggs-moss-dark); border-color: var(--ggs-moss); font-weight: 700; } + /* ===== Modul-Fokus-Banner (bei ?module=X) ===== */ + .lp-focus-banner { + background: var(--ggs-fjord-light); color: var(--ggs-fjord-dark); + border-bottom: 1px solid var(--ggs-border); + padding: .9rem 1.5rem; + display: flex; align-items: center; gap: 1rem; + flex-wrap: wrap; + } + .lp-focus-icon { font-size: 1.8rem; line-height: 1; } + .lp-focus-text { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 2px; } + .lp-focus-text strong { font-size: 1rem; font-weight: 800; } + .lp-focus-sub { font-size: .82rem; color: var(--ggs-text-muted); } + .lp-focus-action { + display: inline-flex; align-items: center; min-height: 36px; + padding: .4rem .9rem; border-radius: var(--ggs-radius-pill); + background: var(--ggs-white); color: var(--ggs-fjord-dark); + border: 1px solid var(--ggs-fjord); + font-size: .82rem; font-weight: 600; text-decoration: none; + transition: all .2s var(--ggs-ease); + } + .lp-focus-action:hover { background: var(--ggs-fjord); color: var(--ggs-white); } + /* ===== Hero ===== */ .lp-hero { background: linear-gradient(135deg, var(--ggs-fjord-dark) 0%, var(--ggs-fjord) 100%); @@ -370,18 +414,39 @@ $categoryMeta = [ Anmelden + + +
+ +
+ Lehrplan-Bezug für + Gefiltert auf die Kompetenzbereiche dieser Simulation. +
+ + ← Zurück zur Simulation + + Alle Module anzeigen +
+ +
-

Lehrplan-Übersicht

+

- Alle GeoGraSim-Simulationen sind auf didaktische Kompetenzbereiche - abgebildet. Für jeden Bereich zeigen wir, wo er in den Lehrplänen - für Österreich, Deutschland, Schweiz und Liechtenstein verankert ist — - fachlich, fächerübergreifend und mit Anknüpfungspunkten in weiteren Fächern. + + Diese Ansicht zeigt alle Kompetenzbereiche, die die Simulation + abdeckt — fachlich, + fächerübergreifend und mit Anknüpfungspunkten in weiteren Fächern. + + Alle GeoGraSim-Simulationen sind auf didaktische Kompetenzbereiche + abgebildet. Für jeden Bereich zeigen wir, wo er in den Lehrplänen + für Österreich, Deutschland, Schweiz und Liechtenstein verankert ist — + fachlich, fächerübergreifend und mit Anknüpfungspunkten in weiteren Fächern. +

-
Kompetenzbereiche
-
Lehrplan-Anker
+
+
Lehrplan-Anker gesamt
4Länder