Fixed error and Implemented BuyTickets views Model and Controller. Added Button to Events and Added Styles
This commit is contained in:
parent
c306a59fec
commit
a881b3933d
@ -629,4 +629,27 @@ td a:hover {
|
|||||||
max-width: 1100px;
|
max-width: 1100px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.event-details {
|
||||||
|
background: white;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.event-details h2 {
|
||||||
|
margin-top: 0;
|
||||||
|
color: #333;
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.event-details p {
|
||||||
|
margin: 8px 0;
|
||||||
|
line-height: 1.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.event-details strong {
|
||||||
|
color: #4d4d4d;
|
||||||
}
|
}
|
@ -106,8 +106,12 @@ class EventController {
|
|||||||
$id = $_GET['event_id'] ?? null;
|
$id = $_GET['event_id'] ?? null;
|
||||||
if ($id) {
|
if ($id) {
|
||||||
$this->model->deleteEvent($id);
|
$this->model->deleteEvent($id);
|
||||||
|
$this->view->setVars(['id' => $id]);
|
||||||
|
$this->view->setDoMethodName('deleteEvent');
|
||||||
|
} else {
|
||||||
|
header('Location: index.php?controller=Event&do=showEvents');
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
$this->view->setDoMethodName('deleteEvent');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function showUpdateEvent() {
|
public function showUpdateEvent() {
|
||||||
|
@ -3,37 +3,120 @@
|
|||||||
namespace Blog\Controller;
|
namespace Blog\Controller;
|
||||||
|
|
||||||
use Blog\Model\TicketModel;
|
use Blog\Model\TicketModel;
|
||||||
|
use Blog\Model\EventModel;
|
||||||
|
use Blog\Model\StandortModel;
|
||||||
|
|
||||||
class TicketController {
|
class TicketController {
|
||||||
|
|
||||||
private $ticketModel;
|
private $ticketModel;
|
||||||
|
private $eventModel;
|
||||||
private $view;
|
private $view;
|
||||||
|
|
||||||
public function __construct($view) {
|
public function __construct($view) {
|
||||||
$this->ticketModel = new TicketModel();
|
$this->ticketModel = new TicketModel();
|
||||||
|
$this->eventModel = new EventModel();
|
||||||
$this->view = $view;
|
$this->view = $view;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function showTickets() {
|
public function showTickets() {
|
||||||
$tickets = $this->ticketModel->getTickets();
|
if (!isset($_SESSION['user_id'])) {
|
||||||
|
header('Location: index.php?controller=Auth&do=showLoginForm');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tickets = $this->ticketModel->getUserTickets($_SESSION['user_id']);
|
||||||
$this->view->setVars(['tickets' => $tickets]);
|
$this->view->setVars(['tickets' => $tickets]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function showBuyTicketForm() {
|
||||||
|
if (!isset($_SESSION['user_id'])) {
|
||||||
|
header('Location: index.php?controller=Auth&do=showLoginForm');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$event_id = $_GET['event_id'] ?? null;
|
||||||
|
if (!$event_id) {
|
||||||
|
header('Location: index.php?controller=Event&do=showEvents');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$event = $this->eventModel->getEvent($event_id);
|
||||||
|
if (!$event) {
|
||||||
|
header('Location: index.php?controller=Event&do=showEvents');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if user already has a ticket for this event
|
||||||
|
$hasTicket = $this->ticketModel->hasTicket($_SESSION['user_id'], $event_id);
|
||||||
|
|
||||||
|
$this->view->setVars([
|
||||||
|
'event' => $event,
|
||||||
|
'hasTicket' => $hasTicket['count'] > 0
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
public function buyTicket() {
|
public function buyTicket() {
|
||||||
|
if (!isset($_SESSION['user_id'])) {
|
||||||
|
header('Location: index.php?controller=Auth&do=showLoginForm');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$event_id = $_POST['event_id'] ?? null;
|
||||||
|
if (!$event_id) {
|
||||||
|
$this->view->setVars(['error' => 'Keine Event-ID angegeben.']);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$event = $this->eventModel->getEvent($event_id);
|
||||||
|
if (!$event) {
|
||||||
|
$this->view->setVars(['error' => 'Event nicht gefunden.']);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if user already has a ticket for this event
|
||||||
|
$hasTicket = $this->ticketModel->hasTicket($_SESSION['user_id'], $event_id);
|
||||||
|
if ($hasTicket['count'] > 0) {
|
||||||
|
$this->view->setVars(['error' => 'Sie haben bereits ein Ticket für dieses Event.']);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate valid until date (event end date + 30 days)
|
||||||
|
$valid_until = date('Y-m-d', strtotime($event['end_date'] . ' +30 days'));
|
||||||
|
|
||||||
$data = [
|
$data = [
|
||||||
'userid' => $_POST['userid'],
|
'user_id' => $_SESSION['user_id'],
|
||||||
'eventid' => $_POST['eventid'],
|
'event_id' => $event_id,
|
||||||
'kaufdatum' => date('Y-m-d'),
|
'purchase_date' => date('Y-m-d'),
|
||||||
'gültigkeitsdatum' => $_POST['gültigkeitsdatum']
|
'valid_until' => $valid_until
|
||||||
];
|
];
|
||||||
$erg = $this->ticketModel->buyTicket($data);
|
|
||||||
$this->view->setVars(['ticket' => $erg]);
|
try {
|
||||||
|
$ticket_id = $this->ticketModel->buyTicket($data);
|
||||||
|
$this->view->setVars([
|
||||||
|
'event' => $event,
|
||||||
|
'ticket_id' => $ticket_id,
|
||||||
|
'purchase_date' => $data['purchase_date'],
|
||||||
|
'valid_until' => $valid_until
|
||||||
|
]);
|
||||||
|
$this->view->setDoMethodName('buyTicket');
|
||||||
|
} catch (Exception $e) {
|
||||||
|
$this->view->setVars(['error' => 'Fehler beim Kauf des Tickets: ' . $e->getMessage()]);
|
||||||
|
$this->view->setDoMethodName('showBuyTicketForm');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteTicket() {
|
public function deleteTicket() {
|
||||||
$ticketid = $_GET['ticketid'] ?? null;
|
if (!isset($_SESSION['user_id'])) {
|
||||||
if ($ticketid) {
|
header('Location: index.php?controller=Auth&do=showLoginForm');
|
||||||
$this->ticketModel->deleteTicket($ticketid);
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$ticket_id = $_GET['ticket_id'] ?? null;
|
||||||
|
if ($ticket_id) {
|
||||||
|
$this->ticketModel->deleteTicket($ticket_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
header('Location: index.php?controller=Ticket&do=showTickets');
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -8,7 +8,12 @@ class TicketModel extends Database {
|
|||||||
|
|
||||||
public function getTickets() {
|
public function getTickets() {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
$sql = "SELECT * FROM ticket ORDER BY ticket_id ASC;";
|
$sql = "SELECT t.*, e.name as event_name, e.start_date, e.end_date, e.ticket_price,
|
||||||
|
l.city as location_city, l.street as location_street, l.house_number as location_house_number
|
||||||
|
FROM ticket t
|
||||||
|
JOIN event e ON t.event_id = e.event_id
|
||||||
|
JOIN location l ON e.location_id = l.location_id
|
||||||
|
ORDER BY t.purchase_date DESC;";
|
||||||
try {
|
try {
|
||||||
$sth = $pdo->prepare($sql);
|
$sth = $pdo->prepare($sql);
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
@ -19,8 +24,52 @@ class TicketModel extends Database {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getUserTickets($user_id) {
|
||||||
|
$pdo = $this->linkDB();
|
||||||
|
$sql = "SELECT t.*, e.name as event_name, e.start_date, e.end_date, e.ticket_price,
|
||||||
|
l.city as location_city, l.street as location_street, l.house_number as location_house_number
|
||||||
|
FROM ticket t
|
||||||
|
JOIN event e ON t.event_id = e.event_id
|
||||||
|
JOIN location l ON e.location_id = l.location_id
|
||||||
|
WHERE t.user_id = :user_id
|
||||||
|
ORDER BY t.purchase_date DESC;";
|
||||||
|
$params = [":user_id" => $user_id];
|
||||||
|
try {
|
||||||
|
$sth = $pdo->prepare($sql);
|
||||||
|
$sth->execute($params);
|
||||||
|
return $sth->fetchAll(\PDO::FETCH_ASSOC);
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
new \Blog\Library\ErrorMsg("Fehler beim Lesen der Benutzer-Tickets.", $e);
|
||||||
|
die;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function buyTicket($data) {
|
public function buyTicket($data) {
|
||||||
$pdo = $this->linkDB();
|
$pdo = $this->linkDB();
|
||||||
|
|
||||||
|
// First check if the event still has available tickets
|
||||||
|
$checkSql = "SELECT e.max_tickets, COUNT(t.ticket_id) as sold_tickets
|
||||||
|
FROM event e
|
||||||
|
LEFT JOIN ticket t ON e.event_id = t.event_id
|
||||||
|
WHERE e.event_id = :event_id
|
||||||
|
GROUP BY e.event_id, e.max_tickets";
|
||||||
|
|
||||||
|
try {
|
||||||
|
$checkStmt = $pdo->prepare($checkSql);
|
||||||
|
$checkStmt->execute([':event_id' => $data['event_id']]);
|
||||||
|
$eventInfo = $checkStmt->fetch(\PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
|
if (!$eventInfo) {
|
||||||
|
throw new \Exception("Event nicht gefunden.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($eventInfo['sold_tickets'] >= $eventInfo['max_tickets']) {
|
||||||
|
throw new \Exception("Alle Tickets für dieses Event sind bereits verkauft.");
|
||||||
|
}
|
||||||
|
} catch (PDOException $e) {
|
||||||
|
throw new \Exception("Fehler bei der Ticketverfügbarkeitsprüfung.");
|
||||||
|
}
|
||||||
|
|
||||||
$sql = "INSERT INTO ticket (user_id, event_id, purchase_date, valid_until)
|
$sql = "INSERT INTO ticket (user_id, event_id, purchase_date, valid_until)
|
||||||
VALUES (:user_id, :event_id, :purchase_date, :valid_until);";
|
VALUES (:user_id, :event_id, :purchase_date, :valid_until);";
|
||||||
$params = [
|
$params = [
|
||||||
@ -34,8 +83,7 @@ class TicketModel extends Database {
|
|||||||
$sth->execute($params);
|
$sth->execute($params);
|
||||||
return $pdo->lastInsertId();
|
return $pdo->lastInsertId();
|
||||||
} catch (PDOException $e) {
|
} catch (PDOException $e) {
|
||||||
new \Blog\Library\ErrorMsg("Fehler beim Kauf des Tickets.", $e);
|
throw new \Exception("Fehler beim Kauf des Tickets.");
|
||||||
die;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,9 +4,12 @@ include dirname(__DIR__).'/header.phtml';
|
|||||||
|
|
||||||
<div class="inhalt">
|
<div class="inhalt">
|
||||||
<div class="msg">
|
<div class="msg">
|
||||||
<p>Das Event mit der id"<?php echo $id?>" wurde erfolgreich gelöscht!</p>
|
<p>Das Event mit der ID "<?php echo htmlspecialchars($id); ?>" wurde erfolgreich gelöscht!</p>
|
||||||
<a href="?controller=Event&do=showEvents">Weiter</a>
|
<p>Sie werden in 3 Sekunden zur Event-Übersicht weitergeleitet...</p>
|
||||||
|
<a href="?controller=Event&do=showEvents">Jetzt zur Event-Übersicht</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<meta http-equiv="refresh" content="3;url=index.php?controller=Event&do=showEvents">
|
||||||
|
|
||||||
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
@ -15,20 +15,30 @@
|
|||||||
<th>Beschreibung</th>
|
<th>Beschreibung</th>
|
||||||
<th>Von</th>
|
<th>Von</th>
|
||||||
<th>Bis</th>
|
<th>Bis</th>
|
||||||
<th>Max. Tickets</th>
|
<th>Preis</th>
|
||||||
<?php if (isset($_SESSION['is_admin']) && $_SESSION['is_admin']): ?>
|
<th>Tickets</th>
|
||||||
|
<?php if (isset($_SESSION['user_id'])): ?>
|
||||||
<th>Aktionen</th>
|
<th>Aktionen</th>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
<?php if (isset($_SESSION['is_admin']) && $_SESSION['is_admin']): ?>
|
||||||
|
<th>Admin</th>
|
||||||
|
<?php endif; ?>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<?php foreach ($events as $event): ?>
|
<?php foreach ($events as $event): ?>
|
||||||
<tr>
|
<tr class="event-row" data-event-id="<?php echo $event['event_id']; ?>" style="cursor: pointer;">
|
||||||
<td><?php echo htmlspecialchars($event['name']); ?></td>
|
<td><?php echo htmlspecialchars($event['name']); ?></td>
|
||||||
<td><?php echo nl2br(htmlspecialchars($event['description'])); ?></td>
|
<td><?php echo nl2br(htmlspecialchars($event['description'])); ?></td>
|
||||||
<td><?php echo date('d.m.Y', strtotime($event['start_date'])); ?></td>
|
<td><?php echo date('d.m.Y', strtotime($event['start_date'])); ?></td>
|
||||||
<td><?php echo date('d.m.Y', strtotime($event['end_date'])); ?></td>
|
<td><?php echo date('d.m.Y', strtotime($event['end_date'])); ?></td>
|
||||||
|
<td><?php echo number_format($event['ticket_price'], 2, ',', '.'); ?> €</td>
|
||||||
<td><?php echo (int) $event['max_tickets']; ?></td>
|
<td><?php echo (int) $event['max_tickets']; ?></td>
|
||||||
|
<?php if (isset($_SESSION['user_id'])): ?>
|
||||||
|
<td>
|
||||||
|
<a href="?controller=Ticket&do=showBuyTicketForm&event_id=<?php echo $event['event_id']; ?>" class="admin-btn">Ticket kaufen</a>
|
||||||
|
</td>
|
||||||
|
<?php endif; ?>
|
||||||
<?php if (isset($_SESSION['is_admin']) && $_SESSION['is_admin']): ?>
|
<?php if (isset($_SESSION['is_admin']) && $_SESSION['is_admin']): ?>
|
||||||
<td>
|
<td>
|
||||||
<a href="?controller=Event&do=showUpdateEvent&event_id=<?php echo $event['event_id']; ?>" class="admin-btn">Bearbeiten</a>
|
<a href="?controller=Event&do=showUpdateEvent&event_id=<?php echo $event['event_id']; ?>" class="admin-btn">Bearbeiten</a>
|
||||||
@ -39,9 +49,29 @@
|
|||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
const eventRows = document.querySelectorAll('.event-row');
|
||||||
|
|
||||||
|
eventRows.forEach(function(row) {
|
||||||
|
row.addEventListener('dblclick', function(e) {
|
||||||
|
// Don't trigger if clicking on a link or button
|
||||||
|
if (e.target.tagName === 'A' || e.target.tagName === 'BUTTON') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const eventId = this.getAttribute('data-event-id');
|
||||||
|
if (eventId) {
|
||||||
|
window.location.href = 'index.php?controller=Ticket&do=showBuyTicketForm&event_id=' + eventId;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
<?php else: ?>
|
<?php else: ?>
|
||||||
<p>Derzeit sind keine Ausstellungen verfügbar.</p>
|
<p>Derzeit sind keine Ausstellungen verfügbar.</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
@ -2,11 +2,32 @@
|
|||||||
include dirname(__DIR__).'/header.phtml';
|
include dirname(__DIR__).'/header.phtml';
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="msg">
|
<div class="inhalt">
|
||||||
<p>Ihr Ticket für das Event "<?php echo $event['name']?>" wurde erfolgreich gekauft!</p>
|
<div class="form-container">
|
||||||
<a href="?controller=Welcome&do=showWelcome">Weiter</a>
|
<h1>Ticket erfolgreich gekauft!</h1>
|
||||||
|
|
||||||
|
<?php if (isset($event) && isset($ticket_id)): ?>
|
||||||
|
<div class="status-box">
|
||||||
|
<h2><?= htmlspecialchars($event['name']) ?></h2>
|
||||||
|
<p><strong>Ticket-ID:</strong> #<?= $ticket_id ?></p>
|
||||||
|
<p><strong>Kaufdatum:</strong> <?= date('d.m.Y', strtotime($purchase_date)) ?></p>
|
||||||
|
<p><strong>Gültig bis:</strong> <?= date('d.m.Y', strtotime($valid_until)) ?></p>
|
||||||
|
<p><strong>Preis:</strong> <?= number_format($event['ticket_price'], 2, ',', '.') ?> €</p>
|
||||||
|
<p><strong>Datum:</strong> <?= date('d.m.Y', strtotime($event['start_date'])) ?> - <?= date('d.m.Y', strtotime($event['end_date'])) ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div style="text-align:center; margin-top: 1.5em;">
|
||||||
|
<a href="?controller=Ticket&do=showTickets" class="admin-btn">Meine Tickets anzeigen</a>
|
||||||
|
<br><br>
|
||||||
|
<a href="?controller=Event&do=showEvents">Zurück zu den Events</a>
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="error-box">Fehler beim Anzeigen der Ticket-Details.</div>
|
||||||
|
<div style="text-align:center; margin-top: 1.5em;">
|
||||||
|
<a href="?controller=Event&do=showEvents">Zurück zu den Events</a>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
52
Views/Ticket/buyTicketForm.phtml
Normal file
52
Views/Ticket/buyTicketForm.phtml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
include dirname(__DIR__).'/header.phtml';
|
||||||
|
?>
|
||||||
|
|
||||||
|
<div class="inhalt">
|
||||||
|
<div class="form-container">
|
||||||
|
<h1>Ticket kaufen</h1>
|
||||||
|
|
||||||
|
<?php if (isset($error)): ?>
|
||||||
|
<div class="error-box"><?= htmlspecialchars($error) ?></div>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<?php if (isset($event)): ?>
|
||||||
|
<div class="event-details">
|
||||||
|
<h2><?= htmlspecialchars($event['name']) ?></h2>
|
||||||
|
<p><strong>Beschreibung:</strong> <?= nl2br(htmlspecialchars($event['description'])) ?></p>
|
||||||
|
<p><strong>Datum:</strong> <?= date('d.m.Y', strtotime($event['start_date'])) ?> - <?= date('d.m.Y', strtotime($event['end_date'])) ?></p>
|
||||||
|
<p><strong>Preis:</strong> <?= number_format($event['ticket_price'], 2, ',', '.') ?> €</p>
|
||||||
|
<p><strong>Max. Tickets:</strong> <?= (int) $event['max_tickets'] ?></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php if ($hasTicket): ?>
|
||||||
|
<div class="status-box">
|
||||||
|
<p>Sie haben bereits ein Ticket für dieses Event gekauft.</p>
|
||||||
|
<a href="?controller=Ticket&do=showTickets" class="admin-btn">Meine Tickets anzeigen</a>
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<form class="form-horizontal" action="index.php" method="post">
|
||||||
|
<input type="hidden" name="controller" value="Ticket">
|
||||||
|
<input type="hidden" name="do" value="buyTicket">
|
||||||
|
<input type="hidden" name="event_id" value="<?= $event['event_id'] ?>">
|
||||||
|
|
||||||
|
<p>Möchten Sie ein Ticket für dieses Event kaufen?</p>
|
||||||
|
<p><strong>Preis:</strong> <?= number_format($event['ticket_price'], 2, ',', '.') ?> €</p>
|
||||||
|
|
||||||
|
<button class="button-login" type="submit">Ticket kaufen</button>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div style="text-align:center; margin-top: 1.5em;">
|
||||||
|
<a href="?controller=Event&do=showEvents">Zurück zu den Events</a>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="error-box">Event nicht gefunden.</div>
|
||||||
|
<div style="text-align:center; margin-top: 1.5em;">
|
||||||
|
<a href="?controller=Event&do=showEvents">Zurück zu den Events</a>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
@ -1,8 +1,53 @@
|
|||||||
|
<?php
|
||||||
|
include dirname(__DIR__).'/header.phtml';
|
||||||
|
?>
|
||||||
|
|
||||||
<div class="inhalt">
|
<div class="inhalt">
|
||||||
<div class="tickets-container">
|
<div class="content-container">
|
||||||
<h1>Tickets</h1>
|
<div class="event-header">
|
||||||
<div class="tickets-container-inhalt">
|
<h2>Meine Tickets</h2>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<?php if (!empty($tickets)): ?>
|
||||||
|
<div class="event-container-inhalt">
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Event</th>
|
||||||
|
<th>Datum</th>
|
||||||
|
<th>Standort</th>
|
||||||
|
<th>Preis</th>
|
||||||
|
<th>Kaufdatum</th>
|
||||||
|
<th>Gültig bis</th>
|
||||||
|
<th>Aktionen</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<?php foreach ($tickets as $ticket): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?= htmlspecialchars($ticket['event_name']) ?></td>
|
||||||
|
<td><?= date('d.m.Y', strtotime($ticket['start_date'])) ?> - <?= date('d.m.Y', strtotime($ticket['end_date'])) ?></td>
|
||||||
|
<td><?= htmlspecialchars($ticket['location_street'] . ' ' . $ticket['location_house_number'] . ', ' . $ticket['location_city']) ?></td>
|
||||||
|
<td><?= number_format($ticket['ticket_price'], 2, ',', '.') ?> €</td>
|
||||||
|
<td><?= date('d.m.Y', strtotime($ticket['purchase_date'])) ?></td>
|
||||||
|
<td><?= date('d.m.Y', strtotime($ticket['valid_until'])) ?></td>
|
||||||
|
<td>
|
||||||
|
<a href="?controller=Ticket&do=deleteTicket&ticket_id=<?= $ticket['ticket_id'] ?>"
|
||||||
|
class="admin-btn"
|
||||||
|
onclick="return confirm('Ticket wirklich löschen?')">Löschen</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="status-box">
|
||||||
|
<p>Sie haben noch keine Tickets gekauft.</p>
|
||||||
|
<a href="?controller=Event&do=showEvents" class="admin-btn">Events anzeigen</a>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
Loading…
x
Reference in New Issue
Block a user