This commit is contained in:
Illia Hromovoi 2025-06-25 10:02:02 +02:00
commit 1204c89ca3
7 changed files with 119 additions and 67 deletions

66
CSS/Element/form.css Normal file
View File

@ -0,0 +1,66 @@
main a{
color: var(--brand-white)
}
.form-flex {
display: flex;
flex-direction: column;
row-gap: 8px;
align-items: center;
width: 100%;
}
form label {
width: fit-content;
}
form input {
border: var(--border-primary);
height: var(--h-md);
padding-left: 8px;
padding-right: 8px;
}
.input {
display: flex;
flex-direction: column;
row-gap: 2px;
align-items: start;
width: 100%;
}
.input-short {
max-width: 240px;
}
.form-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
width: 100%;
max-width: 600px;
margin: auto;
}
.form-grid label {
display: flex;
flex-direction: column;
font-weight: bold;
}
.form-grid textarea {
min-height: 100px;
width: 100%;
}
.form-grid input:last-child, div:nth-last-child(4) {
grid-column: 1 / -1;
column-span: 2;
}
input, textarea {
padding: 8px;
font-size: 1rem;
margin-top: 5px;
}

View File

@ -2,6 +2,7 @@
@import url(Block/header.css);
@import url(Block/footer.css);
@import url(Element/logo.css);
@import url(Element/form.css);
@import url(Element/button.css);
*, *:before, *:after {
@ -11,8 +12,6 @@
font-family: var(--font-family-main);
}
body {
background-color: var(--brand-background);
color: #666;
@ -30,8 +29,6 @@ h1 span {
font-size: 40px;
}
h2 {
color: orange;
}
@ -43,8 +40,7 @@ main {
#wrapper {
max-width: 90%;
margin: 0 auto;
color: white;
margin: 0 auto
}
.msg {
@ -79,44 +75,6 @@ main {
font-weight: bold;
}
/*** Formulare ***/
form {
width: 440px;
margin: auto;
}
label {
width: 120px;
display: inline-block;
margin: 5px 15px 10px 0;
vertical-align: top;
text-align: right;
}
label.errorMsg {
width: 420px;
display: inline-block;
margin: 0 5px 15px 0;
vertical-align: top;
text-align: right;
color: orange;
}
input[type="submit"] {
width: 100px;
margin-left: 330px;
}
form textarea {
width: 300px;
height: 150px;
margin-bottom: 10px;
}
form select {
width: 300px;
}
/*** Loesung Workshop-Seite ***/
.textContent {
@ -152,7 +110,4 @@ form select {
opacity: .75;
text-decoration: none;
}
/*TODO Muss in die form.css übernommen werden*/
main a{
color: var(--brand-white);
}

View File

@ -2,10 +2,12 @@
/* Colors*/
--brand-primary: #EB8202;
--brand-background: #201911;
--bg-muted: #5B5B5B;
--brand-white: #ffffff;
--fullblock: darkblue;
--input-placeholder: #998E82;
/*Fonts*/
--font-family-main: "Inter", sans-serif;
--font-family-headline: "Source Serif 4", serif;
@ -19,4 +21,6 @@
/*Font-Weight*/
--font-weight-semibold: 600;
--h-md: 48px;
--border-primary: 1px solid #998E82;
}

View File

@ -10,7 +10,7 @@ class AdminController
private $db;
private $validData = array();
private $errors = array();
private $labels = array("name" => "Name*", "preis" => "Preis*", "dauer" => "Dauer*", "rabatt" => "Rabatt", "kategorie" => "Kategorie", "beschreibung" => "Beschreibung");
private $labels = array("name" => "Name*", "preis" => "Preis*", "dauer" => "Dauer* (Stunden)", "rabatt" => "Rabatt", "kategorie" => "Kategorie", "beschreibung" => "Beschreibung");
public function __construct($view)
@ -30,7 +30,7 @@ class AdminController
public function showConfirmation()
{
echo "<p>Erfolgreich erstellt!</p>";
}
public function validateForm(){
@ -41,10 +41,9 @@ class AdminController
$this->validData[$index] = $_POST[$index];
}
}
if (count($this->errors) > 0) {
$this->view->setDoMethodName("showContactForm");
$this->showContactForm();
$this->view->setDoMethodName("showForm");
$this->showForm();
} else {
if ($this->db->writeContactData($this->validData)) {
$this->view->setDoMethodName("showConfirmation");

View File

@ -6,7 +6,30 @@ use PDOException;
class AdminModel extends Database
{
public function writeContactData($values)
public function writeNewCourse($values)
{
$guid = $this->createUUID();
$sql = "INSERT INTO kurs (`id`, `name`, `preis`, `dauer`, `rabatt`, `kategorie`, `beschreibung`) VALUES (
:guid, :name, :preis, :dauer, :rabatt, :kategorie, :beschreibung);";
$pdo = $this->linkDB();
try {
$sth = $pdo->prepare($sql);
$sth->execute(array(":guid" => $guid,
":name" => $values["name"],
":preis" => $values["preis"],
":dauer" => $values["dauer"],
":rabatt" => $values["rabatt"],
":kategorie" => $values["kategorie"],
":beschreibung" => $values["beschreibung"],
));
} catch (PDOException $e) {
new \Blog\Library\ErrorMsg("Fehler beim Schreiben der Daten.", $e);
die;
}
return true;
}
}

View File

@ -5,26 +5,30 @@ include dirname(__DIR__).'/header.phtml';
<h2>Neuer Kurs</h2>
<form method="post">
<form method="post" class="form-grid">
<?php foreach ($labels as $index => $value) {
echo '<label for="' . $index . '">' . $value . '</label>';
if ($index == "beschreibung") {
echo "<textarea id=\"$index\" name=\"$index\" >";
if (isset($validData[$index])) { echo $validData[$index]; }
<?php
$index = 0;
foreach ($labels as $key => $value) {
echo '<div class="input"><label for="' . $key . '">' . $value . '</label>';
if ($key == "beschreibung") {
echo "<textarea id=\"$key\" name=\"$key\" >";
if (isset($validData[$key])) { echo $validData[$key]; }
echo "</textarea><br>";
} else {
echo '<input type="text" name="' . $index . '" value="' . (isset($validData[$index]) ? $validData[$index] : '') . '"><br>';
echo '<input class="input" type="text" name="' . $key . '" value="' . (isset($validData[$key]) ? $validData[$key] : '') . '"><br>';
}
if (isset($errors[$index])) {
echo '<label class="errorMsg">' . $errors[$index] . '</label><br>';
if (isset($errors[$key])) {
echo '<label class="errorMsg">' . $errors[$key] . '</label><br>';
}
echo '</div>';
$index++;
}
?>
<input type="hidden" name="controller" value="contact">
<input type="hidden" name="do" value="validateForm">
<input type="hidden" name="controller" value="admin">
<input type="hidden" name="do" value="showForm">
<input type="submit" name="submit" value="Absenden"></form>
<?php include dirname(__DIR__).'/footer.phtml'; ?>

View File

@ -31,6 +31,7 @@ include dirname(__DIR__).'/header.phtml';
<input type="hidden" name="controller" value="contact">
<input type="hidden" name="do" value="validateForm">
<input type="submit" name="submit" value="Absenden"></form>
<input type="submit" name="submit" value="Absenden">
</form>
<?php include dirname(__DIR__).'/footer.phtml'; ?>