From b38d4b038c5b0eb4b00647fd23ca0adb80781a90 Mon Sep 17 00:00:00 2001 From: Matthias Grief Date: Fri, 13 Dec 2024 22:58:00 +0100 Subject: [PATCH] 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