diff --git a/Controller/NewsController.php b/Controller/NewsController.php index 72a0924..3a3a82f 100644 --- a/Controller/NewsController.php +++ b/Controller/NewsController.php @@ -55,19 +55,44 @@ class NewsController { } public function editNewsForm() { - $id = $_GET['newsid']; - $news = $this->model->getNewsById($id); - $this->view->setVars(['news' => $news]); + if (!isset($_SESSION['is_admin']) || !$_SESSION['is_admin']) { + header('Location: index.php?controller=News&do=showNews'); + exit; + } + $id = $_GET['id'] ?? null; + if ($id) { + $news = $this->model->getNewsById($id); + $validData = [ + 'name' => $news['name'] ?? '', + 'description' => $news['description'] ?? '', + 'date' => $news['date'] ?? date('Y-m-d'), + ]; + $this->view->setVars(['validData' => $validData, 'id' => $id, 'errors' => []]); + } } public function updateNews() { - $id = $_POST['newsid'] ?? null; + if (!isset($_SESSION['is_admin']) || !$_SESSION['is_admin']) { + header('Location: index.php?controller=News&do=showNews'); + exit; + } + $id = $_POST['id'] ?? null; $data = [ - 'name' => $_POST['name'], - 'beschreibung' => $_POST['beschreibung'], - 'datum' => $_POST['datum'], + 'name' => $_POST['name'] ?? '', + 'description' => $_POST['description'] ?? '', + 'date' => $_POST['date'] ?? date('Y-m-d'), ]; + $errors = []; + if (empty($data['name']) || empty($data['description']) || empty($data['date'])) { + $errors['news'] = 'Bitte alle Felder ausfüllen.'; + } + if (!empty($errors)) { + $this->view->setVars(['errors' => $errors, 'validData' => $data, 'id' => $id]); + $this->view->setDoMethodName('editNewsForm'); + return; + } $this->model->updateNews($id, $data); + $this->view->setDoMethodName('showEditSuccess'); } public function deleteNews() { diff --git a/Model/NewsModel.php b/Model/NewsModel.php index 3cb02ec..a9ad2b1 100644 --- a/Model/NewsModel.php +++ b/Model/NewsModel.php @@ -24,9 +24,9 @@ class NewsModel extends Database { $pdo = $this->linkDB(); $sql = "UPDATE news SET name = :name, description = :description, date = :date WHERE news_id = :news_id;"; $params = [ - ":name" => $news['titel'], - ":description" => $news['inhalt'], - ":date" => $news['datum'], + ":name" => $news['name'], + ":description" => $news['description'], + ":date" => $news['date'], ":news_id" => $newsId ]; try { diff --git a/Views/News/editNewsForm.phtml b/Views/News/editNewsForm.phtml new file mode 100644 index 0000000..697d215 --- /dev/null +++ b/Views/News/editNewsForm.phtml @@ -0,0 +1,21 @@ +
+
+

News bearbeiten

+ +
+ +
+ + + + + + + + + + +
+ Zurück zur Übersicht +
+
\ No newline at end of file diff --git a/Views/News/showEditSuccess.phtml b/Views/News/showEditSuccess.phtml new file mode 100644 index 0000000..2a51dfa --- /dev/null +++ b/Views/News/showEditSuccess.phtml @@ -0,0 +1,14 @@ +
+
+

News erfolgreich bearbeitet!

+

Du wirst in wenigen Sekunden zur Übersicht weitergeleitet...

+
+
+ + \ No newline at end of file