Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a33f3b27fb | |||
| 71a8dd5f17 | |||
| e86fef1766 | |||
| 3cb63f791a | |||
| f96415bfe6 | |||
| 365f70af98 | |||
| c1ddbfdf48 | |||
| e575e3dfa8 | |||
| 560f53cfb6 | |||
| d8c350c20f | |||
| 5b718f24ed | |||
| 6634bee77b | |||
| 2a3e73d409 | |||
| 2cd68873de | |||
| d987ca271f | |||
| 0a37dd4b8b | |||
| b4ca25db3d | |||
| 738b36c406 |
@@ -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
@@ -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>
|
||||
|
||||
|
||||
@@ -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">
|
||||
|
||||
|
||||
@@ -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);} ?>
|
||||
|
||||
@@ -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";
|
||||
|
||||
@@ -5,12 +5,17 @@ require_once '../model/ArticleManager.php';
|
||||
require_once '../model/Article.php';
|
||||
|
||||
if ($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
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
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user