Compare commits

..

18 Commits

Author SHA1 Message Date
niklas.ortmann a33f3b27fb Update createArticle-controller.php 2026-06-01 10:08:01 +02:00
niklas.ortmann 71a8dd5f17 updateArticle funktioniert 2026-06-01 09:41:34 +02:00
niklas.ortmann e86fef1766 Update updateArticle-controller.php 2026-06-01 09:36:31 +02:00
niklas.ortmann 3cb63f791a Update updateArticle.php 2026-06-01 09:36:28 +02:00
niklas.ortmann f96415bfe6 Update showArticle.php 2026-06-01 09:36:23 +02:00
niklas.ortmann 365f70af98 Update updateArticle.php 2026-06-01 09:29:06 +02:00
niklas.ortmann c1ddbfdf48 Update updateArticle.php 2026-06-01 09:28:29 +02:00
niklas.ortmann e575e3dfa8 Update updateArticle-controller.php 2026-06-01 09:25:22 +02:00
niklas.ortmann 560f53cfb6 Update updateArticle-controller.php 2026-06-01 09:24:51 +02:00
niklas.ortmann d8c350c20f Update showArticle-controller.php 2026-06-01 09:19:28 +02:00
niklas.ortmann 5b718f24ed Update updateArticle-controller.php 2026-06-01 09:17:00 +02:00
niklas.ortmann 6634bee77b Update home.php 2026-06-01 09:16:58 +02:00
niklas.ortmann 2a3e73d409 updateArticle 2026-06-01 09:11:11 +02:00
NOrtmann1 2cd68873de Update updateArticle.php 2026-05-29 17:50:11 +01:00
NOrtmann1 d987ca271f Update updateArticle.php 2026-05-29 17:48:05 +01:00
NOrtmann1 0a37dd4b8b Update showArticle-controller.php 2026-05-29 17:45:04 +01:00
NOrtmann1 b4ca25db3d Update showArticle-controller.php 2026-05-29 17:44:30 +01:00
NOrtmann1 738b36c406 Update updateArticle-controller.php 2026-05-29 17:43:05 +01:00
9 changed files with 92 additions and 34 deletions
+4 -1
View File
@@ -10,7 +10,7 @@ session_start();
<main class="editor-main">
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "internal_error"): ?>
<p class="alert-message is-error">
Es ist ein Fehler beim Speichern aufgetreten. Bitte versuche es erneut.
Es ist ein interner Fehler beim Speichern aufgetreten. Bitte versuche es erneut.
</p>
<?php endif; ?>
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "missing_parameters"): ?>
@@ -18,6 +18,9 @@ session_start();
Jeder Beitrag muss einen Titel, Kategorie und Inhalt besitzen.
</p>
<?php endif; ?>
<?php
unset($_SESSION["message"]);
?>
<input type="text" id="title" name="title" placeholder="Titel hier eingeben" required>
<textarea id="content" name="content" placeholder="Schreibe deinen Beitrag..."></textarea>
</main>
+4 -4
View File
@@ -45,10 +45,9 @@ include_once 'php/controller/profileArticles-controller.php';
<div class="articles-list">
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "internal_error"): ?>
<p class="alert-message is-error">
Es ist ein Fehler beim Speichern aufgetreten. Bitte versuche es erneut.
Es ist ein interner Fehler aufgetreten. Bitte versuche es erneut.
</p>
<?php elseif (isset($userArticles) && count($userArticles) > 0): ?>
<?php foreach ($userArticles as $userArticle): ?>
<!-- Ein einzelner Artikel-Eintrag -->
<div class="article-item">
@@ -57,7 +56,6 @@ include_once 'php/controller/profileArticles-controller.php';
<span class="article-category"><?php echo htmlspecialchars($userArticle->getCategory()); ?></span>
</div>
<h3 class="article-title"><?php echo htmlspecialchars($userArticle->getTitle()); ?></h3>
<?php
$tags = $userArticle->getTags();
if (isset($tags) && !empty($tags)): ?>
@@ -81,13 +79,15 @@ include_once 'php/controller/profileArticles-controller.php';
<a href="index.php?pfad=updateArticle&id=<?php echo $userArticle->getID(); ?>" class="edit-link-button">Bearbeiten</a>
</div>
<?php endforeach; ?>
<?php else: ?>
<p>Du hast noch keine Beiträge erstellt.</p>
<button type="button" class="login-button" onclick="window.location.href='index.php?pfad=createArticle';">
Beitrag erstellen!
</button>
<?php endif; ?>
<?php
unset($_SESSION["message"]);
?>
</div>
</div>
+25
View File
@@ -9,6 +9,31 @@ include_once 'php/controller/showArticle-controller.php';
<!-- Hauptcontainer für die Beitragsansicht (Ausschließlich der Content-Bereich) -->
<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"]);
?>
<!-- Metadaten & Titel -->
<div class="article-view-top-section">
+11 -3
View File
@@ -5,12 +5,17 @@ include_once 'php/controller/showArticle-controller.php';
Seite: Beitrag erstellen
Inhalt: Formular für die Erstellung eines neuen Beitrags
-->
<form method="post" action="php/controller/updateArticle-controller.php" id="editor-form" class="article-editor-scope.editor-container article-editor-scope editor-container">
<form method="post" action="php/controller/updateArticle-controller.php?id=<?php if(isset($id) && !empty($id)){echo htmlspecialchars($id);}else{$_SESSION["message"] = "missing_id";} ?>" id="editor-form" class="article-editor-scope.editor-container article-editor-scope editor-container">
<main class="editor-main">
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "internal_error" || $_SESSION["message"] == "missing_id"): ?>
<?php if (isset($_SESSION["message"]) && $_SESSION["message"] == "internal_error"): ?>
<p class="alert-message is-error">
Es ist ein Fehler beim Speichern aufgetreten. Bitte versuche es erneut.
Es ist ein interner Fehler beim Speichern 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"): ?>
@@ -18,6 +23,9 @@ include_once 'php/controller/showArticle-controller.php';
Jeder Beitrag muss einen Titel, Kategorie und Inhalt besitzen.
</p>
<?php endif; ?>
<?php
unset($_SESSION["message"]);
?>
<input type="text" id="title" name="title" value="<?php if (isset($title) && !empty($title)){echo htmlspecialchars($title);} ?>" placeholder="Titel hier eingeben" required>
<textarea id="content" name="content" placeholder="Schreibe deinen Beitrag...">
<?php if (isset($content) && !empty($content)){echo htmlspecialchars($content);} ?>
+1 -1
View File
@@ -8,7 +8,7 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") {
$_SESSION["message"] = "missing_parameters";
header("location: ../../index.php?pfad=createArticle");
} else {
$title = $_POST["title"];
$content = $_POST["content"];
$category = $_POST["category"];
+2 -4
View File
@@ -5,9 +5,9 @@ require_once 'php/model/ArticleManager.php';
if (isset($_GET["id"])){
try {
$id = (int)$_GET["id"];
$id = $_GET["id"];
$articleManager = ArticleManager::getInstance();
$article = $articleManager->getArticle($_GET["id"]);
$article = $articleManager->getArticle($id);
if($article != null){
$title = $article->getTitle();
$content = $article->getContent();
@@ -16,11 +16,9 @@ if (isset($_GET["id"])){
$tags = $article->getTags();
}else{
$_SESSION["message"] = "article_not_found";
echo "article_not_found";
}
} catch (Exception $e){
$_SESSION["message"] = "internal_error";
echo "Fehler aufgetreten: " . $e->getMessage();
}
}else{
$_SESSION["message"] = "article_not_found";
+16 -6
View File
@@ -5,12 +5,17 @@ require_once '../model/ArticleManager.php';
require_once '../model/Article.php';
if ($_SERVER["REQUEST_METHOD"] === "POST") {
if(!isset($_POST["title"]) ||!isset($_POST["content"]) || !isset($_POST["category"])){
try {
$id = $_GET["id"];
} catch (Exception $e){
$_SESSION["message"] = "missing_id";
}
if (!isset($_POST["title"]) ||!isset($_POST["content"]) || !isset($_POST["category"])){
$_SESSION["message"] = "missing_parameters";
header("location: ../../index.php?pfad=updateArticle");
exit();
} elseif(!isset($id)) {
$_SESSION["message"] = "missing_id";
//header("location: ../../index.php?pfad=updateArticle");
}else{
$newTitle = $_POST["title"];
@@ -21,16 +26,21 @@ if ($_SERVER["REQUEST_METHOD"] === "POST") {
try {
$articleManager = ArticleManager::getInstance(); // TODO: Später aus Session den Nutzer auslesen und Autorenrechte prüfen!
$articleManager->updateArticle(new Article($newTitle, $newContent, $newCategory, $author, $newTags), $author);
$article = $articleManager->getArticle($id);
$article->setTitle($newTitle);
$article->setContent($newContent);
$article->setCategory($newCategory);
$article->setTags($newTags);
$articleManager->updateArticle($id ,$article, $author);
} catch (Exception $e){
$_SESSION["message"] = "internal_error";
}
$_SESSION["message"] = "new_article";
$_SESSION["message"] = "article_updated";
// Weiterleitung zur Homepage
header("location: ../../index.php");
exit();
header("location: ../../index.php?pfad=showArticle&id=$id");
}
exit();
}
?>
+21 -11
View File
@@ -1,7 +1,7 @@
<?php
/**
* Klasse: Artikel
* Diese Klasse stellt alle Daten eines Artikels (Beitrag) bereit
* Diese Klasse stellt alle Daten eines Beitrags (Beitrag) bereit
*
* @author Niklas Ortmann
*/
@@ -38,7 +38,7 @@ class Article
}
/**
* Gibt die ID eines Artikels zurück.
* Gibt die ID eines Beitrags zurück.
* @return int
*/
public function getId(): int
@@ -47,7 +47,7 @@ class Article
}
/**
* Gibt den Titel eines Artikels zurück.
* Gibt den Titel eines Beitrags zurück.
* @return string
*/
public function getTitle(): string
@@ -56,7 +56,7 @@ class Article
}
/**
* Setzt den Titel eines Artikels
* Setzt den Titel eines Beitrags
* @param $title
* @return void
*/
@@ -66,7 +66,7 @@ class Article
}
/**
* Gibt den Content eines Artikels zurück.
* Gibt den Content eines Beitrags zurück.
* TODO: Content muss noch definiert werden.
* @return string
*/
@@ -76,7 +76,7 @@ class Article
}
/**
* Setzt den Content eines Artikels.
* Setzt den Content eines Beitrags.
* TODO: Content muss noch definiert werden.
* @param $content
* @return void
@@ -87,7 +87,7 @@ class Article
}
/**
* Gibt den Autor eines Artikels zurück.
* Gibt den Autor eines Beitrags zurück.
* @return string
*/
public function getAuthor(): string
@@ -96,7 +96,7 @@ class Article
}
/**
* Gibt das Veröffentlichungsdatum des Artikels zurück.
* Gibt das Veröffentlichungsdatum des Beitrags zurück.
* @return string
*/
public function getCreationDate(): string
@@ -105,7 +105,7 @@ class Article
}
/**
* Gibt die Kategorie eines Artikels zurück.
* Gibt die Kategorie eines Beitrags zurück.
* @return string
*/
public function getCategory(): string
@@ -114,7 +114,17 @@ class Article
}
/**
* Gibt die Schlagworte eines Artikels zurück.
* Setzt die Kategorie eines Beitrags.
* @param string $category
* @return void
*/
public function setCategory(string $category)
{
$this->category = $category;
}
/**
* Gibt die Schlagworte eines Beitrags zurück.
* @return string
*/
public function getTags(): string
@@ -123,7 +133,7 @@ class Article
}
/**
* Setzt die Schlagworte eines Artikels.
* Setzt die Schlagworte eines Beitrags.
* @param string $tags
*/
public function setTags(string $tags)
+8 -4
View File
@@ -65,32 +65,36 @@ class LocalArticleManager implements ArticleManagerDAO {
public function updateArticle($id, $article, $author)
{
if (empty($article)) {
// TODO: Implement Exception.
return;
}
// Berechtigungsprüfung:
if ($article->getAuthor() !== $author) {
// TODO: Implement Exception (z.B. throw new Exception("Nicht autorisiert"));
// TODO: Implement Exception.
return;
}
// Beitrag aktualisieren:
$articles = $this->getAllArticles();
$updated = false;
// Beitrag aktualisieren:
foreach ($articles as $index => $storedArticle) {
if (isset($storedArticle['id']) && $storedArticle['id'] == $id) {
$articles[$index] = [
"id" => $id,
"title" => $article->getTitle(),
"content" => $article->getContent(),
"author" => $article->getAuthor(),
"author" => $author,
"category" => $article->getCategory(),
"tags" => $article->getTags(),
"creationDate" => $article->getCreationDate() // Behält das originale Erstelldatum bei
"creationDate" => $article->getCreationDate()
];
$updated = true;
break;
}else{
// TODO: Implement Exception.
return;
}
}