Downloadlinks und Erklärungstexte funktional

This commit is contained in:
Matthias Grief
2024-11-15 23:42:46 +01:00
parent 679bd66f7e
commit 95b21c6305
15 changed files with 106 additions and 63 deletions

View File

@@ -39,7 +39,7 @@ class TopicData
public array $files;
/**
* @var string Der gesamte Erklärungstext zum Thema, enthält fertiges HTML
* @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;
@@ -48,7 +48,7 @@ class TopicData
* @param $subjectId string Die ID des Faches
* @return array Alle zugehörigen Themen als TopicData Objekte
*/
public static function getAll(string $subjectId) : array
public static function getAll(string $subjectId): array
{
$result = array();
@@ -59,7 +59,7 @@ class TopicData
continue;
}
$topicData = TopicData::fromName($subjectId, $topicName);
if(!isset($topicData)) {
if (!isset($topicData)) {
continue;
}
@@ -82,47 +82,52 @@ class TopicData
$subjectId = Util::removeIllegalCharacters($subjectId);
$topicId = Util::removeIllegalCharacters($topicId);
$topicDirectory = "config/subjects/$subjectId/topics";
$filename = "$topicDirectory/$topicId/properties.json";
$data = Util::parseJsonFromFile($filename);
$topicsDirectory = "config/subjects/$subjectId/topics";
$topicDataDirectory = "$topicsDirectory/$topicId";
$data = Util::parseJsonFromFile("$topicDataDirectory/properties.json");
if(!isset($data)) {
return null;
}
$result->id = $topicId;
$result->subjectId = $subjectId;
if(isset($data->displayName)) {
if (isset($data->displayName)) {
$result->displayName = $data->displayName;
} else {
return null;
}
if(isset($data->icon)) {
if (isset($data->icon)) {
$result->icon = $data->icon;
} else {
return null;
}
if(isset($data->description)) {
if (isset($data->description)) {
$result->description = $data->description;
} else {
return null;
}
if(isset($data->relatedTopics)) {
if (isset($data->relatedTopics)) {
$result->relatedTopics = $data->relatedTopics;
} else {
$result->relatedTopics = array();
}
if(isset($data->files)) {
if (isset($data->files)) {
$result->files = $data->files;
} else {
$result->files = array();
}
if(isset($data->article)) {
$result->article = $data->article;
} else {
return null;
$article = Util::readFileContent("$topicDataDirectory/article.html");
if (!isset($article)) {
$article = "Kein Erklärtext vorhanden";
}
$article = str_replace('$TOPICPATH', $topicDataDirectory, $article);
$result->article = $article;
return $result;
}