model = new NewsModel(); $this->view = $view; } public function showNews() { $news = $this->model->getNews(); $this->view->setVars(['news' => $news]); } public function createNews() { if (!isset($_SESSION['is_admin']) || !$_SESSION['is_admin']) { header('Location: index.php?controller=News&do=showNews'); exit; } $data = [ '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]); $this->view->setDoMethodName('createNewsForm'); return; } $this->model->createNews($data); $this->view->setDoMethodName('showCreateSuccess'); } public function createNewsForm() { if (!isset($_SESSION['is_admin']) || !$_SESSION['is_admin']) { header('Location: index.php?controller=News&do=showNews'); exit; } $this->view->setVars([ 'errors' => [], 'validData' => [] ]); } public function editNewsForm() { 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() { 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'] ?? '', '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() { if (!isset($_SESSION['is_admin']) || !$_SESSION['is_admin']) { header('Location: index.php?controller=News&do=showNews'); exit; } $id = $_GET['id'] ?? null; if ($id) { $this->model->deleteNews($id); } $this->view->setDoMethodName('showDeleteSuccess'); } public function showNewsDetail() { $id = $_GET['id'] ?? null; if ($id) { $news = $this->model->getNewsById($id); if ($news) { $this->view->setVars(['news' => $news]); return; } } header('Location: index.php?controller=News&do=showNews'); exit; } }