From 83d74fc252390edc5a4833b13312afd735e32439 Mon Sep 17 00:00:00 2001 From: Matthias Grief Date: Fri, 13 Dec 2024 22:41:18 +0100 Subject: [PATCH 1/9] Aufgaben (Task) Schnittstelle eingabaut --- webseite/classes/Task.php | 41 +++++++++++++++++ webseite/classes/TopicData.php | 46 ++++++++++++++++++- .../mathe/topics/bruchrechnung/tasks.json | 24 ++++++++++ webseite/test.php | 1 + 4 files changed, 111 insertions(+), 1 deletion(-) create mode 100644 webseite/classes/Task.php create mode 100644 webseite/config/subjects/mathe/topics/bruchrechnung/tasks.json create mode 100644 webseite/test.php diff --git a/webseite/classes/Task.php b/webseite/classes/Task.php new file mode 100644 index 0000000..0aecb01 --- /dev/null +++ b/webseite/classes/Task.php @@ -0,0 +1,41 @@ +text = $text; + $this->variables = $variables; + } + + /** + * @return string Aufgabentext + */ + public function getText(): string + { + return $this->text; + } + + /** + * @return array Assoziatives Array mit Variable → Richtiger Wert + */ + public function getVariables(): array + { + return $this->variables; + } +} \ No newline at end of file diff --git a/webseite/classes/TopicData.php b/webseite/classes/TopicData.php index 95d7177..f3d699f 100644 --- a/webseite/classes/TopicData.php +++ b/webseite/classes/TopicData.php @@ -48,6 +48,12 @@ class TopicData */ public string $article; + /** + * @var array Alle zugehörigen Formelaufgaben als Task + * @see Task + */ + private array $tasks; + /** * Erstellt ein neues Thema. Es wird noch nichts gespeichert! * @param string $id Innerhalb des zugehörigen Faches eindeutige ID, darf nur A-Z, a-z, 0-9 sowie - und _ enthalten @@ -91,6 +97,8 @@ class TopicData $result->article = $article; + $result->tasks = array(); + return $result; } @@ -193,6 +201,13 @@ class TopicData } $result->article = str_replace('$TOPICPATH', Config::getTopicDirectory($subjectId, $topicId) . "images", $article); + $taskJson = Util::readFileContent(Config::getTopicDirectory($subjectId, $topicId) . "tasks.json"); + if(isset($taskJson)) { + $result->tasks = json_decode($taskJson, true); + } else { + $result->tasks = array(); + } + $result->cleanupRelatedTopics(); $result->cleanupFiles(); @@ -229,8 +244,17 @@ class TopicData mkdir($topicDirectory, 0777, true); } + + $taskJson = json_encode($this->tasks, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); + if (!$taskJson) { + return false; + } + var_dump($taskJson); + if (!(Util::writeFileContent($topicDirectory . "properties.json", $json) - && Util::writeFileContent($topicDirectory . "article.html", $json)) + && Util::writeFileContent($topicDirectory . "article.html", $json) + //&& Util::writeFileContent($topicDirectory . "tasks.html", $taskJson) + ) ) { return false; } @@ -383,6 +407,18 @@ class TopicData return true; } + public function addTask(Task $task): bool + { + $this->tasks[] = $task; + return true; + } + + public function removeTask(Task $task): bool + { + $this->tasks = array_diff($this->tasks, [$task]); + return true; + } + public function getId(): string { return $this->id; @@ -463,5 +499,13 @@ class TopicData $this->article = $article; } + public function getTasks(): array + { + return $this->tasks; + } + public function setTasks(array $tasks): void + { + $this->tasks = $tasks; + } } \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/bruchrechnung/tasks.json b/webseite/config/subjects/mathe/topics/bruchrechnung/tasks.json new file mode 100644 index 0000000..18d3991 --- /dev/null +++ b/webseite/config/subjects/mathe/topics/bruchrechnung/tasks.json @@ -0,0 +1,24 @@ +[ + { + "text": "34 + 26 = ?", + "vars": { + "?": "60", + "x": "5", + "y": "2" + } + }, + { + "text": "a + b = c", + "vars": { + "a": "1", + "b": "2", + "c": "4" + } + }, + { + "text": "Wie schreibt man nähmlich richtig?", + "vars": { + "?": "nämlich" + } + } +] \ No newline at end of file diff --git a/webseite/test.php b/webseite/test.php new file mode 100644 index 0000000..b3d9bbc --- /dev/null +++ b/webseite/test.php @@ -0,0 +1 @@ + Date: Fri, 13 Dec 2024 22:58:00 +0100 Subject: [PATCH 2/9] Speichern von Tasks eingebaut --- webseite/classes/TopicData.php | 30 ++++++++++--- .../mathe/topics/bruchrechnung/tasks.json | 42 +++++++++---------- 2 files changed, 45 insertions(+), 27 deletions(-) diff --git a/webseite/classes/TopicData.php b/webseite/classes/TopicData.php index f3d699f..3c2cb89 100644 --- a/webseite/classes/TopicData.php +++ b/webseite/classes/TopicData.php @@ -202,10 +202,22 @@ class TopicData $result->article = str_replace('$TOPICPATH', Config::getTopicDirectory($subjectId, $topicId) . "images", $article); $taskJson = Util::readFileContent(Config::getTopicDirectory($subjectId, $topicId) . "tasks.json"); + $result->tasks = array(); if(isset($taskJson)) { - $result->tasks = json_decode($taskJson, true); - } else { - $result->tasks = array(); + $arr = json_decode($taskJson, true); + foreach ($arr as $rawTask) { + $text = $rawTask["text"]; + if(!isset($text)) { + continue; + } + + $vars = $rawTask["vars"]; + if (!isset($vars)) { + continue; + } + + $result->tasks[] = new Task($text, $vars); + } } $result->cleanupRelatedTopics(); @@ -244,16 +256,22 @@ class TopicData mkdir($topicDirectory, 0777, true); } + $taskArray = array(); + foreach ($this->tasks as $task) { + $element = array(); + $element["text"] = $task->getText(); + $element["vars"] = $task->getVariables(); + $taskArray[] = $element; + } - $taskJson = json_encode($this->tasks, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); + $taskJson = json_encode($taskArray, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); if (!$taskJson) { return false; } - var_dump($taskJson); if (!(Util::writeFileContent($topicDirectory . "properties.json", $json) && Util::writeFileContent($topicDirectory . "article.html", $json) - //&& Util::writeFileContent($topicDirectory . "tasks.html", $taskJson) + && Util::writeFileContent($topicDirectory . "tasks.json", $taskJson) ) ) { return false; diff --git a/webseite/config/subjects/mathe/topics/bruchrechnung/tasks.json b/webseite/config/subjects/mathe/topics/bruchrechnung/tasks.json index 18d3991..8d105f4 100644 --- a/webseite/config/subjects/mathe/topics/bruchrechnung/tasks.json +++ b/webseite/config/subjects/mathe/topics/bruchrechnung/tasks.json @@ -1,24 +1,24 @@ [ - { - "text": "34 + 26 = ?", - "vars": { - "?": "60", - "x": "5", - "y": "2" + { + "text": "34 + 26 = ?", + "vars": { + "?": "60", + "x": "5", + "y": "2" + } + }, + { + "text": "a + b = c", + "vars": { + "a": "1", + "b": "2", + "c": "4" + } + }, + { + "text": "Wie schreibt man nähmlich richtig?", + "vars": { + "?": "nämlich" + } } - }, - { - "text": "a + b = c", - "vars": { - "a": "1", - "b": "2", - "c": "4" - } - }, - { - "text": "Wie schreibt man nähmlich richtig?", - "vars": { - "?": "nämlich" - } - } ] \ No newline at end of file From 99b0f510809662551646def523f993819df1e309 Mon Sep 17 00:00:00 2001 From: Matthias Grief Date: Fri, 13 Dec 2024 23:01:17 +0100 Subject: [PATCH 3/9] Include-Fehler behoben --- webseite/classes/TopicData.php | 1 + 1 file changed, 1 insertion(+) diff --git a/webseite/classes/TopicData.php b/webseite/classes/TopicData.php index 3c2cb89..fdd3b33 100644 --- a/webseite/classes/TopicData.php +++ b/webseite/classes/TopicData.php @@ -3,6 +3,7 @@ use exception\SubjectDoesNotExistException; use exception\TopicAlreadyExistsException; +require_once("Task.php"); require_once("Config.php"); require_once("Util.php"); From ec0e5118d2acfa838d27cbda494f57186ce3b5c4 Mon Sep 17 00:00:00 2001 From: Matthias Grief Date: Fri, 13 Dec 2024 23:04:08 +0100 Subject: [PATCH 4/9] =?UTF-8?q?testseite=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webseite/test.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/webseite/test.php b/webseite/test.php index b3d9bbc..50b1781 100644 --- a/webseite/test.php +++ b/webseite/test.php @@ -1 +1,11 @@ getTopics() as $topic) { + $topic->save(); + } + $subject->save(); +} \ No newline at end of file From 44768c48477e20c908d65226d7521369b007235d Mon Sep 17 00:00:00 2001 From: Matthias Grief Date: Fri, 13 Dec 2024 23:06:44 +0100 Subject: [PATCH 5/9] =?UTF-8?q?Fehler=20beim=20Speichern=20des=20Erkl?= =?UTF-8?q?=C3=A4rtextes=20behoben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webseite/classes/TopicData.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webseite/classes/TopicData.php b/webseite/classes/TopicData.php index fdd3b33..7112744 100644 --- a/webseite/classes/TopicData.php +++ b/webseite/classes/TopicData.php @@ -271,7 +271,7 @@ class TopicData } if (!(Util::writeFileContent($topicDirectory . "properties.json", $json) - && Util::writeFileContent($topicDirectory . "article.html", $json) + && Util::writeFileContent($topicDirectory . "article.html", $this->article) && Util::writeFileContent($topicDirectory . "tasks.json", $taskJson) ) ) { From e0a387ed9f5b8047dd050e66990e4972d9aecf85 Mon Sep 17 00:00:00 2001 From: Matthias Grief Date: Fri, 13 Dec 2024 23:17:37 +0100 Subject: [PATCH 6/9] =?UTF-8?q?Fehler=20beim=20Speichern=20von=20Erkl?= =?UTF-8?q?=C3=A4rtexten=20behoben?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webseite/classes/TopicData.php | 14 +++++++++++--- webseite/search.php | 2 +- webseite/topic.php | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/webseite/classes/TopicData.php b/webseite/classes/TopicData.php index 7112744..ba32690 100644 --- a/webseite/classes/TopicData.php +++ b/webseite/classes/TopicData.php @@ -47,7 +47,7 @@ class TopicData /** * @var string Der gesamte Erklärungstext zum Thema, enthält fertiges HTML und LATEX Formelsyntax für MathJax https://docs.mathjax.org/en/latest/basic/mathematics.html */ - public string $article; + private string $article; /** * @var array Alle zugehörigen Formelaufgaben als Task @@ -200,7 +200,7 @@ class TopicData if (!isset($article)) { $article = "Kein Erklärtext vorhanden"; } - $result->article = str_replace('$TOPICPATH', Config::getTopicDirectory($subjectId, $topicId) . "images", $article); + $result->article = $article; $taskJson = Util::readFileContent(Config::getTopicDirectory($subjectId, $topicId) . "tasks.json"); $result->tasks = array(); @@ -241,7 +241,6 @@ class TopicData $data["icon"] = $this->icon; $data["description"] = $this->description; $data["relatedTopics"] = $this->relatedTopics; - $data["files"] = $this->files; $json = json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT); if (!$json) { @@ -508,6 +507,15 @@ class TopicData $this->files = $files; } + /** + * Gibt anders als getArticle() Bildpfade richtig aus + * @return string HTML Quelltext für den Erklärtext + */ + public function getFinishedArticle(): string + { + return str_replace('$TOPICPATH', Config::getTopicDirectory($this->subjectId, $this->id) . "images", $this->article); + } + public function getArticle(): string { return $this->article; diff --git a/webseite/search.php b/webseite/search.php index 6f09154..021967e 100644 --- a/webseite/search.php +++ b/webseite/search.php @@ -23,7 +23,7 @@ foreach ($subjects as $subject) { strpos(strtolower($subject->displayName), $query) !== false || strpos(strtolower($topic->displayName), $query) !== false || strpos(strtolower($topic->description), $query) !== false || - strpos(strtolower($topic->article), $query) !== false + strpos(strtolower($topic->getFinishedArticle()), $query) !== false ) { $results[] = [ 'type' => 'topic', diff --git a/webseite/topic.php b/webseite/topic.php index 84ded0e..5e8c2b7 100644 --- a/webseite/topic.php +++ b/webseite/topic.php @@ -89,7 +89,7 @@ if (!isset($topicData)) { description); ?>

- article); ?> + getFinishedArticle()); ?>

From a2a34cbd7f033af9cb2ef6937acad960a00aff13 Mon Sep 17 00:00:00 2001 From: Matthias Grief Date: Fri, 13 Dec 2024 23:21:19 +0100 Subject: [PATCH 7/9] Formatierung von Konfigurationsdateien angepasst --- webseite/config/subjects/deutsch/properties.json | 8 ++++---- .../topics/adverbiale-bestimmung/properties.json | 13 +++++++------ .../topics/adverbiale-bestimmung/tasks.json | 1 + .../topics/geschichten-erzaehlen/properties.json | 13 +++++++------ .../topics/geschichten-erzaehlen/tasks.json | 1 + .../topics/personalpronomen/properties.json | 13 +++++++------ .../deutsch/topics/personalpronomen/tasks.json | 1 + .../deutsch/topics/satzglieder/properties.json | 13 +++++++------ .../deutsch/topics/satzglieder/tasks.json | 1 + .../deutsch/topics/vier-faelle/properties.json | 12 ++++++------ .../deutsch/topics/vier-faelle/tasks.json | 1 + .../deutsch/topics/wortarten/properties.json | 14 ++++++++------ .../subjects/deutsch/topics/wortarten/tasks.json | 1 + webseite/config/subjects/englisch/properties.json | 8 ++++---- .../englisch/topics/LoremIpsum/properties.json | 10 ++++------ .../englisch/topics/LoremIpsum/tasks.json | 1 + webseite/config/subjects/mathe/properties.json | 8 ++++---- .../mathe/topics/bruchrechnung/properties.json | 15 +++++++++------ .../punkt-vor-strichrechnung/properties.json | 13 +++++++------ .../topics/punkt-vor-strichrechnung/tasks.json | 1 + .../topics/rechnen-mit-einheiten/properties.json | 13 +++++++------ .../mathe/topics/rechnen-mit-einheiten/tasks.json | 1 + .../topics/rechnen-mit-klammern/properties.json | 13 +++++++------ .../mathe/topics/rechnen-mit-klammern/tasks.json | 1 + .../schriftliches-dividieren/properties.json | 12 ++++++------ .../topics/schriftliches-dividieren/tasks.json | 1 + .../schriftliches-multiplizieren/properties.json | 12 ++++++------ .../schriftliches-multiplizieren/tasks.json | 1 + 28 files changed, 112 insertions(+), 90 deletions(-) create mode 100644 webseite/config/subjects/deutsch/topics/adverbiale-bestimmung/tasks.json create mode 100644 webseite/config/subjects/deutsch/topics/geschichten-erzaehlen/tasks.json create mode 100644 webseite/config/subjects/deutsch/topics/personalpronomen/tasks.json create mode 100644 webseite/config/subjects/deutsch/topics/satzglieder/tasks.json create mode 100644 webseite/config/subjects/deutsch/topics/vier-faelle/tasks.json create mode 100644 webseite/config/subjects/deutsch/topics/wortarten/tasks.json create mode 100644 webseite/config/subjects/englisch/topics/LoremIpsum/tasks.json create mode 100644 webseite/config/subjects/mathe/topics/punkt-vor-strichrechnung/tasks.json create mode 100644 webseite/config/subjects/mathe/topics/rechnen-mit-einheiten/tasks.json create mode 100644 webseite/config/subjects/mathe/topics/rechnen-mit-klammern/tasks.json create mode 100644 webseite/config/subjects/mathe/topics/schriftliches-dividieren/tasks.json create mode 100644 webseite/config/subjects/mathe/topics/schriftliches-multiplizieren/tasks.json diff --git a/webseite/config/subjects/deutsch/properties.json b/webseite/config/subjects/deutsch/properties.json index 099226f..5b1c093 100644 --- a/webseite/config/subjects/deutsch/properties.json +++ b/webseite/config/subjects/deutsch/properties.json @@ -1,6 +1,6 @@ { - "displayName": "Deutsch", - "description": "Deutsch ist rot", - "color": "#ef4444", - "icon": "fa-book" + "displayName": "Deutsch", + "description": "Deutsch ist rot", + "color": "#ef4444", + "icon": "fa-book" } \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/adverbiale-bestimmung/properties.json b/webseite/config/subjects/deutsch/topics/adverbiale-bestimmung/properties.json index 854795c..bf258f3 100644 --- a/webseite/config/subjects/deutsch/topics/adverbiale-bestimmung/properties.json +++ b/webseite/config/subjects/deutsch/topics/adverbiale-bestimmung/properties.json @@ -1,8 +1,9 @@ { - "displayName": "Adverbiale Bestimmung", - "icon": "fa-map-pin", - "description": "Adverbiale Bestimmungen sind Satzteile, die zusätzliche Informationen über Umstände wie Zeit, Ort, Grund oder Art und Weise geben und dadurch die Handlung des Satzes genauer beschreiben.", - "relatedTopics": [ - "wortarten", "vier-faelle" - ] + "displayName": "Adverbiale Bestimmung", + "icon": "fa-map-pin", + "description": "Adverbiale Bestimmungen sind Satzteile, die zusätzliche Informationen über Umstände wie Zeit, Ort, Grund oder Art und Weise geben und dadurch die Handlung des Satzes genauer beschreiben.", + "relatedTopics": [ + "wortarten", + "vier-faelle" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/adverbiale-bestimmung/tasks.json b/webseite/config/subjects/deutsch/topics/adverbiale-bestimmung/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/deutsch/topics/adverbiale-bestimmung/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/geschichten-erzaehlen/properties.json b/webseite/config/subjects/deutsch/topics/geschichten-erzaehlen/properties.json index a297d57..91016aa 100644 --- a/webseite/config/subjects/deutsch/topics/geschichten-erzaehlen/properties.json +++ b/webseite/config/subjects/deutsch/topics/geschichten-erzaehlen/properties.json @@ -1,8 +1,9 @@ { - "displayName": "Geschichten erzählen", - "icon": "fa-feather-pointed", - "description": "Das Thema \"Geschichten erzählen\" umfasst das kreative Gestalten und Vermitteln von Erlebnissen oder Fantasien durch eine spannende Handlung, interessante Charaktere und lebendige Beschreibungen, um die Zuhörer oder Leser zu fesseln.", - "relatedTopics": [ - "satzglieder", "personalpronomen" - ] + "displayName": "Geschichten erzählen", + "icon": "fa-feather-pointed", + "description": "Das Thema \"Geschichten erzählen\" umfasst das kreative Gestalten und Vermitteln von Erlebnissen oder Fantasien durch eine spannende Handlung, interessante Charaktere und lebendige Beschreibungen, um die Zuhörer oder Leser zu fesseln.", + "relatedTopics": [ + "satzglieder", + "personalpronomen" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/geschichten-erzaehlen/tasks.json b/webseite/config/subjects/deutsch/topics/geschichten-erzaehlen/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/deutsch/topics/geschichten-erzaehlen/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/personalpronomen/properties.json b/webseite/config/subjects/deutsch/topics/personalpronomen/properties.json index 4f1f61b..7828056 100644 --- a/webseite/config/subjects/deutsch/topics/personalpronomen/properties.json +++ b/webseite/config/subjects/deutsch/topics/personalpronomen/properties.json @@ -1,8 +1,9 @@ { - "displayName": "Personalpronomen", - "icon": "fa-person", - "description": "Personalpronomen sind Wörter, die anstelle von Personen oder Dingen verwendet werden, wie zum Beispiel \"ich\", \"du\", \"er\", \"sie\" oder \"es\", um Wiederholungen zu vermeiden und Sätze flüssiger zu gestalten.", - "relatedTopics": [ - "wortarten", "geschichten-erzaehlen" - ] + "displayName": "Personalpronomen", + "icon": "fa-person", + "description": "Personalpronomen sind Wörter, die anstelle von Personen oder Dingen verwendet werden, wie zum Beispiel \"ich\", \"du\", \"er\", \"sie\" oder \"es\", um Wiederholungen zu vermeiden und Sätze flüssiger zu gestalten.", + "relatedTopics": [ + "wortarten", + "geschichten-erzaehlen" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/personalpronomen/tasks.json b/webseite/config/subjects/deutsch/topics/personalpronomen/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/deutsch/topics/personalpronomen/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/satzglieder/properties.json b/webseite/config/subjects/deutsch/topics/satzglieder/properties.json index 5c690bc..bb5e8d9 100644 --- a/webseite/config/subjects/deutsch/topics/satzglieder/properties.json +++ b/webseite/config/subjects/deutsch/topics/satzglieder/properties.json @@ -1,8 +1,9 @@ { - "displayName": "Satzglieder", - "icon": "fa-link", - "description": "Satzglieder sind die Bausteine eines Satzes, die jeweils eine bestimmte Funktion erfüllen, wie Subjekt, Prädikat, Objekt oder adverbiale Bestimmung, und sich gemeinsam verschieben lassen, ohne die grammatische Korrektheit des Satzes zu verändern.", - "relatedTopics": [ - "wortarten", "vier-faelle" - ] + "displayName": "Satzglieder", + "icon": "fa-link", + "description": "Satzglieder sind die Bausteine eines Satzes, die jeweils eine bestimmte Funktion erfüllen, wie Subjekt, Prädikat, Objekt oder adverbiale Bestimmung, und sich gemeinsam verschieben lassen, ohne die grammatische Korrektheit des Satzes zu verändern.", + "relatedTopics": [ + "wortarten", + "vier-faelle" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/satzglieder/tasks.json b/webseite/config/subjects/deutsch/topics/satzglieder/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/deutsch/topics/satzglieder/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/vier-faelle/properties.json b/webseite/config/subjects/deutsch/topics/vier-faelle/properties.json index 5339b63..18fe974 100644 --- a/webseite/config/subjects/deutsch/topics/vier-faelle/properties.json +++ b/webseite/config/subjects/deutsch/topics/vier-faelle/properties.json @@ -1,8 +1,8 @@ { - "displayName": "Vier Fälle", - "icon": "fa-4", - "description": "Die vier Fälle im Deutschen - Nominativ, Genitiv, Dativ und Akkusativ - beschreiben die verschiedenen grammatischen Funktionen eines Nomens oder Pronomens im Satz, wie Subjekt, Besitz, indirektes Objekt oder direktes Objekt.", - "relatedTopics": [ - "satzglieder" - ] + "displayName": "Vier Fälle", + "icon": "fa-4", + "description": "Die vier Fälle im Deutschen - Nominativ, Genitiv, Dativ und Akkusativ - beschreiben die verschiedenen grammatischen Funktionen eines Nomens oder Pronomens im Satz, wie Subjekt, Besitz, indirektes Objekt oder direktes Objekt.", + "relatedTopics": [ + "satzglieder" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/vier-faelle/tasks.json b/webseite/config/subjects/deutsch/topics/vier-faelle/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/deutsch/topics/vier-faelle/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/wortarten/properties.json b/webseite/config/subjects/deutsch/topics/wortarten/properties.json index 422354e..3f8aaa8 100644 --- a/webseite/config/subjects/deutsch/topics/wortarten/properties.json +++ b/webseite/config/subjects/deutsch/topics/wortarten/properties.json @@ -1,8 +1,10 @@ { - "displayName": "Wortarten", - "icon": "fa-sitemap", - "description": "Wortarten sind Kategorien, in die Wörter anhand ihrer grammatischen Funktion und Bedeutung eingeteilt werden, wie zum Beispiel Nomen, Verben, Adjektive und Adverbien.", - "relatedTopics": [ - "satzglieder", "adverbiale-bestimmung", "personalpronomen" - ] + "displayName": "Wortarten", + "icon": "fa-sitemap", + "description": "Wortarten sind Kategorien, in die Wörter anhand ihrer grammatischen Funktion und Bedeutung eingeteilt werden, wie zum Beispiel Nomen, Verben, Adjektive und Adverbien.", + "relatedTopics": [ + "satzglieder", + "adverbiale-bestimmung", + "personalpronomen" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/deutsch/topics/wortarten/tasks.json b/webseite/config/subjects/deutsch/topics/wortarten/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/deutsch/topics/wortarten/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/englisch/properties.json b/webseite/config/subjects/englisch/properties.json index df5ea24..dbf37d3 100644 --- a/webseite/config/subjects/englisch/properties.json +++ b/webseite/config/subjects/englisch/properties.json @@ -1,6 +1,6 @@ { - "displayName": "Englisch", - "description": "He she it das s muss mit!", - "color": "#17B750", - "icon": "fa-language" + "displayName": "Englisch", + "description": "He she it das s muss mit!", + "color": "#17B750", + "icon": "fa-language" } \ No newline at end of file diff --git a/webseite/config/subjects/englisch/topics/LoremIpsum/properties.json b/webseite/config/subjects/englisch/topics/LoremIpsum/properties.json index 5caecd9..2f0421c 100644 --- a/webseite/config/subjects/englisch/topics/LoremIpsum/properties.json +++ b/webseite/config/subjects/englisch/topics/LoremIpsum/properties.json @@ -1,8 +1,6 @@ { - "displayName": "Lorem Ipsum", - "icon": "fa-sitemap", - "description": "Lorem Ipsum", - "relatedTopics": [ - - ] + "displayName": "Lorem Ipsum", + "icon": "fa-sitemap", + "description": "Lorem Ipsum", + "relatedTopics": [] } \ No newline at end of file diff --git a/webseite/config/subjects/englisch/topics/LoremIpsum/tasks.json b/webseite/config/subjects/englisch/topics/LoremIpsum/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/englisch/topics/LoremIpsum/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/mathe/properties.json b/webseite/config/subjects/mathe/properties.json index ff8bc94..5b6cb74 100644 --- a/webseite/config/subjects/mathe/properties.json +++ b/webseite/config/subjects/mathe/properties.json @@ -1,6 +1,6 @@ { - "displayName": "Mathe", - "description": "Mathe ist blau", - "color": "#3b82f6", - "icon": "fa-square-root-alt" + "displayName": "Mathe", + "description": "Mathe ist blau", + "color": "#3b82f6", + "icon": "fa-square-root-alt" } \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/bruchrechnung/properties.json b/webseite/config/subjects/mathe/topics/bruchrechnung/properties.json index dd4e274..ead1b48 100644 --- a/webseite/config/subjects/mathe/topics/bruchrechnung/properties.json +++ b/webseite/config/subjects/mathe/topics/bruchrechnung/properties.json @@ -1,8 +1,11 @@ { - "displayName": "Bruchrechnung", - "icon": "fa-chart-pie", - "description": "Die Bruchrechnung ist ein Teil der Mathematik, der das Rechnen mit Brüchen beinhaltet, also das Teilen eines Ganzen in gleich große Teile, und umfasst Operationen wie Addition, Subtraktion, Multiplikation und Division von Brüchen.", - "relatedTopics": [ - "schriftliches-multiplizieren", "schriftliches-dividieren", "punkt-vor-strichrechnung", "rechnen-mit-klammern" - ] + "displayName": "Bruchrechnung", + "icon": "fa-chart-pie", + "description": "Die Bruchrechnung ist ein Teil der Mathematik, der das Rechnen mit Brüchen beinhaltet, also das Teilen eines Ganzen in gleich große Teile, und umfasst Operationen wie Addition, Subtraktion, Multiplikation und Division von Brüchen.", + "relatedTopics": [ + "schriftliches-multiplizieren", + "schriftliches-dividieren", + "punkt-vor-strichrechnung", + "rechnen-mit-klammern" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/punkt-vor-strichrechnung/properties.json b/webseite/config/subjects/mathe/topics/punkt-vor-strichrechnung/properties.json index 9a958cf..56eca32 100644 --- a/webseite/config/subjects/mathe/topics/punkt-vor-strichrechnung/properties.json +++ b/webseite/config/subjects/mathe/topics/punkt-vor-strichrechnung/properties.json @@ -1,8 +1,9 @@ { - "displayName": "Punkt- vor Strichrechnung", - "icon": "fa-plus-minus", - "description": "Die Regel \"Punkt vor Strichrechnung\" besagt, dass bei mathematischen Berechnungen Multiplikation und Division immer vor Addition und Subtraktion ausgeführt werden müssen, um das richtige Ergebnis zu erhalten.", - "relatedTopics": [ - "rechnen-mit-klammern", "bruchrechnung" - ] + "displayName": "Punkt- vor Strichrechnung", + "icon": "fa-plus-minus", + "description": "Die Regel \"Punkt vor Strichrechnung\" besagt, dass bei mathematischen Berechnungen Multiplikation und Division immer vor Addition und Subtraktion ausgeführt werden müssen, um das richtige Ergebnis zu erhalten.", + "relatedTopics": [ + "rechnen-mit-klammern", + "bruchrechnung" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/punkt-vor-strichrechnung/tasks.json b/webseite/config/subjects/mathe/topics/punkt-vor-strichrechnung/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/mathe/topics/punkt-vor-strichrechnung/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/rechnen-mit-einheiten/properties.json b/webseite/config/subjects/mathe/topics/rechnen-mit-einheiten/properties.json index b85e3ad..b29dafd 100644 --- a/webseite/config/subjects/mathe/topics/rechnen-mit-einheiten/properties.json +++ b/webseite/config/subjects/mathe/topics/rechnen-mit-einheiten/properties.json @@ -1,8 +1,9 @@ { - "displayName": "Rechnen mit Einheiten", - "icon": "fa-clock", - "description": "Rechnen mit Einheiten bedeutet, Größen mit verschiedenen Maßeinheiten wie Meter, Kilogramm oder Liter rechnerisch zu verarbeiten, dabei die Einheiten korrekt umzurechnen und sicherzustellen, dass das Ergebnis in der richtigen Einheit angegeben wird.", - "relatedTopics": [ - "schriftliches-dividieren", "bruchrechnung" - ] + "displayName": "Rechnen mit Einheiten", + "icon": "fa-clock", + "description": "Rechnen mit Einheiten bedeutet, Größen mit verschiedenen Maßeinheiten wie Meter, Kilogramm oder Liter rechnerisch zu verarbeiten, dabei die Einheiten korrekt umzurechnen und sicherzustellen, dass das Ergebnis in der richtigen Einheit angegeben wird.", + "relatedTopics": [ + "schriftliches-dividieren", + "bruchrechnung" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/rechnen-mit-einheiten/tasks.json b/webseite/config/subjects/mathe/topics/rechnen-mit-einheiten/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/mathe/topics/rechnen-mit-einheiten/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/rechnen-mit-klammern/properties.json b/webseite/config/subjects/mathe/topics/rechnen-mit-klammern/properties.json index 6d50956..1f87512 100644 --- a/webseite/config/subjects/mathe/topics/rechnen-mit-klammern/properties.json +++ b/webseite/config/subjects/mathe/topics/rechnen-mit-klammern/properties.json @@ -1,8 +1,9 @@ { - "displayName": "Rechnen mit Klammern", - "icon": "fa-code", - "description": "Beim Rechnen mit Klammern werden die Rechenoperationen innerhalb der Klammern zuerst ausgeführt, bevor die restlichen Berechnungen im Ausdruck vorgenommen werden, um die korrekte Reihenfolge der Rechenschritte einzuhalten.", - "relatedTopics": [ - "punkt-vor-strichrechnung", "bruchrechnung" - ] + "displayName": "Rechnen mit Klammern", + "icon": "fa-code", + "description": "Beim Rechnen mit Klammern werden die Rechenoperationen innerhalb der Klammern zuerst ausgeführt, bevor die restlichen Berechnungen im Ausdruck vorgenommen werden, um die korrekte Reihenfolge der Rechenschritte einzuhalten.", + "relatedTopics": [ + "punkt-vor-strichrechnung", + "bruchrechnung" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/rechnen-mit-klammern/tasks.json b/webseite/config/subjects/mathe/topics/rechnen-mit-klammern/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/mathe/topics/rechnen-mit-klammern/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/schriftliches-dividieren/properties.json b/webseite/config/subjects/mathe/topics/schriftliches-dividieren/properties.json index c3c5623..bd3d157 100644 --- a/webseite/config/subjects/mathe/topics/schriftliches-dividieren/properties.json +++ b/webseite/config/subjects/mathe/topics/schriftliches-dividieren/properties.json @@ -1,8 +1,8 @@ { - "displayName": "Schriftliches Dividieren", - "icon": "fa-divide", - "description": "Schriftliches Dividieren ist eine Methode zur schrittweisen Aufteilung einer Zahl durch eine andere, wobei man die Teilschritte nacheinander schriftlich notiert, um das Ergebnis systematisch zu berechnen.", - "relatedTopics": [ - "schriftliches-multiplizieren" - ] + "displayName": "Schriftliches Dividieren", + "icon": "fa-divide", + "description": "Schriftliches Dividieren ist eine Methode zur schrittweisen Aufteilung einer Zahl durch eine andere, wobei man die Teilschritte nacheinander schriftlich notiert, um das Ergebnis systematisch zu berechnen.", + "relatedTopics": [ + "schriftliches-multiplizieren" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/schriftliches-dividieren/tasks.json b/webseite/config/subjects/mathe/topics/schriftliches-dividieren/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/mathe/topics/schriftliches-dividieren/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/schriftliches-multiplizieren/properties.json b/webseite/config/subjects/mathe/topics/schriftliches-multiplizieren/properties.json index f09d59a..5187937 100644 --- a/webseite/config/subjects/mathe/topics/schriftliches-multiplizieren/properties.json +++ b/webseite/config/subjects/mathe/topics/schriftliches-multiplizieren/properties.json @@ -1,8 +1,8 @@ { - "displayName": "Schriftliches Multiplizieren", - "icon": "fa-x", - "description": "Schriftliches Multiplizieren ist eine Rechenmethode, bei der zwei Zahlen schrittweise multipliziert werden, indem man die einzelnen Stellen der Zahlen nacheinander verrechnet, die Teilergebnisse notiert und am Ende addiert, um das Gesamtergebnis zu erhalten.", - "relatedTopics": [ - "schriftliches-dividieren" - ] + "displayName": "Schriftliches Multiplizieren", + "icon": "fa-x", + "description": "Schriftliches Multiplizieren ist eine Rechenmethode, bei der zwei Zahlen schrittweise multipliziert werden, indem man die einzelnen Stellen der Zahlen nacheinander verrechnet, die Teilergebnisse notiert und am Ende addiert, um das Gesamtergebnis zu erhalten.", + "relatedTopics": [ + "schriftliches-dividieren" + ] } \ No newline at end of file diff --git a/webseite/config/subjects/mathe/topics/schriftliches-multiplizieren/tasks.json b/webseite/config/subjects/mathe/topics/schriftliches-multiplizieren/tasks.json new file mode 100644 index 0000000..0637a08 --- /dev/null +++ b/webseite/config/subjects/mathe/topics/schriftliches-multiplizieren/tasks.json @@ -0,0 +1 @@ +[] \ No newline at end of file From d5cfc0383e6f385a4cc4beaf368f89c04ca91860 Mon Sep 17 00:00:00 2001 From: Matthias Grief Date: Fri, 13 Dec 2024 23:21:41 +0100 Subject: [PATCH 8/9] Testdatei entfernt --- webseite/test.php | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 webseite/test.php diff --git a/webseite/test.php b/webseite/test.php deleted file mode 100644 index 50b1781..0000000 --- a/webseite/test.php +++ /dev/null @@ -1,11 +0,0 @@ -getTopics() as $topic) { - $topic->save(); - } - $subject->save(); -} \ No newline at end of file From 10b828ac62e35020de486caeede610f5eab9f821 Mon Sep 17 00:00:00 2001 From: Matthias Grief Date: Fri, 13 Dec 2024 23:25:30 +0100 Subject: [PATCH 9/9] =?UTF-8?q?Wertpr=C3=BCfung=20eingef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webseite/classes/Task.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/webseite/classes/Task.php b/webseite/classes/Task.php index 0aecb01..8b0e3ea 100644 --- a/webseite/classes/Task.php +++ b/webseite/classes/Task.php @@ -20,7 +20,14 @@ class Task public function __construct(string $text, array $variables) { $this->text = $text; - $this->variables = $variables; + $this->variables = array(); + foreach ($variables as $variable => $value) { + if(!is_string($value)) { + continue; + } + + $this->variables[$variable] = $value; + } } /**