EventController, TicketController + Model + essenzielle Funktionen

This commit is contained in:
Karsten Tlotzek 2025-06-16 15:12:03 +02:00
parent 5bde268b89
commit 6e3e3708b2
8 changed files with 251 additions and 7 deletions

View File

@ -13,14 +13,12 @@ class ContactController
private $labels = array("name" => "Name", "email" => "E-Mail-Adresse", "content" => "Nachricht");
public function __construct($view)
{
public function __construct($view) {
$this->db = new ContactModel();
$this->view = $view;
}
public function showContactForm()
{
public function showContactForm() {
$this->view->setVars([
'labels' => $this->labels,
'validData' => $this->validData,
@ -28,8 +26,7 @@ class ContactController
]);
}
public function showConfirmation()
{
public function showConfirmation() {
}

View File

@ -0,0 +1,52 @@
<?php
namespace Blog\Controller;
use Blog\Model\EventModel;
class EventController {
protected $view;
protected $eventModel;
public function __construct($view) {
$this->eventModel = new EventModel();
$this->view = $view;
}
public function updateEvent() {
$event = array(
"ausstellungid" => $_POST['ausstellungid'],
"standortid" => $_POST['standortid'],
"datum_von" => $_POST['datumVon'],
"datum_bis" => $_POST['datumBis'],
"name" => $_POST['name'],
"beschreibung" => $_POST['beschreibung'],
"max_tickets" => $_POST['max_tickets'],
"preis" => $_POST['preis'],
);
$this->eventModel->updateEvent($event);
$this->view->setVars([
"ausstellungid" => $_POST['ausstellungid'],
]);
}
public function createEvent() {
$event = array(
"standortid" => $_POST['standortid'],
"datum_von" => $_POST['datumVon'],
"datum_bis" => $_POST['datumBis'],
"name" => $_POST['name'],
"beschreibung" => $_POST['beschreibung'],
"max_tickets" => $_POST['max_tickets'],
"preis" => $_POST['preis'],
);
$this->eventModel->createEvent($event);
$this->view->setVars([
"name" => $_POST['name'],
]);
}
}

View File

@ -0,0 +1,42 @@
<?php
namespace Blog\Controller;
use Blog\Model\EventModel;
use Blog\Model\TicketModel;
class TicketController {
protected $view;
protected $ticketModel;
protected $eventModel;
public function __construct($view)
{
$this->ticketModel = new TicketModel();
$this->eventModel = new EventModel();
$this->view = $view;
}
public function buyTicket() {
$userId = $_POST['userId'];
$eventId = $_POST['eventId'];
$gueltigkeitsdatum = $_POST['gueltigkeitsdatum'];
$values = array("userId" => $userId,
"eventId" => $eventId,
"gueltigkeitsdatum" => $gueltigkeitsdatum);
$this->ticketModel->buyTicket($values);
$event = $this->eventModel->getEvent($eventId);
$this->view->setVars([
"event" => $event[0]
]
);
}
private function hasTicket($userId, $eventId, $gueltigkeitsdatum) {
}
}

86
Model/EventModel.php Normal file
View File

@ -0,0 +1,86 @@
<?php
namespace Blog\Model;
use PDOException;
class EventModel extends Database {
public function showEvents() {
}
public function updateEvent($event) {
$pdo = $this->linkDB();
$sql = "UPDATE ausstellung SET
standortid = :standortid,
datum_von = :datum_von,
datum_bis = :datum_bis,
name = :name,
beschreibung = :beschreibung,
max_tickets = :max_tickets,
preis = :preis
WHERE ausstellungid = :ausstellungid;";
$params = array(
":standortid" => $event['standortid'],
":datum_von" => $event['datum_von'],
":datum_bis" => $event['datum_bis'],
":name" => $event['name'],
":beschreibung" => $event['beschreibung'],
":max_tickets" => $event['max_tickets'],
":preis" => $event['preis'],
":ausstellungid" => $event['ausstellungid']
);
try {
$sth = $pdo->prepare($sql);
$sth->execute($params);
} catch (PDOException $e) {
new \Blog\Library\ErrorMsg("Fehler beim Aktualisieren der Daten.", $e);
die;
}
}
public function createEvent($event) {
$pdo = $this->linkDB();
$sql = "INSERT INTO ausstellung (`standortid`, `datum_von`, `datum_bis`, `name`, `beschreibung`, `max_tickets`, `preis`) VALUES (
:standortid, :datum_von, :datum_bis, :name, :beschreibung, :max_tickets, :preis);";
$params = array(
":standortid" => $event['standortid'],
":datum_von" => $event['datum_von'],
":datum_bis" => $event['datum_bis'],
":name" => $event['name'],
":beschreibung" => $event['beschreibung'],
":max_tickets" => $event['max_tickets'],
":preis" => $event['preis']
);
try {
$sth = $pdo->prepare($sql);
$sth->execute($params);
return $sth;
} catch (PDOException $e) {
new \Blog\Library\ErrorMsg("Fehler beim Schreiben der Daten.", $e);
die;
}
}
public function getEvent($id) {
$pdo = $this->linkDB();
$sql = "SELECT * FROM `ausstellung` WHERE `ausstellungid` = :eventId;";
$params = array("eventId" => $id);
try {
$sth = $pdo->prepare($sql);
$sth->execute($params);
$erg = $sth->fetchAll(\PDO::FETCH_ASSOC);
return $erg[0];
} catch (PDOException $e) {
new \Blog\Library\ErrorMsg("Fehler beim Schreiben der Daten.", $e);
die;
}
}
}

31
Model/TicketModel.php Normal file
View File

@ -0,0 +1,31 @@
<?php
namespace Blog\Model;
use PDOException;
class TicketModel extends Database {
public function buyTicket($values) {
$sql = "INSERT INTO ticket (`userId`, `eventId`, `kaufdatum`, `gueltigkeitsdatum`) VALUES (
:userId, :eventId, :kaufdatum, :gueltigkeitsdatum);";
$pdo = $this->linkDB();
$params = array(
":userId" => $values['userId'],
":eventId" => $values['eventId'],
":kaufdatum" => $values['kaufdatum'],
":gueltigkeitsdatum" => $values['gueltigkeitsdatum']
);
try {
$sth = $pdo->prepare($sql);
$sth->execute($params);
} catch (PDOException $e) {
new \Blog\Library\ErrorMsg("Fehler beim Schreiben der Daten.", $e);
die;
}
return true;
}
}

View File

@ -0,0 +1,12 @@
<?php
include dirname(__DIR__).'/header.phtml';
?>
<div class="msg">
<p>Das Event "<?php echo $name?>" wurde erfolgreich erstellt!</p>
<a href="?controller=Welcome&do=showWelcome">Weiter</a>
</div>
<?php include dirname(__DIR__).'/footer.phtml'; ?>

View File

@ -0,0 +1,12 @@
<?php
include dirname(__DIR__).'/header.phtml';
?>
<div class="msg">
<p>Das Event mit der ID "<?php echo $ausstellungid?>" wurde erfolgreich bearbeitet!</p>
<a href="?controller=Welcome&do=showWelcome">Weiter</a>
</div>
<?php include dirname(__DIR__).'/footer.phtml'; ?>

View File

@ -0,0 +1,12 @@
<?php
include dirname(__DIR__).'/header.phtml';
?>
<div class="msg">
<p>Ihr Ticket für das Event "<?php echo $event['name']?>" wurde erfolgreich gekauft!</p>
<a href="?controller=Welcome&do=showWelcome">Weiter</a>
</div>
<?php include dirname(__DIR__).'/footer.phtml'; ?>