diff --git a/content/home.php b/content/home.php index c148fe8..17814bb 100644 --- a/content/home.php +++ b/content/home.php @@ -19,28 +19,34 @@ include_once 'php/controller/home-controller.php'; sea takimata sanctus est Lorem ipsum dolor sit amet.

- -
-
- Informatik -
- getTitle();}else{echo "Fehler: Beitrag nicht gefunden!";} ?> -
-
+ +
+ + + +

Aktuell sind keine Beiträge in den Kategorien vorhanden.

+
\ No newline at end of file diff --git a/php/controller/home-controller.php b/php/controller/home-controller.php index d9f6006..5143907 100644 --- a/php/controller/home-controller.php +++ b/php/controller/home-controller.php @@ -6,14 +6,44 @@ require_once 'php/model/Article.php'; require_once 'php/model/ArticleManager.php'; require_once 'php/model/LocalArticleManager.php'; +$categoriesWithArticles = []; + +$allowedCategories = [ + 'deutsch', 'englisch', 'franzoesisch', 'latein', 'literatur', + 'mathe', 'biologie', 'chemie', 'physik', 'informatik', 'astronomie', + 'geschichte', 'erdkunde', 'sozialkunde', 'wirtschaft', 'religion', + 'ethik', 'philosophie', 'psychologie', 'kunst', 'musik', 'theater', + 'technik', 'werken', 'hauswirtschaft', 'sport' +]; + try { $articleManager = ArticleManager::getInstance(); - // Beziehen der Dummy-Beiträge aus dem ArticleManager: - $dummy1 = $articleManager->getArticle(1); - $dummy2 = $articleManager->getArticle(2); - $dummy3 = $articleManager->getArticle(3); + + foreach ($allowedCategories as $categorySlug) { + $allCategoryArticles = $articleManager->getArticlesByCategory($categorySlug); + + // nur Kategorien, die Beiträge enthält: + if (!empty($allCategoryArticles) && is_array($allCategoryArticles)) { + + // Beiträge nach Erstellungsdatum sortieren: + usort($allCategoryArticles, function($a, $b) { + $dateA = strtotime($a->getCreationDate()); + $dateB = strtotime($b->getCreationDate()); + return $dateB <=> $dateA; // Absteigende Sortierung + }); + + // auf die 5 zuletzt hinzugefügten Beiträge begrenzen: + $limitedArticles = array_slice($allCategoryArticles, 0, 5); + + $categoriesWithArticles[] = [ + 'slug' => $categorySlug, + 'name' => ucfirst($categorySlug), // Erster Buchstabe groß für die Ansicht + 'articles' => $limitedArticles + ]; + } + } + } catch (Exception $e){ $_SESSION["message"] = "internal_error"; - echo "Fehler aufgetreten: " . $e->getMessage(); } ?> \ No newline at end of file