Fach- und Themendaten umstrukturiert
This commit is contained in:
committed by
Eric Blommel
parent
294260c019
commit
7a146d8982
51
webseite/classes/Config.php
Normal file
51
webseite/classes/Config.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Konfigurationsdaten
|
||||
*/
|
||||
class Config
|
||||
{
|
||||
/**
|
||||
* @return string Verzeichnis für generelle Konfigurationsdaten
|
||||
*/
|
||||
public static function getConfigDirectory(): string
|
||||
{
|
||||
return "config/";
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string Verzeichnis für Fächer
|
||||
*/
|
||||
public static function getSubjectsDirectory(): string
|
||||
{
|
||||
return self::getConfigDirectory() . "subjects/";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $subjectId ID des Faches
|
||||
* @return string Verzeichnis des Faches
|
||||
*/
|
||||
public static function getSubjectDirectory(string $subjectId): string
|
||||
{
|
||||
return self::getSubjectsDirectory() . $subjectId . "/";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $subjectId ID des Faches
|
||||
* @return string Verzeichnis der Themen des Faches
|
||||
*/
|
||||
public static function getTopicsDirectory(string $subjectId): string
|
||||
{
|
||||
return self::getSubjectDirectory($subjectId) . "topics/";
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $subjectId ID des Faches
|
||||
* @param string $topicId ID des Themas
|
||||
* @return string Verzeichnis des Themas
|
||||
*/
|
||||
public static function getTopicDirectory(string $subjectId, string $topicId): string
|
||||
{
|
||||
return self::getTopicsDirectory($subjectId) . $topicId . "/";
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
<?php
|
||||
require_once("Config.php");
|
||||
require_once("Util.php");
|
||||
require_once("TopicData.php");
|
||||
|
||||
/**
|
||||
* Stellt alle relevanten Daten für ein einzeles Fach bereit
|
||||
* Stellt alle relevanten Daten für ein einzelnes Fach bereit
|
||||
*
|
||||
*/
|
||||
class SubjectData
|
||||
@@ -47,8 +48,7 @@ class SubjectData
|
||||
{
|
||||
$result = array();
|
||||
|
||||
$subjectDirectory = "config/subjects";
|
||||
$subjectNames = scandir($subjectDirectory);
|
||||
$subjectNames = scandir(Config::getSubjectsDirectory());
|
||||
|
||||
usort($subjectNames, function ($a, $b) {
|
||||
return strcmp($a, $b);
|
||||
@@ -79,10 +79,11 @@ class SubjectData
|
||||
{
|
||||
$result = new SubjectData();
|
||||
|
||||
$subjectId = Util::removeIllegalCharacters($subjectId);
|
||||
if (Util::containsIllegalCharacters($subjectId)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$subjectDirectory = "config/subjects/$subjectId";
|
||||
$filename = "$subjectDirectory/properties.json";
|
||||
$filename = Config::getSubjectDirectory($subjectId) . "properties.json";
|
||||
$data = Util::parseJsonFromFile($filename);
|
||||
if (!isset($data)) {
|
||||
return null;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
require_once("Config.php");
|
||||
require_once("Util.php");
|
||||
|
||||
class TopicData
|
||||
@@ -52,8 +53,7 @@ class TopicData
|
||||
{
|
||||
$result = array();
|
||||
|
||||
$topicDirectory = "config/subjects/$subjectId/topics";
|
||||
$topicNames = scandir($topicDirectory);
|
||||
$topicNames = scandir(Config::getTopicsDirectory($subjectId));
|
||||
|
||||
usort($topicNames, function ($a, $b) {
|
||||
return strcmp($a, $b);
|
||||
@@ -87,9 +87,7 @@ class TopicData
|
||||
$subjectId = Util::removeIllegalCharacters($subjectId);
|
||||
$topicId = Util::removeIllegalCharacters($topicId);
|
||||
|
||||
$topicsDirectory = "config/subjects/$subjectId/topics";
|
||||
$topicDataDirectory = "$topicsDirectory/$topicId";
|
||||
$data = Util::parseJsonFromFile("$topicDataDirectory/properties.json");
|
||||
$data = Util::parseJsonFromFile(Config::getTopicDirectory($subjectId, $topicId) . "properties.json");
|
||||
if (!isset($data)) {
|
||||
return null;
|
||||
}
|
||||
@@ -126,15 +124,14 @@ class TopicData
|
||||
$result->files = array();
|
||||
}
|
||||
|
||||
$article = Util::readFileContent("$topicDataDirectory/article.html");
|
||||
$article = Util::readFileContent(Config::getTopicDirectory($subjectId, $topicId) . "article.html");
|
||||
if (!isset($article)) {
|
||||
$article = "Kein Erklärtext vorhanden";
|
||||
}
|
||||
$article = str_replace('$TOPICPATH', $topicDataDirectory, $article);
|
||||
$article = str_replace('$TOPICPATH', Config::getTopicDirectory($subjectId, $topicId), $article);
|
||||
|
||||
$result->article = $article;
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user