Compare commits
21 Commits
frontendba
...
9ce7a6cfd3
Author | SHA1 | Date | |
---|---|---|---|
9ce7a6cfd3 | |||
ca757d1723 | |||
717d361dbb | |||
404e846418 | |||
3ce61ace17 | |||
3dc68dd0bc | |||
b9fc6bcdd5 | |||
a50b48592b | |||
1691370db6 | |||
a6b672ee7e | |||
97c03d817e | |||
877be4e567 | |||
ef3349c6e4 | |||
415d8120e5 | |||
a4eef4e4e3 | |||
37ee931954 | |||
c6358b5ea6 | |||
cc4bc791c9 | |||
586322a189 | |||
1416fd7fa0 | |||
16a91cc028 |
393
CSS/style.css
393
CSS/style.css
@@ -4,9 +4,22 @@ body {
|
||||
font-size: 15px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100vw;
|
||||
max-width: 100vw;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#wrapper {
|
||||
|
||||
flex: 1 0 auto;
|
||||
min-height: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
margin-bottom: 20px;
|
||||
width: 100vw;
|
||||
max-width: 100vw;
|
||||
}
|
||||
|
||||
a {
|
||||
@@ -16,6 +29,11 @@ a {
|
||||
#navigation {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 1000;
|
||||
background: #BAC8D4;
|
||||
width: 100vw;
|
||||
}
|
||||
.link-container {
|
||||
display: grid;
|
||||
@@ -38,17 +56,19 @@ a {
|
||||
background-size: contain;
|
||||
}
|
||||
#footer {
|
||||
position: absolute;
|
||||
position: relative;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 240px;
|
||||
width: 100vw;
|
||||
height: 180px;
|
||||
background-color: #BAC8D4;
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: 6% 5% 43% 32% 14%;
|
||||
grid-template-rows: 45% 10% 45%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
z-index: 999;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.container-zahlungsmittel {
|
||||
@@ -61,11 +81,16 @@ a {
|
||||
}
|
||||
|
||||
.inhalt {
|
||||
flex: 1 1 auto;
|
||||
display: flex;
|
||||
height: 10px;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
width: 100vw;
|
||||
min-height: 0;
|
||||
min-width: 0;
|
||||
margin: 0;
|
||||
padding: 0 2vw;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.zahlungsmittel-img {
|
||||
@@ -102,141 +127,251 @@ a {
|
||||
padding-right: 30px;
|
||||
}
|
||||
.container-welcome-inhalt {
|
||||
grid-template-columns: 39% 61%;
|
||||
display: grid;
|
||||
width: 110em;
|
||||
min-height: 80%;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
width: 100%;
|
||||
max-width: 900px;
|
||||
min-height: 200px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.beispiel-austellung1-img {
|
||||
height: 480px;
|
||||
width: 670px;
|
||||
background-image: url("../images/beispiel-austellung1.png");
|
||||
background-position: center;
|
||||
background-size: contain;
|
||||
justify-self: right;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.beispiel-austellung2-img {
|
||||
background-image: url("../images/beispiel-austellung2.png");
|
||||
background-position: center;
|
||||
background-size: contain;
|
||||
justify-self: right;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
/* Login Page Styles */
|
||||
.login-page-bg {
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
background: white;
|
||||
box-shadow: 0 2px 16px rgba(0,0,0,0.08);
|
||||
justify-items: center;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: linear-gradient(135deg, #DFF0F2 60%, #BAC8D4 100%);
|
||||
box-sizing: border-box;
|
||||
padding: 10px 0;
|
||||
}
|
||||
|
||||
.beispiel-austellung1-img, .beispiel-austellung2-img {
|
||||
height: 200px;
|
||||
width: 90vw;
|
||||
max-width: 320px;
|
||||
background-position: center;
|
||||
background-size: contain;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.login-container {
|
||||
background: #fff;
|
||||
box-shadow: 0 4px 24px rgba(0,0,0,0.10);
|
||||
border-radius: 16px;
|
||||
padding: 40px 32px 32px 32px;
|
||||
width: 100%;
|
||||
max-width: 400px;
|
||||
position: absolute;
|
||||
top: 200px;
|
||||
background-color: #BAC8D4;
|
||||
width: 900px;
|
||||
height: 450px;
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.login-title {
|
||||
margin-bottom: 24px;
|
||||
color: #4d4d4d;
|
||||
font-size: 2rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 1px;
|
||||
}
|
||||
|
||||
.login-form {
|
||||
width: 100%;
|
||||
.event-container {
|
||||
position: absolute;
|
||||
top: 200px;
|
||||
background-color: #BAC8D4;
|
||||
width: 900px;
|
||||
height: 450px;
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 18px;
|
||||
}
|
||||
|
||||
.login-field {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.login-field label {
|
||||
font-weight: 500;
|
||||
color: #4d4d4d;
|
||||
}
|
||||
|
||||
.login-field input {
|
||||
padding: 10px 12px;
|
||||
border: 1px solid #BAC8D4;
|
||||
border-radius: 6px;
|
||||
font-size: 1rem;
|
||||
background: #F7FAFC;
|
||||
transition: border 0.2s;
|
||||
}
|
||||
|
||||
.login-field input:focus {
|
||||
border: 1.5px solid #09add0;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.login-btn {
|
||||
margin-top: 10px;
|
||||
padding: 12px 0;
|
||||
background: #09add0;
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
font-size: 1.1rem;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
|
||||
.login-btn:hover {
|
||||
background: #007b9e;
|
||||
}
|
||||
|
||||
.login-error {
|
||||
background: #ffe0e0;
|
||||
color: #b30000;
|
||||
border: 1px solid #ffb3b3;
|
||||
border-radius: 6px;
|
||||
padding: 10px 16px;
|
||||
margin-bottom: 18px;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.login-success {
|
||||
background: #e0ffe6;
|
||||
color: #006633;
|
||||
border: 1px solid #b3ffd1;
|
||||
border-radius: 6px;
|
||||
padding: 10px 16px;
|
||||
margin-bottom: 18px;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.login-link {
|
||||
display: inline-block;
|
||||
margin-top: 10px;
|
||||
color: #09add0;
|
||||
font-weight: 500;
|
||||
text-decoration: underline;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
body {
|
||||
font-size: 14px;
|
||||
width: 100vw;
|
||||
max-width: 100vw;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#wrapper {
|
||||
width: 100vw;
|
||||
max-width: 100vw;
|
||||
}
|
||||
#navigation {
|
||||
width: 100vw;
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.link-container {
|
||||
width: 100vw;
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
row-gap: 8px;
|
||||
border-radius: 0;
|
||||
padding: 0 4px;
|
||||
}
|
||||
.links {
|
||||
font-size: 18px;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 6px 0;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
#logo {
|
||||
width: 120px;
|
||||
height: 40px;
|
||||
margin: 0 auto 8px auto;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
.container-welcome-inhalt {
|
||||
grid-template-columns: 1fr;
|
||||
width: 100vw;
|
||||
max-width: 100vw;
|
||||
min-height: 0;
|
||||
padding: 8px 0;
|
||||
}
|
||||
.beispiel-austellung1-img, .beispiel-austellung2-img {
|
||||
width: 90vw;
|
||||
max-width: 98vw;
|
||||
height: 120px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.inhalt {
|
||||
width: 100vw;
|
||||
min-width: 0;
|
||||
max-width: 100vw;
|
||||
padding: 0 2vw;
|
||||
box-sizing: border-box;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
}
|
||||
#footer {
|
||||
width: 100vw;
|
||||
height: auto;
|
||||
min-height: 120px;
|
||||
padding: 10px 0 10px 0;
|
||||
font-size: 13px;
|
||||
}
|
||||
.container-zahlungsmittel {
|
||||
width: 100vw;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
}
|
||||
.header-zahlungsarten {
|
||||
font-size: 1.1em;
|
||||
padding-right: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.zahlungsmittel-img {
|
||||
width: 90vw;
|
||||
max-width: 200px;
|
||||
height: 30px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.line {
|
||||
width: 95vw;
|
||||
}
|
||||
.link-impressum, .link-datenschutz, .link-nutzungsbedingungen {
|
||||
display: block;
|
||||
padding: 2px 0;
|
||||
text-align: center;
|
||||
}
|
||||
.text-bib {
|
||||
display: block;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
}
|
||||
.desktop-only {
|
||||
display: none !important;
|
||||
}
|
||||
.mobile-only {
|
||||
display: block !important;
|
||||
}
|
||||
.login-container {
|
||||
padding: 24px 8px;
|
||||
max-width: 95vw;
|
||||
position: static;
|
||||
width: 95vw;
|
||||
max-width: 400px;
|
||||
height: auto;
|
||||
margin: 24px auto;
|
||||
padding: 16px 8px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.event-container {
|
||||
position: static;
|
||||
width: 95vw;
|
||||
max-width: 400px;
|
||||
height: auto;
|
||||
margin: 24px auto;
|
||||
padding: 16px 8px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.login-container h1 {
|
||||
font-size: 1.5em;
|
||||
text-align: center;
|
||||
}
|
||||
.event-container h1 {
|
||||
font-size: 1.5em;
|
||||
text-align: center;
|
||||
}
|
||||
.login-container form,
|
||||
.login-container label,
|
||||
.login-container input {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.login-container button,
|
||||
.login-container a {
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
margin-top: 8px;
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
#nav-toggle-btn {
|
||||
display: block;
|
||||
background: none;
|
||||
border: none;
|
||||
font-size: 2em;
|
||||
cursor: pointer;
|
||||
margin: 0 auto 8px auto;
|
||||
transition: transform 0.2s;
|
||||
}
|
||||
.nav-links {
|
||||
display: none;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
transition: max-height 0.3s ease;
|
||||
overflow: hidden;
|
||||
}
|
||||
.nav-links.open {
|
||||
display: flex;
|
||||
}
|
||||
#nav-toggle-btn.open {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 601px) {
|
||||
.mobile-only {
|
||||
display: none !important;
|
||||
}
|
||||
.desktop-only {
|
||||
display: block !important;
|
||||
}
|
||||
#nav-toggle-btn {
|
||||
display: none;
|
||||
}
|
||||
.nav-links {
|
||||
display: flex !important;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
width: auto;
|
||||
gap: 32px;
|
||||
}
|
||||
.nav-links .links {
|
||||
margin: 0 12px;
|
||||
}
|
||||
}
|
@@ -50,14 +50,14 @@ class AuthController
|
||||
|
||||
if ($result === true) {
|
||||
$_SESSION['user'] = $email;
|
||||
header('Location: /bibarts/?controller=News&do=showNews');
|
||||
exit();
|
||||
$this->view->setDoMethodName('showLoginSuccess');
|
||||
} else {
|
||||
$this->view->setVars([
|
||||
'errors' => ['login' => is_string($result) ? $result : "Login fehlgeschlagen."],
|
||||
'validData' => ['email' => $email],
|
||||
'loginSuccess' => false
|
||||
]);
|
||||
$this->view->setDoMethodName('showLoginForm');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,6 @@ class AuthController
|
||||
$errors['register'] = is_string($result) ? $result : "Registrierung fehlgeschlagen.";
|
||||
$this->view->setVars(['errors' => $errors, 'validData' => $data]);
|
||||
$this->view->render('Auth/showRegistrationForm');
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,8 +127,7 @@ class AuthController
|
||||
}
|
||||
}
|
||||
|
||||
public function showConfirmation()
|
||||
{
|
||||
public function showConfirmation() {
|
||||
$messages = [
|
||||
'login' => "Login erfolgreich.",
|
||||
'register' => "Registrierung erfolgreich.",
|
||||
@@ -145,7 +143,6 @@ class AuthController
|
||||
public function logout() {
|
||||
unset($_SESSION['user']);
|
||||
session_destroy();
|
||||
header('Location: /bibarts/?controller=Auth&do=showLoginForm');
|
||||
exit();
|
||||
$this->view->setDoMethodName('showLogoutSuccess');
|
||||
}
|
||||
}
|
@@ -23,13 +23,13 @@ class EventController {
|
||||
|
||||
public function createEvent() {
|
||||
$data = [
|
||||
'location_id' => $_POST['location_id'] ?? null,
|
||||
'start_date' => $_POST['start_date'] ?? null,
|
||||
'end_date' => $_POST['end_date'] ?? null,
|
||||
'name' => $_POST['name'] ?? null,
|
||||
'description' => $_POST['description'] ?? 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,
|
||||
'ticket_price' => $_POST['ticket_price'] ?? null
|
||||
'preis' => $_POST['preis'] ?? null
|
||||
];
|
||||
|
||||
$this->model->createEvent($data);
|
||||
@@ -38,21 +38,21 @@ class EventController {
|
||||
}
|
||||
|
||||
public function editEventForm() {
|
||||
$id = $_GET['event_id'];
|
||||
$id = $_GET['ausstellungid'];
|
||||
$event = $this->model->getEvent($id);
|
||||
$this->view->setVars(['event' => $event]);
|
||||
}
|
||||
|
||||
public function updateEvent($id, $data) {
|
||||
$id = $_POST['event_id'];
|
||||
$id = $_POST['ausstellungid'];
|
||||
$data = [
|
||||
'location_id' => $_POST['location_id'] ?? null,
|
||||
'start_date' => $_POST['start_date'] ?? null,
|
||||
'end_date' => $_POST['end_date'] ?? null,
|
||||
'standortid' => $_POST['standortid'] ?? null,
|
||||
'datum_von' => $_POST['datum_von'] ?? null,
|
||||
'datum_bis' => $_POST['datum_bis'] ?? null,
|
||||
'name' => $_POST['name'] ?? null,
|
||||
'description' => $_POST['description'] ?? null,
|
||||
'beschreibung' => $_POST['beschreibung'] ?? null,
|
||||
'max_tickets' => $_POST['max_tickets'] ?? null,
|
||||
'ticket_price' => $_POST['ticket_price'] ?? null
|
||||
'preis' => $_POST['preis'] ?? null
|
||||
];
|
||||
$this->model->updateEvent($id, $data);
|
||||
}
|
||||
|
57
Controller/GutscheinController.php
Normal file
57
Controller/GutscheinController.php
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
namespace Blog\Controller;
|
||||
|
||||
use Blog\Model\GutscheinModel;
|
||||
|
||||
class GutscheinController {
|
||||
|
||||
private $model;
|
||||
private $view;
|
||||
|
||||
public function __construct($view) {
|
||||
$this->model = new GutscheinModel();
|
||||
$this->view = $view;
|
||||
}
|
||||
|
||||
public function showGutscheine() {
|
||||
$gutscheine = $this->model->getGutscheine();
|
||||
$this->view->setVars(['gutscheine' => $gutscheine]);
|
||||
}
|
||||
|
||||
public function createGutschein() {
|
||||
$data = [
|
||||
'code' => $_POST['code'] ?? null,
|
||||
'rabatt' => $_POST['rabatt'] ?? null,
|
||||
'eventid' => $_POST['eventid'] ?? null,
|
||||
'gültigkeit' => $_POST['gültigkeit'] ?? null
|
||||
];
|
||||
$erg = $this->model->createGutschein($data);
|
||||
$this->view->setVars(['gutschein' => $erg]);
|
||||
exit;
|
||||
}
|
||||
|
||||
public function editGutscheinForm() {
|
||||
$id = $_GET['gutscheinid'];
|
||||
if ($id) {
|
||||
$gutschein = $this->model->getGutschein($id);
|
||||
$this->view->setVars(['gutschein' => $gutschein]);
|
||||
}
|
||||
}
|
||||
|
||||
public function updateGutschein() {
|
||||
$id = $_POST['gutscheinid'];
|
||||
$data = [
|
||||
'code' => $_POST['code'] ?? null,
|
||||
'rabatt' => $_POST['rabatt'] ?? null,
|
||||
'eventid' => $_POST['eventid'] ?? null,
|
||||
'gültigkeit' => $_POST['gültigkeit'] ?? null
|
||||
];
|
||||
$this->model->updateGutschein($id, $data);
|
||||
}
|
||||
|
||||
public function deleteGutschein() {
|
||||
$id = $_GET['gutscheinid'] ?? null;
|
||||
$this->model->deleteGutschein($id);
|
||||
}
|
||||
}
|
@@ -1,61 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Blog\Controller;
|
||||
|
||||
use Blog\Model\LocationModel;
|
||||
|
||||
class LocationController {
|
||||
|
||||
private $model;
|
||||
private $view;
|
||||
|
||||
public function __construct($view) {
|
||||
$this->model = new LocationModel();
|
||||
$this->view = $view;
|
||||
}
|
||||
|
||||
public function showLocations() {
|
||||
$locations = $this->model->getLocations();
|
||||
$this->view->setVars(['locations' => $locations]);
|
||||
}
|
||||
|
||||
public function createLocation() {
|
||||
$data = [
|
||||
'street' => $_POST['street'],
|
||||
'house_number' => $_POST['house_number'],
|
||||
'postal_code' => $_POST['postal_code'],
|
||||
'city' => $_POST['city'],
|
||||
'country' => $_POST['country'],
|
||||
'phone' => $_POST['phone'],
|
||||
'email' => $_POST['email']
|
||||
];
|
||||
$result = $this->model->createLocation($data);
|
||||
$this->view->setVars(['location' => $result]);
|
||||
}
|
||||
|
||||
public function editLocationForm() {
|
||||
$id = $_GET['location_id'];
|
||||
$location = $this->model->getLocation($id);
|
||||
$this->view->setVars(['location' => $location]);
|
||||
}
|
||||
|
||||
public function updateLocation() {
|
||||
$data = [
|
||||
'street' => $_POST['street'],
|
||||
'house_number' => $_POST['house_number'],
|
||||
'postal_code' => $_POST['postal_code'],
|
||||
'city' => $_POST['city'],
|
||||
'country' => $_POST['country'],
|
||||
'phone' => $_POST['phone'],
|
||||
'email' => $_POST['email']
|
||||
];
|
||||
$location_id = $_POST['location_id'];
|
||||
$result = $this->model->updateLocation($location_id, $data);
|
||||
$this->view->setVars(['location' => $result]);
|
||||
}
|
||||
|
||||
public function deleteLocation() {
|
||||
$id = $_GET['location_id'] ?? null;
|
||||
$this->model->deleteLocation($id);
|
||||
}
|
||||
}
|
10
Controller/ProfileController.php
Normal file
10
Controller/ProfileController.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
namespace Blog\Controller;
|
||||
|
||||
class ProfileController {
|
||||
function showProfile()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
10
Controller/RegisterController.php
Normal file
10
Controller/RegisterController.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
namespace Blog\Controller;
|
||||
|
||||
class RegisterController {
|
||||
function showRegisterPage()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
61
Controller/StandortController.php
Normal file
61
Controller/StandortController.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace Blog\Controller;
|
||||
|
||||
use Blog\Model\StandortModel;
|
||||
|
||||
class StandortController {
|
||||
|
||||
private $model;
|
||||
private $view;
|
||||
|
||||
public function __construct($view) {
|
||||
$this->model = new StandortModel();
|
||||
$this->view = $view;
|
||||
}
|
||||
|
||||
public function showStandorte() {
|
||||
$standorte = $this->model->getStandorte();
|
||||
$this->view->setVars(['standorte' => $standorte]);
|
||||
}
|
||||
|
||||
public function createStandort() {
|
||||
$data = [
|
||||
'straße' => $_POST['straße'],
|
||||
'hausnr' => $_POST['hausnr'],
|
||||
'postleitzahl' => $_POST['postleitzahl'],
|
||||
'ort' => $_POST['ort'],
|
||||
'land' => $_POST['land'],
|
||||
'tel' => $_POST['tel'],
|
||||
'email' => $_POST['email']
|
||||
];
|
||||
$erg = $this->model->createStandort($data);
|
||||
$this->view->setVars(['standort' => $erg]);
|
||||
}
|
||||
|
||||
public function editStandortForm() {
|
||||
$id = $_GET['standortid'];
|
||||
$standort = $this->model->getStandort($id);
|
||||
$this->view->setVars(['standort' => $standort]);
|
||||
}
|
||||
|
||||
public function updateStandort() {
|
||||
$id = $_POST['standortid'];
|
||||
$data = [
|
||||
'straße' => $_POST['straße'],
|
||||
'hausnr' => $_POST['hausnr'],
|
||||
'postleitzahl' => $_POST['postleitzahl'],
|
||||
'ort' => $_POST['ort'],
|
||||
'land' => $_POST['land'],
|
||||
'tel' => $_POST['tel'],
|
||||
'email' => $_POST['email']
|
||||
];
|
||||
$erg = $this->model->updateStandort($id, $data);
|
||||
$this->view->setVars(['standort' => $erg]);
|
||||
}
|
||||
|
||||
public function deleteStandort() {
|
||||
$id = $_GET['standortid'] ?? null;
|
||||
$this->model->deleteStandort($id);
|
||||
}
|
||||
}
|
@@ -21,13 +21,13 @@ class TicketController {
|
||||
|
||||
public function buyTicket() {
|
||||
$data = [
|
||||
'user_id' => $_POST['user_id'] ?? null,
|
||||
'event_id' => $_POST['event_id'] ?? null,
|
||||
'price' => $_POST['price'] ?? null
|
||||
'userid' => $_POST['userid'],
|
||||
'eventid' => $_POST['eventid'],
|
||||
'kaufdatum' => date('Y-m-d'),
|
||||
'gültigkeitsdatum' => $_POST['gültigkeitsdatum']
|
||||
];
|
||||
|
||||
$result = $this->ticketModel->createTicket($data);
|
||||
$this->view->setVars(['ticket' => $result]);
|
||||
$erg = $this->ticketModel->buyTicket($data);
|
||||
$this->view->setVars(['ticket' => $erg]);
|
||||
}
|
||||
|
||||
public function deleteTicket() {
|
||||
|
10
Controller/TicketsController.php
Normal file
10
Controller/TicketsController.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
namespace Blog\Controller;
|
||||
|
||||
class TicketsController {
|
||||
function showTickets()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -1,57 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Blog\Controller;
|
||||
|
||||
use Blog\Model\VoucherModel;
|
||||
|
||||
class VoucherController {
|
||||
|
||||
private $model;
|
||||
private $view;
|
||||
|
||||
public function __construct($view) {
|
||||
$this->model = new VoucherModel();
|
||||
$this->view = $view;
|
||||
}
|
||||
|
||||
public function showVouchers() {
|
||||
$vouchers = $this->model->getVouchers();
|
||||
$this->view->setVars(['vouchers' => $vouchers]);
|
||||
}
|
||||
|
||||
public function createVoucher() {
|
||||
$data = [
|
||||
'code' => $_POST['code'] ?? null,
|
||||
'discount' => $_POST['discount'] ?? null,
|
||||
'event_id' => $_POST['event_id'] ?? null,
|
||||
'valid_until' => $_POST['valid_until'] ?? null
|
||||
];
|
||||
$result = $this->model->createVoucher($data);
|
||||
$this->view->setVars(['voucher' => $result]);
|
||||
exit;
|
||||
}
|
||||
|
||||
public function editVoucherForm() {
|
||||
$id = $_GET['voucher_id'];
|
||||
if ($id) {
|
||||
$voucher = $this->model->getVoucher($id);
|
||||
$this->view->setVars(['voucher' => $voucher]);
|
||||
}
|
||||
}
|
||||
|
||||
public function updateVoucher() {
|
||||
$id = $_POST['voucher_id'];
|
||||
$data = [
|
||||
'code' => $_POST['code'] ?? null,
|
||||
'discount' => $_POST['discount'] ?? null,
|
||||
'event_id' => $_POST['event_id'] ?? null,
|
||||
'valid_until' => $_POST['valid_until'] ?? null
|
||||
];
|
||||
$this->model->updateVoucher($id, $data);
|
||||
}
|
||||
|
||||
public function deleteVoucher() {
|
||||
$id = $_GET['voucher_id'] ?? null;
|
||||
$this->model->deleteVoucher($id);
|
||||
}
|
||||
}
|
18
Controller/WelcomeController.php
Normal file
18
Controller/WelcomeController.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace Blog\Controller;
|
||||
|
||||
class WelcomeController
|
||||
{
|
||||
function showWelcome() {
|
||||
|
||||
}
|
||||
|
||||
function showProjects() {
|
||||
|
||||
}
|
||||
|
||||
function showTutorials() {
|
||||
|
||||
}
|
||||
}
|
@@ -1,31 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Blog\Model;
|
||||
|
||||
use PDOException;
|
||||
|
||||
class ContactModel extends Database
|
||||
{
|
||||
public function writeContactData($values)
|
||||
{
|
||||
$guid = $this->createUUID();
|
||||
|
||||
$sql = "INSERT INTO contact (`id`, `name`, `email`, `content`) VALUES (
|
||||
:guid, :name, :email, :content);";
|
||||
|
||||
$pdo = $this->linkDB();
|
||||
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute(array(":guid" => $guid,
|
||||
":name" => $values["name"],
|
||||
":email" => $values["email"],
|
||||
":content" => $values["content"]));
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Schreiben der Daten.", $e);
|
||||
die;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
@@ -8,11 +8,11 @@ class EventModel extends Database {
|
||||
|
||||
public function getEvents() {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM event ORDER BY start_date ASC;";
|
||||
$sql = "SELECT * FROM event ORDER BY start_date DESC;";
|
||||
try {
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute();
|
||||
return $stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute();
|
||||
return $sth->fetchAll(\PDO::FETCH_ASSOC);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Lesen der Events.", $e);
|
||||
die;
|
||||
@@ -21,12 +21,11 @@ class EventModel extends Database {
|
||||
|
||||
public function getEvent($id) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM event WHERE event_id = :event_id;";
|
||||
$params = [":event_id" => $id];
|
||||
$sql = "SELECT * FROM event WHERE event_id = :id;";
|
||||
try {
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
return $stmt->fetch(\PDO::FETCH_ASSOC);
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute([":id" => $id]);
|
||||
return $sth->fetch(\PDO::FETCH_ASSOC);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Lesen des Events.", $e);
|
||||
die;
|
||||
@@ -35,29 +34,20 @@ class EventModel extends Database {
|
||||
|
||||
public function updateEvent($id, $data) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "UPDATE event SET
|
||||
name = :name,
|
||||
description = :description,
|
||||
location_id = :location_id,
|
||||
start_date = :start_date,
|
||||
end_date = :end_date,
|
||||
max_tickets = :max_tickets,
|
||||
ticket_price = :ticket_price
|
||||
WHERE event_id = :event_id;";
|
||||
$sql = "UPDATE event SET location_id = :location_id, start_date = :start_date, end_date = :end_date, name = :name, description = :description, max_tickets = :max_tickets, ticket_price = :ticket_price WHERE event_id = :id;";
|
||||
$params = [
|
||||
":name" => $data['name'],
|
||||
":description" => $data['description'],
|
||||
":location_id" => $data['location_id'],
|
||||
":start_date" => $data['start_date'],
|
||||
":end_date" => $data['end_date'],
|
||||
":name" => $data['name'],
|
||||
":description" => $data['description'],
|
||||
":max_tickets" => $data['max_tickets'],
|
||||
":ticket_price" => $data['ticket_price'],
|
||||
":event_id" => $id
|
||||
":id" => $id
|
||||
];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
return $sth;
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Aktualisieren des Events.", $e);
|
||||
die;
|
||||
@@ -66,14 +56,13 @@ class EventModel extends Database {
|
||||
|
||||
public function createEvent($data) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "INSERT INTO event (name, description, location_id, start_date, end_date, max_tickets, ticket_price)
|
||||
VALUES (:name, :description, :location_id, :start_date, :end_date, :max_tickets, :ticket_price);";
|
||||
$sql = "INSERT INTO event (location_id, start_date, end_date, name, description, max_tickets, ticket_price) VALUES (:location_id, :start_date, :end_date, :name, :description, :max_tickets, :ticket_price);";
|
||||
$params = [
|
||||
":name" => $data['name'],
|
||||
":description" => $data['description'],
|
||||
":location_id" => $data['location_id'],
|
||||
":start_date" => $data['start_date'],
|
||||
":end_date" => $data['end_date'],
|
||||
":name" => $data['name'],
|
||||
":description" => $data['description'],
|
||||
":max_tickets" => $data['max_tickets'],
|
||||
":ticket_price" => $data['ticket_price']
|
||||
];
|
||||
@@ -82,19 +71,17 @@ class EventModel extends Database {
|
||||
$sth->execute($params);
|
||||
return $sth;
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Schreiben des Events.", $e);
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Erstellen des Events.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteEvent($id) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "DELETE FROM event WHERE event_id = :event_id;";
|
||||
$params = [":event_id" => $id];
|
||||
$sql = "DELETE FROM event WHERE event_id = :id;";
|
||||
try {
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
return $stmt->rowCount();
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute([":id" => $id]);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Löschen des Events.", $e);
|
||||
die;
|
||||
|
86
Model/GutscheinModel.php
Normal file
86
Model/GutscheinModel.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
namespace Blog\Model;
|
||||
|
||||
use PDOException;
|
||||
|
||||
class GutscheinModel extends Database {
|
||||
|
||||
public function getGutscheine() {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM voucher ORDER BY valid_until DESC;";
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute();
|
||||
return $sth->fetchAll(\PDO::FETCH_ASSOC);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Lesen der Gutscheine.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function getGutschein($id) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM voucher WHERE voucher_id = :id;";
|
||||
$params = [":id" => $id];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
return $sth->fetch(\PDO::FETCH_ASSOC);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Lesen des Gutscheins.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function createGutschein($data) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "INSERT INTO voucher (code, discount, event_id, valid_until) VALUES (:code, :discount, :event_id, :valid_until);";
|
||||
$params = [
|
||||
":code" => $data['code'],
|
||||
":discount" => $data['discount'],
|
||||
":event_id" => $data['event_id'],
|
||||
":valid_until" => $data['valid_until']
|
||||
];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
return $sth;
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Erstellen des Gutscheins.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function updateGutschein($id, $data) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "UPDATE voucher SET code = :code, discount = :discount, event_id = :event_id, valid_until = :valid_until WHERE voucher_id = :id;";
|
||||
$params = [
|
||||
":code" => $data['code'],
|
||||
":discount" => $data['discount'],
|
||||
":event_id" => $data['event_id'],
|
||||
":valid_until" => $data['valid_until'],
|
||||
":id" => $id
|
||||
];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Aktualisieren des Gutscheins.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteGutschein($id) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "DELETE FROM voucher WHERE voucher_id = :id;";
|
||||
$params = [":id" => $id];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Löschen des Gutscheins.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
}
|
@@ -3,58 +3,83 @@
|
||||
namespace Blog\Model;
|
||||
|
||||
use PDOException;
|
||||
use PDO;
|
||||
|
||||
class NewsModel extends Database {
|
||||
|
||||
public function getNewsById($id) {
|
||||
public function getNewsById($newsId) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM news WHERE news_id = :news_id;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [':news_id' => $id];
|
||||
$stmt->execute($params);
|
||||
return $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$params = [":news_id" => $newsId];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
return $sth->fetch(\PDO::FETCH_ASSOC);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Lesen der News.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function updateNews($id, $data) {
|
||||
public function updateNews($newsId, $news) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "UPDATE news SET name = :name, description = :description, date = :date WHERE news_id = :news_id;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [
|
||||
':name' => $data['name'],
|
||||
':description' => $data['description'],
|
||||
':date' => $data['date'],
|
||||
':news_id' => $id
|
||||
":name" => $news['titel'],
|
||||
":description" => $news['inhalt'],
|
||||
":date" => $news['datum'],
|
||||
":news_id" => $newsId
|
||||
];
|
||||
return $stmt->execute($params);
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
return $sth;
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Aktualisieren der News.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function getNews() {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM news ORDER BY date DESC;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute();
|
||||
return $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute();
|
||||
return $sth->fetchAll(\PDO::FETCH_ASSOC);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Lesen der News.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function createNews($data) {
|
||||
public function createNews($news) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "INSERT INTO news (name, description, date) VALUES (:name, :description, :date);";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [
|
||||
':name' => $data['name'],
|
||||
':description' => $data['description'],
|
||||
':date' => $data['date']
|
||||
":name" => $news['titel'],
|
||||
":description" => $news['inhalt'],
|
||||
":date" => $news['datum']
|
||||
];
|
||||
$stmt->execute($params);
|
||||
return $pdo->lastInsertId();
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
return $sth;
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Schreiben der News.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteNews($id) {
|
||||
public function deleteNews($newsId) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "DELETE FROM news WHERE news_id = :news_id;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [':news_id' => $id];
|
||||
return $stmt->execute($params);
|
||||
$params = [":news_id" => $newsId];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Löschen der News.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
}
|
@@ -2,12 +2,11 @@
|
||||
|
||||
namespace Blog\Model;
|
||||
|
||||
use PDO;
|
||||
use PDOException;
|
||||
|
||||
class LocationModel extends Database {
|
||||
class StandortModel extends Database {
|
||||
|
||||
public function getLocations() {
|
||||
public function getStandorte() {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM location ORDER BY location_id ASC;";
|
||||
try {
|
||||
@@ -20,10 +19,10 @@ class LocationModel extends Database {
|
||||
}
|
||||
}
|
||||
|
||||
public function getLocation($id) {
|
||||
public function getStandort($location_id) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM location WHERE location_id = :location_id;";
|
||||
$params = [":location_id" => $id];
|
||||
$params = [":location_id" => $location_id];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
@@ -34,7 +33,7 @@ class LocationModel extends Database {
|
||||
}
|
||||
}
|
||||
|
||||
public function createLocation($data) {
|
||||
public function createStandort($data) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "INSERT INTO location (street, house_number, postal_code, city, country, phone, email)
|
||||
VALUES (:street, :house_number, :postal_code, :city, :country, :phone, :email);";
|
||||
@@ -57,7 +56,7 @@ class LocationModel extends Database {
|
||||
}
|
||||
}
|
||||
|
||||
public function updateLocation($id, $data) {
|
||||
public function updateStandort($location_id, $data) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "UPDATE location SET
|
||||
street = :street,
|
||||
@@ -76,7 +75,7 @@ class LocationModel extends Database {
|
||||
":country" => $data['country'],
|
||||
":phone" => $data['phone'],
|
||||
":email" => $data['email'],
|
||||
":location_id" => $id
|
||||
":location_id" => $location_id
|
||||
];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
@@ -88,10 +87,10 @@ class LocationModel extends Database {
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteLocation($id) {
|
||||
public function deleteStandort($location_id) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "DELETE FROM location WHERE location_id = :location_id;";
|
||||
$params = [":location_id" => $id];
|
||||
$params = [":location_id" => $location_id];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
@@ -3,72 +3,70 @@
|
||||
namespace Blog\Model;
|
||||
|
||||
use PDOException;
|
||||
use PDO;
|
||||
|
||||
class TicketModel extends Database {
|
||||
|
||||
public function getTickets() {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM ticket ORDER BY ticket_id ASC;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute();
|
||||
return $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute();
|
||||
return $sth->fetchAll(\PDO::FETCH_ASSOC);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Lesen der Tickets.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function buyTicket($data) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "INSERT INTO ticket (user_id, event_id, purchase_date, valid_until)
|
||||
VALUES (:user_id, :event_id, :purchase_date, :valid_until)";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
VALUES (:user_id, :event_id, :purchase_date, :valid_until);";
|
||||
$params = [
|
||||
':user_id' => $data['user_id'],
|
||||
':event_id' => $data['event_id'],
|
||||
':purchase_date' => $data['purchase_date'],
|
||||
':valid_until' => $data['valid_until']
|
||||
":user_id" => $data['user_id'],
|
||||
":event_id" => $data['event_id'],
|
||||
":purchase_date" => $data['purchase_date'],
|
||||
":valid_until" => $data['valid_until']
|
||||
];
|
||||
$stmt->execute($params);
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
return $pdo->lastInsertId();
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Kauf des Tickets.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function checkTicketExists($userid, $ausstellungid) {
|
||||
public function hasTicket($user_id, $event_id) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT COUNT(*) as count FROM ticket WHERE user_id = :user_id AND event_id = :event_id;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [':user_id' => $userid, ':event_id' => $ausstellungid];
|
||||
$stmt->execute($params);
|
||||
$result = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
return $result['count'] > 0;
|
||||
$params = [
|
||||
":user_id" => $user_id,
|
||||
":event_id" => $event_id
|
||||
];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
return $sth->fetch(\PDO::FETCH_ASSOC);
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler bei der Ticketprüfung.", $e);
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
public function deleteTicket($id) {
|
||||
public function deleteTicket($ticket_id) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "DELETE FROM ticket WHERE ticket_id = :ticket_id;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [':ticket_id' => $id];
|
||||
return $stmt->execute($params);
|
||||
$params = [":ticket_id" => $ticket_id];
|
||||
try {
|
||||
$sth = $pdo->prepare($sql);
|
||||
$sth->execute($params);
|
||||
return $sth->rowCount();
|
||||
} catch (PDOException $e) {
|
||||
new \Blog\Library\ErrorMsg("Fehler beim Löschen des Tickets.", $e);
|
||||
die;
|
||||
}
|
||||
|
||||
public function createTicket($data) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "INSERT INTO ticket (event_id, user_id, price) VALUES (:event_id, :user_id, :price);";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [
|
||||
':event_id' => $data['event_id'],
|
||||
':user_id' => $data['user_id'],
|
||||
':price' => $data['price']
|
||||
];
|
||||
return $stmt->execute($params);
|
||||
}
|
||||
|
||||
public function getTicketsByUser($userId) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT t.*, e.name as event_name, e.start_date, e.end_date
|
||||
FROM ticket t
|
||||
JOIN event e ON t.event_id = e.event_id
|
||||
WHERE t.user_id = :user_id;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [':user_id' => $userId];
|
||||
$stmt->execute($params);
|
||||
return $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
}
|
@@ -1,62 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Blog\Model;
|
||||
|
||||
use PDO;
|
||||
use PDOException;
|
||||
|
||||
class VoucherModel extends Database {
|
||||
|
||||
public function getVouchers() {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM voucher ORDER BY valid_until DESC;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute();
|
||||
return $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
public function getVoucher($id) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "SELECT * FROM voucher WHERE voucher_id = :id;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [':id' => $id];
|
||||
$stmt->execute($params);
|
||||
return $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
public function createVoucher($data) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "INSERT INTO voucher (code, discount, event_id, valid_until) VALUES (:code, :discount, :event_id, :valid_until);";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [
|
||||
':code' => $data['code'],
|
||||
':discount' => $data['discount'],
|
||||
':event_id' => $data['event_id'],
|
||||
':valid_until' => $data['valid_until']
|
||||
];
|
||||
$stmt->execute($params);
|
||||
return $pdo->lastInsertId();
|
||||
}
|
||||
|
||||
public function updateVoucher($id, $data) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "UPDATE voucher SET code = :code, discount = :discount, event_id = :event_id, valid_until = :valid_until WHERE voucher_id = :id;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [
|
||||
':code' => $data['code'],
|
||||
':discount' => $data['discount'],
|
||||
':event_id' => $data['event_id'],
|
||||
':valid_until' => $data['valid_until'],
|
||||
':id' => $id
|
||||
];
|
||||
return $stmt->execute($params);
|
||||
}
|
||||
|
||||
public function deleteVoucher($id) {
|
||||
$pdo = $this->linkDB();
|
||||
$sql = "DELETE FROM voucher WHERE voucher_id = :id;";
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$params = [':id' => $id];
|
||||
return $stmt->execute($params);
|
||||
}
|
||||
}
|
23
Views/Auth/forgotPassword.phtml
Normal file
23
Views/Auth/forgotPassword.phtml
Normal file
@@ -0,0 +1,23 @@
|
||||
<div class="inhalt">
|
||||
<div class="login-container">
|
||||
<h1>Anmelden</h1>
|
||||
<?php if (!empty($errors['login'])): ?>
|
||||
<div class="login-error"><?=htmlspecialchars($errors['login'])?></div>
|
||||
<?php endif; ?>
|
||||
<form class="form-horizontal" action="index.php" method="post">
|
||||
<input type="hidden" name="controller" value="Auth">
|
||||
<input type="hidden" name="do" value="login">
|
||||
<label for="email">E-Mail</label>
|
||||
<input class="input-email" type="email" name="email" id="email" placeholder="E-Mail" required>
|
||||
<label for="password">Passwort</label>
|
||||
<input class="input-passwort" type="password" name="password" id="password" placeholder="Passwort" required>
|
||||
<button class="button-loggin" type="submit">Login</button>
|
||||
</form>
|
||||
<div style="text-align:center; margin-top: 1.5em;">
|
||||
<a class="link-passwort-vergessen" href="?controller=Auth&do=showForgotPasswordForm">Passwort vergessen?</a>
|
||||
<br>
|
||||
<a class="link-konto-erstellen" href="?controller=Auth&do=showRegistrationForm">Konto erstellen</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -1,10 +1,9 @@
|
||||
<?php
|
||||
include dirname(__DIR__) . '/header.phtml';
|
||||
?>
|
||||
|
||||
<div class="inhalt">
|
||||
<div class="login-container">
|
||||
<h1>Anmelden</h1>
|
||||
<?php if (!empty($errors['login'])): ?>
|
||||
<div class="login-error"><?=htmlspecialchars($errors['login'])?></div>
|
||||
<?php endif; ?>
|
||||
<form class="form-horizontal" action="index.php" method="post">
|
||||
<input type="hidden" name="controller" value="Auth">
|
||||
<input type="hidden" name="do" value="login">
|
||||
@@ -15,14 +14,10 @@ include dirname(__DIR__) . '/header.phtml';
|
||||
<button class="button-loggin" type="submit">Login</button>
|
||||
</form>
|
||||
<div style="text-align:center; margin-top: 1.5em;">
|
||||
<a class="link-passwort-vergessen">Passwort vergessen?</a>
|
||||
<a class="link-passwort-vergessen" href="?controller=Auth&do=showForgotPasswordForm">Passwort vergessen?</a>
|
||||
<br>
|
||||
<a class="link-konto-erstellen" href="?controller=Auth&do=showRegistrationForm">Konto erstellen</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
include dirname(__DIR__) . '/footer.phtml';
|
||||
?>
|
||||
|
||||
|
15
Views/Auth/showLoginSuccess.phtml
Normal file
15
Views/Auth/showLoginSuccess.phtml
Normal file
@@ -0,0 +1,15 @@
|
||||
<div class="inhalt">
|
||||
<div class="login-success">
|
||||
<h2>Login erfolgreich!</h2>
|
||||
<p>Sie werden in wenigen Sekunden zu den News weitergeleitet...</p>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
setTimeout(function() {
|
||||
window.location.href = "?controller=News&do=showNews";
|
||||
}, 2000); // 2 Sekunden warten
|
||||
</script>
|
||||
<noscript>
|
||||
<meta http-equiv="refresh" content="2;url=?controller=News&do=showNews">
|
||||
</noscript>
|
||||
|
14
Views/Auth/showLogoutSuccess.phtml
Normal file
14
Views/Auth/showLogoutSuccess.phtml
Normal file
@@ -0,0 +1,14 @@
|
||||
<div class="inhalt">
|
||||
<div class="login-success">
|
||||
<h2>Logout erfolgreich!</h2>
|
||||
<p>Sie werden in wenigen Sekunden zum Login weitergeleitet...</p>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
setTimeout(function() {
|
||||
window.location.href = "?controller=Auth&do=showLoginForm";
|
||||
}, 2000); // 2 Sekunden warten
|
||||
</script>
|
||||
<noscript>
|
||||
<meta http-equiv="refresh" content="2;url=?controller=Auth&do=showLoginForm">
|
||||
</noscript>
|
@@ -1,55 +1,64 @@
|
||||
<?php
|
||||
include dirname(__DIR__) . '/header.phtml';
|
||||
?>
|
||||
|
||||
<div class="inhalt">
|
||||
<div class="login-container">
|
||||
<h1>Registrieren</h1>
|
||||
<form class="form-horizontal" action="index.php" method="post">
|
||||
<input type="hidden" name="controller" value="Auth">
|
||||
<input type="hidden" name="do" value="register">
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-vorname" type="text" name="vorname" placeholder="Vorname">
|
||||
<input class="input-vorname" type="text" placeholder="Vorname">
|
||||
</label>
|
||||
<label>
|
||||
<input class="input-nachname" type="text" name="nachname" placeholder="Nachname">
|
||||
</label>
|
||||
<label>
|
||||
<input class="input-email" type="text" name="email" placeholder="E-Mail">
|
||||
</label>
|
||||
<label>
|
||||
<input class="input-passwort" type="password" name="password" placeholder="Passwort">
|
||||
</label>
|
||||
<label>
|
||||
<input class="input-passwort-repeat" type="password" name="password_repeat" placeholder="Passwort wiederholen">
|
||||
</label>
|
||||
<label>
|
||||
<input class="input-strasse" type="text" name="strasse" placeholder="Straße">
|
||||
</label>
|
||||
<label>
|
||||
<input class="input-hausnr" type="text" name="hausnr" placeholder="Hausnr.">
|
||||
</label>
|
||||
<label>
|
||||
<input class="input-postleitzahl" type="text" name="plz" placeholder="Postleitzahl">
|
||||
</label>
|
||||
<label>
|
||||
<input class="input-ort" type="text" name="ort" placeholder="Ort">
|
||||
</label>
|
||||
<label>
|
||||
<input class="input-land" type="text" name="land" placeholder="Land">
|
||||
</label>
|
||||
<label>
|
||||
<input class="input-tel" type="text" name="tel" placeholder="Telefonnr.">
|
||||
</label>
|
||||
<button class="button-register" type="submit">Registrieren</button>
|
||||
</form>
|
||||
<div style="text-align:center; margin-top: 1.5em;">
|
||||
<a href="?controller=Auth&do=showLoginForm" class="login-link">Bereits registriert? Hier einloggen</a>
|
||||
</div>
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-nachname" type="text" placeholder="Nachname">
|
||||
</label>
|
||||
</form>
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-email" type="text" placeholder="E-Mail">
|
||||
</label>
|
||||
</form>
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-passwort" type="text" placeholder="Passwort">
|
||||
</label>
|
||||
</form>
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-passwort-repeat" type="text" placeholder="Passwort wiederholen">
|
||||
</label>
|
||||
</form>
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-strasse" type="text" placeholder="Straße">
|
||||
</label>
|
||||
</form>
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-hausnr" type="text" placeholder="Hausnr.">
|
||||
</label>
|
||||
</form>
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-postleitzahl" type="text" placeholder="Postleitzahl">
|
||||
</label>
|
||||
</form>
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-ort" type="text" placeholder="Ort">
|
||||
</label>
|
||||
</form>
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-land" type="text" placeholder="Land">
|
||||
</label>
|
||||
</form>
|
||||
<form class="form-horizontal" action="#" method="post">
|
||||
<label>
|
||||
<input class="input-tel" type="text" placeholder="Telefonnr.">
|
||||
</label>
|
||||
</form>
|
||||
<button class="button-register">Registrieren</button>
|
||||
<a class="link-konto-erstellen" href="?controller=Auth&do=showLoginForm">Login</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
include dirname(__DIR__) . '/footer.phtml';
|
||||
?>
|
||||
|
||||
|
@@ -2,11 +2,11 @@
|
||||
include dirname(__DIR__).'/header.phtml';
|
||||
?>
|
||||
|
||||
<div class="inhalt">
|
||||
<div class="msg">
|
||||
<p>Das Event "<?php echo $event['name']?>" wurde erfolgreich erstellt!</p>
|
||||
<p>Das Event "<?php echo $name?>" wurde erfolgreich erstellt!</p>
|
||||
<a href="?controller=Event&do=showEvents">Weiter</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
include dirname(__DIR__).'/footer.phtml';
|
||||
?>
|
||||
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
@@ -2,11 +2,11 @@
|
||||
include dirname(__DIR__).'/header.phtml';
|
||||
?>
|
||||
|
||||
<div class="inhalt">
|
||||
<div class="msg">
|
||||
<p>Das Event mit der id"<?php echo $id?>" wurde erfolgreich gelöscht!</p>
|
||||
<a href="?controller=Event&do=showEvents">Weiter</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
include dirname(__DIR__).'/footer.phtml';
|
||||
?>
|
||||
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
@@ -1,8 +1,8 @@
|
||||
<?php
|
||||
include dirname(__DIR__).'/header.phtml';
|
||||
?>
|
||||
<h2>Alle Events</h2>
|
||||
<?php if (!empty($events)): ?>
|
||||
<div class="inhalt">
|
||||
<div class="event-container">
|
||||
<h2>Alle Ausstellungen</h2>
|
||||
<div class="event-container-inhalt">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -26,8 +26,8 @@ include dirname(__DIR__).'/header.phtml';
|
||||
</tbody>
|
||||
</table>
|
||||
<?php else: ?>
|
||||
<p>Derzeit sind keine Events verfügbar.</p>
|
||||
<p>Derzeit sind keine Ausstellungen verfügbar.</p>
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
include dirname(__DIR__).'/footer.phtml';
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@@ -2,11 +2,11 @@
|
||||
include dirname(__DIR__).'/header.phtml';
|
||||
?>
|
||||
|
||||
<div class="inhalt">
|
||||
<div class="msg">
|
||||
<p>Das Event mit der ID "<?php echo $event_id?>" wurde erfolgreich bearbeitet!</p>
|
||||
<p>Das Event mit der ID "<?php echo $ausstellungid?>" wurde erfolgreich bearbeitet!</p>
|
||||
<a href="?controller=Event&do=showEvents">Weiter</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
include dirname(__DIR__).'/footer.phtml';
|
||||
?>
|
||||
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
1
Views/Gutschein/createGutschein.phtml
Normal file
1
Views/Gutschein/createGutschein.phtml
Normal file
@@ -0,0 +1 @@
|
||||
echo "create gutschein"
|
36
Views/Gutschein/showGutscheine.phtml
Normal file
36
Views/Gutschein/showGutscheine.phtml
Normal file
@@ -0,0 +1,36 @@
|
||||
<?php include dirname(__DIR__) . '/header.phtml'; ?>
|
||||
|
||||
<div class="inhalt">
|
||||
<h2>Alle Gutscheine</h2>
|
||||
<a href="?controller=Gutschein&do=createGutscheinForm">Neuen Gutschein anlegen</a>
|
||||
<?php if (!empty($gutscheine)): ?>
|
||||
<table border="1" cellpadding="8" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Code</th>
|
||||
<th>Rabatt (%)</th>
|
||||
<th>Event-ID</th>
|
||||
<th>Gültig bis</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($gutscheine as $g): ?>
|
||||
<tr>
|
||||
<td><?php echo htmlspecialchars($g['code']); ?></td>
|
||||
<td><?php echo (int)$g['discount']; ?></td>
|
||||
<td><?php echo (int)$g['event_id']; ?></td>
|
||||
<td><?php echo htmlspecialchars($g['valid_until']); ?></td>
|
||||
<td>
|
||||
<a href="?controller=Gutschein&action=editGutscheinForm&id=<?php echo $g['gutscheinid']; ?>">Bearbeiten</a> |
|
||||
<a href="?controller=Gutschein&action=deleteGutschein&id=<?php echo $g['gutscheinid']; ?>" onclick="return confirm('Wirklich löschen?');">Löschen</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php else: ?>
|
||||
<p>Keine Gutscheine vorhanden.</p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<?php include dirname(__DIR__) . '/footer.phtml'; ?>
|
@@ -1,12 +1,12 @@
|
||||
<?php
|
||||
include dirname(__DIR__).'/header.phtml';
|
||||
?>
|
||||
<h2>Alle News</h2>
|
||||
<?php if (!empty($news)): ?>
|
||||
<div class="inhalt">
|
||||
<div class="event-container">
|
||||
<h2>Alle Infos</h2>
|
||||
<div class="event-container-inhalt">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Titel</th>
|
||||
<th>Name</th>
|
||||
<th>Beschreibung</th>
|
||||
<th>Datum</th>
|
||||
</tr>
|
||||
@@ -15,15 +15,17 @@ include dirname(__DIR__).'/header.phtml';
|
||||
<?php foreach ($news as $item): ?>
|
||||
<tr>
|
||||
<td><?php echo htmlspecialchars($item['name']); ?></td>
|
||||
<td><?php echo nl2br(htmlspecialchars($item['name'])); ?></td>
|
||||
<td><?php echo nl2br(htmlspecialchars($item['description'])); ?></td>
|
||||
<td><?php echo date('d.m.Y', strtotime($item['date'])); ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<p>Derzeit sind keine News verfügbar.</p>
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
include dirname(__DIR__).'/footer.phtml';
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
0
Views/Profile/showProfile.phtml
Normal file
0
Views/Profile/showProfile.phtml
Normal file
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
include dirname(__DIR__).'/header.phtml';
|
||||
?>
|
||||
<h2>Unsere Standorte</h2>
|
||||
<?php include dirname(__DIR__) . '/header.phtml'; ?>
|
||||
|
||||
<div class="inhalt">
|
||||
<h2>Unsere Standorte</h2>
|
||||
|
||||
<?php if (!empty($standorte)): ?>
|
||||
<table border="1" cellpadding="8" cellspacing="0">
|
||||
<thead>
|
||||
@@ -18,12 +19,12 @@ include dirname(__DIR__).'/header.phtml';
|
||||
<tbody>
|
||||
<?php foreach ($standorte as $standort): ?>
|
||||
<tr>
|
||||
<td><?php echo htmlspecialchars($standort['strasse']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['hausnr']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['plz']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['ort']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['land']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['tel']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['street']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['house_number']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['postal_code']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['city']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['country']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['phone']); ?></td>
|
||||
<td><?php echo htmlspecialchars($standort['email']); ?></td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
@@ -32,6 +33,5 @@ include dirname(__DIR__).'/header.phtml';
|
||||
<?php else: ?>
|
||||
<p>Keine Standorte gefunden.</p>
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
include dirname(__DIR__).'/footer.phtml';
|
||||
?>
|
||||
</div>
|
||||
<?php include dirname(__DIR__) . '/footer.phtml'; ?>
|
@@ -7,6 +7,6 @@ include dirname(__DIR__).'/header.phtml';
|
||||
<a href="?controller=Welcome&do=showWelcome">Weiter</a>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
include dirname(__DIR__).'/footer.phtml';
|
||||
?>
|
||||
|
||||
|
||||
<?php include dirname(__DIR__).'/footer.phtml'; ?>
|
8
Views/Tickets/showTickets.phtml
Normal file
8
Views/Tickets/showTickets.phtml
Normal file
@@ -0,0 +1,8 @@
|
||||
<div class="inhalt">
|
||||
<div class="tickets-container">
|
||||
<h1>Tickets</h1>
|
||||
<div class="tickets-container-inhalt">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@@ -1,7 +0,0 @@
|
||||
<?php
|
||||
include dirname(__DIR__).'/header.phtml';
|
||||
?>
|
||||
<!-- Gutschein-Erstellungsformular oder Inhalt hier einfügen -->
|
||||
<?php
|
||||
include dirname(__DIR__).'/footer.phtml';
|
||||
?>
|
@@ -1,37 +0,0 @@
|
||||
<?php
|
||||
include dirname(__DIR__).'/header.phtml';
|
||||
?>
|
||||
<h2>Alle Gutscheine</h2>
|
||||
<a href="?controller=Voucher&do=createVoucherForm">Neuen Gutschein anlegen</a>
|
||||
<?php if (!empty($vouchers)): ?>
|
||||
<table border="1" cellpadding="8" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Code</th>
|
||||
<th>Rabatt (%)</th>
|
||||
<th>Event-ID</th>
|
||||
<th>Gültig bis</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($vouchers as $v): ?>
|
||||
<tr>
|
||||
<td><?php echo htmlspecialchars($v['code']); ?></td>
|
||||
<td><?php echo (int)$v['discount']; ?></td>
|
||||
<td><?php echo (int)$v['event_id']; ?></td>
|
||||
<td><?php echo htmlspecialchars($v['valid_until']); ?></td>
|
||||
<td>
|
||||
<a href="?controller=Voucher&do=editVoucherForm&id=<?php echo $v['voucher_id']; ?>">Bearbeiten</a> |
|
||||
<a href="?controller=Voucher&do=deleteVoucher&id=<?php echo $v['voucher_id']; ?>" onclick="return confirm('Wirklich löschen?');">Löschen</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
<?php else: ?>
|
||||
<p>Keine Gutscheine vorhanden.</p>
|
||||
<?php endif; ?>
|
||||
<?php
|
||||
include dirname(__DIR__).'/footer.phtml';
|
||||
?>
|
@@ -1,30 +1,40 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<html lang="HTML-5">
|
||||
<head>
|
||||
<title>Bib Arts</title>
|
||||
<title>VR Contact</title>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link href="/bibarts/CSS/style.css" rel="stylesheet" type="text/css" />
|
||||
<link href="CSS/style.css" rel="stylesheet" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="wrapper">
|
||||
<nav id="navigation">
|
||||
<div class="link-container">
|
||||
<div id="logo" ><a class="link-logo" href="#"></a></div>
|
||||
<a id="link-ausstellungen" class="links" href="?controller=Event&do=showEvents">Ausstellungen</a>
|
||||
<a id="link-tickets" class="links" href="#">Tickets</a>
|
||||
<a id="link-news" class="links" href="/bibarts/?controller=News&do=showNews">News</a>
|
||||
<a id="link-profil" class="links" href="?controller=Contact&do=showContactForm">Profil</a>
|
||||
<div id="profile-picture"></div>
|
||||
<button id="nav-toggle-btn" aria-label="Menü ein-/ausklappen">▼</button>
|
||||
<div class="nav-links">
|
||||
<a id="link-tickets" class="links" href="?controller=Event&do=showEvents">Event</a>
|
||||
<a id="link-infos" class="links" href="?controller=News&do=showNews">Infos</a>
|
||||
<a id="link-profil" class="links" href="?controller=Profile&do=showProfile">Profil</a>
|
||||
<?php if (isset($_SESSION['user'])): ?>
|
||||
<form method="post" action="/bibarts/index.php" style="display:inline;">
|
||||
<input type="hidden" name="controller" value="Auth">
|
||||
<input type="hidden" name="do" value="logout">
|
||||
<button type="submit" class="links" style="background:none;border:none;cursor:pointer;">Logout</button>
|
||||
</form>
|
||||
<a id="link-logout" class="links" href="?controller=Auth&do=logout">Logout</a>
|
||||
<?php else: ?>
|
||||
<a class="links" href="?controller=Auth&do=showLoginForm">Login</a>
|
||||
<a id="link-login" class="links" href="?controller=Auth&do=showLoginForm">Login</a>
|
||||
<?php endif; ?>
|
||||
<a id="link-register" class="links" href="?controller=Auth&do=showRegistrationForm">Register</a>
|
||||
<div id="profile-picture"></div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var btn = document.getElementById('nav-toggle-btn');
|
||||
var links = document.querySelector('.nav-links');
|
||||
if (btn && links) {
|
||||
btn.addEventListener('click', function() {
|
||||
links.classList.toggle('open');
|
||||
btn.classList.toggle('open');
|
||||
btn.innerHTML = links.classList.contains('open') ? '▲' : '▼';
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
41
index.php
41
index.php
@@ -1,8 +1,9 @@
|
||||
<?php
|
||||
|
||||
session_start();;;
|
||||
|
||||
spl_autoload_register(function ($className) {
|
||||
session_start();
|
||||
include 'Views/header.phtml';
|
||||
?>
|
||||
<?php
|
||||
spl_autoload_register(function ($className) {
|
||||
if (substr($className, 0, 5) !== 'Blog\\') {
|
||||
// not our business
|
||||
return;
|
||||
@@ -13,22 +14,22 @@ spl_autoload_register(function ($className) {
|
||||
if (file_exists($fileName)) {
|
||||
include $fileName;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
$controllerName = "";
|
||||
$doMethodName = "";
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$controllerName = isset($_POST['controller']) && $_POST['controller'] ? $_POST['controller'] : "Auth";
|
||||
$doMethodName = isset($_POST['do']) && $_POST['do'] ? $_POST['do'] : "showAuthForm";
|
||||
} else {
|
||||
$controllerName = isset($_GET['controller']) && $_GET['controller'] ? $_GET['controller'] : "Auth";
|
||||
$doMethodName = isset($_GET['do']) && $_GET['do'] ? $_GET['do'] : "showAuthForm";
|
||||
}
|
||||
$controllerName = "";
|
||||
$doMethodName = "";
|
||||
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||||
$controllerName = isset($_POST['controller']) && $_POST['controller'] ? $_POST['controller'] : "Welcome";
|
||||
$doMethodName = isset($_POST['do']) && $_POST['do'] ? $_POST['do'] : "showWelcome";
|
||||
} else {
|
||||
$controllerName = isset($_GET['controller']) && $_GET['controller'] ? $_GET['controller'] : "Welcome";
|
||||
$doMethodName = isset($_GET['do']) && $_GET['do'] ? $_GET['do'] : "showWelcome";
|
||||
}
|
||||
|
||||
$controllerClassName = 'Blog\\Controller\\'.ucfirst($controllerName).'Controller';
|
||||
$controllerClassName = 'Blog\\Controller\\'.ucfirst($controllerName).'Controller';
|
||||
|
||||
if (method_exists($controllerClassName, $doMethodName)) {
|
||||
if (method_exists($controllerClassName, $doMethodName)) {
|
||||
$view = new \Blog\Library\View(__DIR__.DIRECTORY_SEPARATOR.'Views'
|
||||
, ucfirst($controllerName), $doMethodName);
|
||||
|
||||
@@ -37,9 +38,11 @@ if (method_exists($controllerClassName, $doMethodName)) {
|
||||
|
||||
$view->render();
|
||||
|
||||
} else {
|
||||
} else {
|
||||
new \Blog\Library\ErrorMsg('Page not found: '.$controllerClassName.'::'.$doMethodName);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
include 'Views/footer.phtml';
|
||||
?>
|
||||
|
||||
|
Reference in New Issue
Block a user