143 lines
4.8 KiB
PHP
143 lines
4.8 KiB
PHP
<?php
|
|
include_once 'php/controller/showArticle-controller.php';
|
|
require_once 'php/model/CommentManager.php';
|
|
|
|
$comments = [];
|
|
|
|
if (isset($_GET["id"])) {
|
|
try {
|
|
$commentManager = CommentManager::getInstance();
|
|
$comments = $commentManager->getCommentsByArticle($_GET["id"]);
|
|
} catch (Exception $e) {
|
|
$_SESSION["message"] = "internal_error";
|
|
}
|
|
}
|
|
?>
|
|
|
|
<!--
|
|
Seite: Anzeige für Beiträge
|
|
Funktion: Stellt einen übergebenen Beitrag dar.
|
|
-->
|
|
|
|
<main class="article-view-container">
|
|
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "internal_error"): ?>
|
|
<p class="alert-message is-error">
|
|
Es ist ein interner Fehler aufgetreten. Bitte versuche es erneut.
|
|
</p>
|
|
<?php endif; ?>
|
|
|
|
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "missing_id"): ?>
|
|
<p class="alert-message is-error">
|
|
Es ist ein Fehler aufgetreten. Die ID konnte nicht ausgelesen werden. Bitte versuche es erneut.
|
|
</p>
|
|
<?php endif; ?>
|
|
|
|
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "missing_parameters"): ?>
|
|
<p class="alert-message is-error">
|
|
Jeder Beitrag muss einen Titel, Kategorie und Inhalt besitzen.
|
|
</p>
|
|
<?php endif; ?>
|
|
|
|
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "article_updated"): ?>
|
|
<p class="alert-message is-success">
|
|
Dein Beitrag wurde erfolgreich bearbeitet!
|
|
</p>
|
|
<?php endif; ?>
|
|
|
|
<?php unset($_SESSION["message"]); ?>
|
|
|
|
<div class="article-view-top-section">
|
|
|
|
<?php if (isset($category) && !empty($category)): ?>
|
|
<span class="article-view-category"><?php echo htmlspecialchars($category); ?></span>
|
|
<?php endif; ?>
|
|
|
|
<h1 class="article-view-title">
|
|
<?php if (isset($title)) { echo htmlspecialchars($title); } ?>
|
|
</h1>
|
|
|
|
<div class="article-view-meta">
|
|
<?php if (isset($author) && !empty($author)): ?>
|
|
<span class="article-view-author">
|
|
Von: <strong><?php echo htmlspecialchars($author); ?></strong>
|
|
</span>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="article-view-content">
|
|
<?php if (isset($content)): ?>
|
|
<div class="article-view-body">
|
|
<?php echo nl2br(htmlspecialchars($content)); ?>
|
|
</div>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<?php if (isset($tags) && !empty($tags)): ?>
|
|
<div class="article-view-bottom-section">
|
|
<div class="article-view-tags-label">Tags:</div>
|
|
|
|
<div class="article-view-tags-list">
|
|
<?php
|
|
$tagArray = is_array($tags) ? $tags : explode(',', $tags);
|
|
|
|
foreach ($tagArray as $tag):
|
|
$trimmedTag = trim($tag);
|
|
|
|
if (!empty($trimmedTag)):
|
|
?>
|
|
<span class="article-view-tag-item">
|
|
<?php echo htmlspecialchars($trimmedTag); ?>
|
|
</span>
|
|
<?php
|
|
endif;
|
|
endforeach;
|
|
?>
|
|
</div>
|
|
</div>
|
|
<?php endif; ?>
|
|
|
|
<section class="article-comments-section">
|
|
<h2>Kommentare</h2>
|
|
|
|
<div id="comments-list">
|
|
<?php if (!empty($comments)): ?>
|
|
<?php foreach ($comments as $comment): ?>
|
|
<div class="comment-item">
|
|
<p>
|
|
<strong><?php echo htmlspecialchars($comment->getAuthor()); ?></strong>
|
|
<span><?php echo htmlspecialchars($comment->getCreated()); ?></span>
|
|
</p>
|
|
|
|
<p><?php echo nl2br(htmlspecialchars($comment->getContent())); ?></p>
|
|
</div>
|
|
<?php endforeach; ?>
|
|
<?php else: ?>
|
|
<p class="no-comments-message">
|
|
Noch keine Kommentare vorhanden.
|
|
</p>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<?php if (isset($_SESSION["user_email"])): ?>
|
|
<form id="comment-form">
|
|
<input type="hidden"
|
|
name="article_id"
|
|
value="<?php echo htmlspecialchars($_GET["id"] ?? ""); ?>">
|
|
|
|
<textarea name="content"
|
|
id="comment-content"
|
|
placeholder="Schreibe einen Kommentar..."
|
|
required></textarea>
|
|
|
|
<button type="submit" class="button">
|
|
Kommentar senden
|
|
</button>
|
|
</form>
|
|
<?php else: ?>
|
|
<p>Du musst angemeldet sein, um einen Kommentar zu schreiben.</p>
|
|
<?php endif; ?>
|
|
</section>
|
|
|
|
</main>
|