Potential Produkt Increment #83
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
|
<?php
|
||||||
|
require_once("Config.php");
|
||||||
require_once("Util.php");
|
require_once("Util.php");
|
||||||
require_once("TopicData.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
|
class SubjectData
|
||||||
@@ -47,8 +48,7 @@ class SubjectData
|
|||||||
{
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
|
|
||||||
$subjectDirectory = "config/subjects";
|
$subjectNames = scandir(Config::getSubjectsDirectory());
|
||||||
$subjectNames = scandir($subjectDirectory);
|
|
||||||
|
|
||||||
usort($subjectNames, function ($a, $b) {
|
usort($subjectNames, function ($a, $b) {
|
||||||
return strcmp($a, $b);
|
return strcmp($a, $b);
|
||||||
@@ -79,10 +79,11 @@ class SubjectData
|
|||||||
{
|
{
|
||||||
$result = new SubjectData();
|
$result = new SubjectData();
|
||||||
|
|
||||||
$subjectId = Util::removeIllegalCharacters($subjectId);
|
if (Util::containsIllegalCharacters($subjectId)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
$subjectDirectory = "config/subjects/$subjectId";
|
$filename = Config::getSubjectDirectory($subjectId) . "properties.json";
|
||||||
$filename = "$subjectDirectory/properties.json";
|
|
||||||
$data = Util::parseJsonFromFile($filename);
|
$data = Util::parseJsonFromFile($filename);
|
||||||
if (!isset($data)) {
|
if (!isset($data)) {
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
require_once("Config.php");
|
||||||
require_once("Util.php");
|
require_once("Util.php");
|
||||||
|
|
||||||
class TopicData
|
class TopicData
|
||||||
@@ -52,8 +53,7 @@ class TopicData
|
|||||||
{
|
{
|
||||||
$result = array();
|
$result = array();
|
||||||
|
|
||||||
$topicDirectory = "config/subjects/$subjectId/topics";
|
$topicNames = scandir(Config::getTopicsDirectory($subjectId));
|
||||||
$topicNames = scandir($topicDirectory);
|
|
||||||
|
|
||||||
usort($topicNames, function ($a, $b) {
|
usort($topicNames, function ($a, $b) {
|
||||||
return strcmp($a, $b);
|
return strcmp($a, $b);
|
||||||
@@ -87,9 +87,7 @@ class TopicData
|
|||||||
$subjectId = Util::removeIllegalCharacters($subjectId);
|
$subjectId = Util::removeIllegalCharacters($subjectId);
|
||||||
$topicId = Util::removeIllegalCharacters($topicId);
|
$topicId = Util::removeIllegalCharacters($topicId);
|
||||||
|
|
||||||
$topicsDirectory = "config/subjects/$subjectId/topics";
|
$data = Util::parseJsonFromFile(Config::getTopicDirectory($subjectId, $topicId) . "properties.json");
|
||||||
$topicDataDirectory = "$topicsDirectory/$topicId";
|
|
||||||
$data = Util::parseJsonFromFile("$topicDataDirectory/properties.json");
|
|
||||||
if (!isset($data)) {
|
if (!isset($data)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -126,15 +124,14 @@ class TopicData
|
|||||||
$result->files = array();
|
$result->files = array();
|
||||||
}
|
}
|
||||||
|
|
||||||
$article = Util::readFileContent("$topicDataDirectory/article.html");
|
$article = Util::readFileContent(Config::getTopicDirectory($subjectId, $topicId) . "article.html");
|
||||||
if (!isset($article)) {
|
if (!isset($article)) {
|
||||||
$article = "Kein Erklärtext vorhanden";
|
$article = "Kein Erklärtext vorhanden";
|
||||||
}
|
}
|
||||||
$article = str_replace('$TOPICPATH', $topicDataDirectory, $article);
|
$article = str_replace('$TOPICPATH', Config::getTopicDirectory($subjectId, $topicId), $article);
|
||||||
|
|
||||||
$result->article = $article;
|
$result->article = $article;
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user