kleine ui fixes

This commit is contained in:
2025-07-04 16:50:03 +02:00
parent b5118a699f
commit 7ce389d179
8 changed files with 299 additions and 201 deletions

View File

@@ -2,42 +2,98 @@
include dirname(__DIR__).'/header.phtml';
?>
<h2>Neuer Kurs</h2>
<form method="post" class="form-grid">
<form method="post">
<?php
function createInputField($label, $name, $errors, $validData, $type = 'input') {
$errorClass = isset($errors[$name]) ? 'error' : '';
$value = htmlspecialchars($validData[$name] ?? '');
$errorMessage = isset($errors[$name]) ? '<p class="error">' . htmlspecialchars($errors[$name]) . '</p>' : '';
<?php
$index = 0;
if($type === 'textarea') {
return <<<HTML
<div style="grid-column: 1 / -1;" class="input">
<label for="{$name}">{$label}</label>
<textarea class="{$errorClass}" name="{$name}">{$value}</textarea>
{$errorMessage}
</div>
HTML;
}
foreach ($labels as $key => $value) {
$hasError = isset($errors[$key]);
$errorClass = $hasError ? ' error' : '';
echo '<div class="input">';
echo '<label for="' . $key . '">' . $value . '</label>';
if ($key == "beschreibung") {
echo '<textarea id="' . $key . '" name="' . $key . '" class="' . $errorClass . '">';
if (isset($validData[$key])) {
echo $validData[$key];
return <<<HTML
<div class="input">
<label for="{$name}">{$label}</label>
<input class="{$errorClass}" type="text" name="{$name}" value="{$value}">
{$errorMessage}
</div>
HTML;
}
echo '<div style="margin-top: 32px;" class="form-grid-3">';
foreach ($labels as $name => $label) {
if($name === "|") {
echo '</div>';
echo '<div style="margin-top: 32px;" class="form-grid-3">';
} else {
echo createInputField($label, $name, $errors, $validData, $type = $name === 'beschreibung' ? 'textarea' : 'input');
}
echo '</textarea>';
} else {
echo '<input class="' . $errorClass . '" type="text" name="' . $key . '" value="' . (isset($validData[$key]) ? $validData[$key] : '') . '">';
}
if ($hasError) {
echo '<p class="error">' . $errors[$key] . '</p>';
}
echo '</div>';
$index++;
?>
<input type="hidden" name="controller" value="admin">
<input type="hidden" name="do" value="validateForm">
<div class="form-grid-3" style="margin-top: 16px;">
<input style="grid-column: 3;" type="submit" name="submit" value="Absenden">
</div>
</form>
<?php
$adminModel = new \Blog\Model\AdminModel();
$courses = $adminModel->getMyCourses();
$doc = new DOMDocument('1.0', 'UTF-8');
if (!empty($courses)) {
echo '<div class="courses-view">';
foreach ($courses as $kurs) {
$courseCard = $doc->createElement('div');
$courseCard->setAttribute('class', 'course-card');
$courseImage = $doc->createElement('div');
$courseImage->setAttribute('class', 'course-image');
$courseCard->appendChild($courseImage);
$courseContent = $doc->createElement('div');
$courseContent->setAttribute('class', 'course-content');
$courseCard->appendChild($courseContent);
$courseLeft = $doc->createElement('div');
$courseLeft->setAttribute('class', 'course-left');
$courseContent->appendChild($courseLeft);
$note = $doc->createElement('div', htmlspecialchars($kurs['note'] ?? 'Keine Bewertung') . ' ★');
$courseLeft->appendChild($note);
$name = $doc->createElement('div', htmlspecialchars($kurs['name']));
$courseLeft->appendChild($name);
$address = $doc->createElement('div', htmlspecialchars($kurs['strasse'] . ', ' . $kurs['stadt'] . ' ' . $kurs['plz']));
$courseLeft->appendChild($address);
$courseRight = $doc->createElement('div');
$courseRight->setAttribute('class', 'course-right');
$courseContent->appendChild($courseRight);
$price = $doc->createElement('div', htmlspecialchars($kurs['preis']) . ' €');
$courseRight->appendChild($price);
$category = $doc->createElement('div', htmlspecialchars($kurs['kategorie'] ?? 'Keine Kategorie'));
$courseRight->appendChild($category);
echo $doc->saveHTML($courseCard);
}
echo '</div>';
} else {
echo '<p>Keine Kurse gefunden.</p>';
}
?>
<input type="hidden" name="controller" value="admin">
<input type="hidden" name="do" value="validateForm">
<input type="submit" name="submit" value="Absenden"></form>
<?php include dirname(__DIR__).'/footer.phtml'; ?>