<?php
if (session_status() === PHP_SESSION_NONE) {
    session_start();
}

require_once 'php/model/Article.php';
require_once 'php/model/ArticleManager.php';
require_once 'php/validator/article-validator.php';

if (isset($_GET["category"]) && !empty($_GET["category"]) && articleCategoryValidator($_GET["category"])){
    $category = $_GET["category"];

    $page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
    if ($page < 1) { $page = 1; }

    try {
        $articleManager = ArticleManager::getInstance();

        $allArticles = $articleManager->getArticlesByCategory($category);

        // Paginierung konfigurieren
        $limit = 10; // Wie viele Artikel pro Seite?
        $totalArticles = count($allArticles);
        $totalPages = ceil($totalArticles / $limit);

        if ($page > $totalPages && $totalPages > 0) { $page = $totalPages; }

        $offset = ($page - 1) * $limit;
        $articles = array_slice($allArticles, $offset, $limit);

    } catch (Exception $e) {
        $_SESSION["message"] = "internal_error";
        include_once "content/404.php";
        exit();
    }
} else {
    $_SESSION["message"] = "invalid_category";
    include_once "content/404.php";
    exit();
}
?>
