id] = $subjectData; } return $result; } /** * Lädt ein Fach über eine gegebene ID * @param $subjectId string Die eindeutige ID des Faches * @return SubjectData|null Das Fach zu der ID oder null, wenn kein entsprechendes Fach gefunden wurde */ public static function fromName(string $subjectId): SubjectData|null { $result = new SubjectData(); if (Util::containsIllegalCharacters($subjectId)) { return null; } $filename = Config::getSubjectDirectory($subjectId) . "properties.json"; $data = Util::parseJsonFromFile($filename); if (!isset($data)) { return null; } $result->id = $subjectId; if (isset($data->displayName)) { $result->displayName = $data->displayName; } else { return null; } if (isset($data->description)) { $result->description = $data->description; } else { return null; } if (isset($data->color)) { $result->color = $data->color; } else { return null; } if (isset($data->icon)) { $result->icon = $data->icon; } else { return null; } $result->topics = TopicData::getAll($subjectId); return $result; } }