Added Create, Update and Delete to Events and added styles.

This commit is contained in:
2025-07-11 21:16:42 +02:00
parent d4534f9a11
commit 7787cb2956
5 changed files with 163 additions and 80 deletions

View File

@@ -23,19 +23,32 @@ class EventController {
}
public function createEvent() {
if (!isset($_SESSION['is_admin']) || !$_SESSION['is_admin']) {
header('Location: index.php?controller=Event&do=showEvents');
exit;
}
$data = [
'name' => $_POST['name'] ?? null,
'beschreibung' => $_POST['beschreibung'] ?? null,
'standortid' => $_POST['standortid'] ?? null,
'datum_von' => $_POST['datum_von'] ?? null,
'datum_bis' => $_POST['datum_bis'] ?? null,
'max_tickets' => $_POST['max_tickets'] ?? null,
'preis' => $_POST['preis'] ?? null
'name' => $_POST['name'] ?? '',
'start_date' => $_POST['start_date'] ?? '',
'end_date' => $_POST['end_date'] ?? '',
'location_id' => $_POST['location_id'] ?? '',
'description' => $_POST['description'] ?? '',
'max_tickets' => $_POST['max_tickets'] ?? '',
'ticket_price' => $_POST['ticket_price'] ?? ''
];
$errors = [];
if (empty($data['name']) || empty($data['start_date']) || empty($data['end_date']) || empty($data['location_id']) || empty($data['description']) || empty($data['max_tickets']) || empty($data['ticket_price'])) {
$errors['event'] = 'Bitte alle Felder ausfüllen.';
}
if (!empty($errors)) {
$standortModel = new StandortModel();
$locations = $standortModel->getStandorte();
$this->view->setVars(['errors' => $errors, 'validData' => $data, 'locations' => $locations]);
$this->view->setDoMethodName('showCreateEvent');
return;
}
$this->model->createEvent($data);
$this->view->setVars(['event' => $data]);
exit;
$this->view->setDoMethodName('showCreateForwarding');
}
public function editEventForm() {
@@ -64,9 +77,12 @@ class EventController {
}
public function showUpdateEvent() {
if (!isset($_SESSION['is_admin']) || !$_SESSION['is_admin']) {
header('Location: index.php?controller=Event&do=showEvents');
exit;
}
$id = $_GET['event_id'] ?? null;
if (!$id) {
// handle error, e.g., redirect or show error message
$this->view->setVars(['error' => 'Keine Event-ID angegeben.']);
return;
}
@@ -75,27 +91,33 @@ class EventController {
$this->view->setVars(['error' => 'Event nicht gefunden.']);
return;
}
// Map DB fields to view fields if needed
$standortModel = new StandortModel();
$location = $standortModel->getStandort($event['location_id']);
$eventView = [
'id' => $event['event_id'],
'name' => $event['name'],
'start_date' => $event['start_date'],
'end_date' => $event['end_date'],
'location_id' => $event['location_id'],
'location_name' => $location['city'] ?? '',
'description' => $event['description'],
'max_tickets' => $event['max_tickets'],
'ticket_price' => $event['ticket_price'],
];
// Fetch location name (city)
$standortModel = new StandortModel();
$location = $standortModel->getStandort($event['location_id']);
$eventView['location_name'] = $location['city'] ?? '';
$this->view->setVars(['event' => $eventView]);
$this->view->setVars(['event' => $eventView, 'errors' => []]);
}
public function showCreateEvent() {
$standortModel = new \Blog\Model\StandortModel();
if (!isset($_SESSION['is_admin']) || !$_SESSION['is_admin']) {
header('Location: index.php?controller=Event&do=showEvents');
exit;
}
$standortModel = new StandortModel();
$locations = $standortModel->getStandorte();
$this->view->setVars(['locations' => $locations]);
$this->view->setVars([
'locations' => $locations,
'errors' => [],
'validData' => []
]);
}
}